Перейти к содержанию

Slym

Пользователи
  • Активность

    93
  • Зарегистрирован

  • Посещение

  • Победитель дней

    20

Сообщения, опубликованные Slym


  1. вызывается виртуальный метод TObject.Destroy; виртуальный здесь ключевое! виртуальные методы хранятся в спецтабличке 
    Вы же разместили свой деструктор вне этой таблицы сделав его статичным.
    статичным он стал потому что нет правильного модификатора, по факту Вы написали destructor Destroy;пусто;
    модификатор overload - это из оперы несколько методов с одним названием.
    Destroy вызывается у всех типов в цепочке наследования кроме вашего типа, для вашего типа виртуальный Destroy не определен


  2.   hints: TDictionary<TDecodeHintType, TObject>;
      l: TList<TBarcodeFormat>;
    begin
        if not Assigned(FScanManager) then
        begin
          hints := TDictionary<TDecodeHintType, TObject>.Create();
          l:=TList<TBarcodeFormat>.Create;
          l.Add(TBarcodeFormat.QR_CODE);
          hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l);
          FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints);

    не тестил


  3. значит патченый FMX.Controls.pas не компилирует... полож его в папку проекта и явно добавь в проект

    кстати сам стиль надо искать так
    Style:=FMX.Types.FindStyleResource(StyleName);
    а далее
    TSwitchObject(Style).Fill....


  4. Мда...
    На такой случай мы патчим FMX.Controls.pas

    procedure TStyledControl.StyleDataChanged(const Index: string; const Value: TValue);
    var
      Obj: TObject;
      InstanceName, PropertyName: string;
      PropertyValue: TValue;
    begin
      PropertyName := Index;
      InstanceName := GetToken(PropertyName, '.');
    
      if SameText(InstanceName,'self') then
        Obj:=FResourceLink
      else
        Obj := FindStyleResource(InstanceName);
      if Obj <> nil then

    и тогда ReleSwitch.StylesData['self.Fill.Color']


  5. Никак. Читайте что такое числа с плавающей точкой.
    1 правило работы с плавающей точкой: Нельзя проверять 2 числа на равенство оператором =
    нельзя:

    const dx:double=143.201;
    const sx:single=143.201;
    begin
      assert(dx=sx);
    end;

     


  6. а для чего много pas файлов, почему все в одном не сделать, удобство или что 
    ЗЫ:
    У меня в текущем проекте 133 pas файла... не считая общих с другими проектами модулей... и это без учета сторонних компонент.
    и это не удобства ради, я для выживания :) когда разные несвязанные  сущности в одном месте - плохо как двигатель в салоне, бензобак под жопой, выхлопная в лицо, аккумулятор с серной кислотой на каленках...

     


  7. 1. Говорят - сначала сделай "какнибудь" - оптимизацию оставь на потом
    2. А книжку почитай... ООП там всякие... инкапсуляция там, переиспользование кода...

    по вашему списку
    1. Список счетов (желательно с оповещением статусов, типа как на СМС на ватсапе приходят)

    Кто их делать будет? Бекенд? На чем написан? или его нет?

    2. Онлайн каталог номенклатуры (калькулятор с разными расчетами, примерно как в Apk, думаю надо будет подробно объяснять как и что)
    Онлайн каталог ты получил выше...

    3. Раскрой листа (алгоритм я же сделал, просто внедрить): ввод списка с числами (габаритY, габаритX, кол-во) , показать изображение работы алгоритма:
    Прежде чем внедрять нужно понять к чему? Нафега клиенту твой алгоритм? Он не тебе материал экономит, а себе деньги... Сущьность какая? Заказ? список деталей? детали круглые/квадратные/в форме котиков?
    Кто раскрой делать будет? Клиент - ему это нафиг ненадо, хоть 1 деталь на лист. Бекенд? Админский фронтэнд? На чем написан? или его нет?

    4. Контакты (просто текстовая информация с ссылками)

    Тупо вывести на экран как Hello world...

    5. Отзыв (отправка текста мне на почту)

    Кто почту отправлять будет? Бекенд? На чем написан? или его нет?

    6. Загрузка файлы xls (прайс)

    Кто и главное куда (база) парсить будет? Бекенд? На чем написан? или его нет?

    Рано тебе клиентское приложение делать - я тебя бекенда нет по 1,3,5,6 пунктам...

    и того 2 или даже 3 программы: бекенд, клиентская часть, и одминка для приемщика заказа
    причем править имеющийся бекенд сайта тебе править низя :) иначе ты бы послушался и не парсил html а запилил нормальный JSON в нужном формате

     


  8. делаю перетаскивание внутри скрола.
    в момент MouseDown таскаемого контрола надо отключить скролирование скрола...
    что не делаю скролится.
    пока сделал TOpenAniCalculations(vSB.AniCalculations).TouchTracking := [];
    но если можно "правильнее" - жду ответа


  9. А в инде все готово...

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      IdUDPServer1.ReuseSocket:=TIdReuseSocket.rsTrue;
      IdUDPServer1.DefaultPort:=9898;
      IdUDPServer1.Active:=true;
    end;
    
    procedure TForm1.IdUDPServer1AfterBind(Sender: TObject);
    begin
      IdUDPServer1.Bindings[0].AddMulticastMembership('224.0.0.50');
    end;

     


  10. tmemo убери! TStringList возьми. распарсить без визуальных компонент! т.е. пока парсишь ничего ListBox не добавляешь

    1. Данные сохраняем в TStringList
    2. в потоке парсим и добавляем в другой TStringList  Item.Text '=' item.ItemData.Detail 

    3. в основном потоке вынимаем строки из второго TStringList в ListBox

×
×
  • Создать...