Перейти к содержанию
Fire Monkey от А до Я

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      6

    • Постов

      2 124


  2. kami

    kami

    Пользователи


    • Баллы

      3

    • Постов

      643


  3. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      1

    • Постов

      842


  4. #WAMACO

    #WAMACO

    Пользователи


    • Баллы

      1

    • Постов

      776


Популярный контент

Показан контент с высокой репутацией 13.07.2016 во всех областях

  1. Зависит от системы, НО в FireMonkey можно сделать свой стиль рамки окна для Windows и в том числе разместить в шапке окна свои компоненты.
    2 балла
  2. Фреймы с разделением логики работы между ними спасут отца русской демократии.
    2 балла
  3. Как узнать количество свободного места на "диске"? К примеру получаю путь System.IOUtils.TPath.GetCachePath, и перед тем как туда писать, хочу узнать есть ли и сколько свободного места. С наскока не нашел ответ. Заранее благодарю!
    1 балл
  4. Кто вам такое сказал? Всё зависит от дизайна приложения. Фрейм делается, если какой-либо участок интерфейса: а) используется в нескольких местах, дабы не дублировать код и dfm б) если он занимает не всю форму, а ее часть и при этом обладает законченной или разветвленной логикой.
    1 балл
  5. В большинстве случаев стиль может быть любой структуры. Главное требование - это наличие специальных именованных объектов, с которыми компонент взаимодействует. В случае с тулбаром, он не работает со стилем. Поэтому вы можете использовать в стиле все что захотите. А если посмотрите в сторону TTintedStyleObject, то сможете сделать даже перекрашиваемый TToolBar!
    1 балл
  6. синхронизация локальной базы sqlite на мобильном устройстве с mysql базой на сервере, при любом простое приложения, т.е. открыли смотрим что-то, в фоне синхронизируется, стали что то делать, синхронизация приостановилась, и т.д.
    1 балл
  7. Из описания вебинара: Как уже говорил, не имею Apple девайсов, но надеюсь кто-то напишет подобную статейку.
    1 балл
  8. Самый простой способ это сделать переключение стилей через TStyleManager. Делаете два стиля и переключаете их через TStyleManager. Как раз последний урок записал про это.
    1 балл
  9. Как я правильно заметил, в вашем случае не был загружен стиль ваших меток. По этому вы обращались к размерам, вычисленным для настроек текста по умолчанию. А после загрузки стиля, вы уже не обновляли позицию. На Windows настройки текста по умолчанию совпадают с настройками текста в стиле. Поэтому работает так, как вы и полагаете. Решения Делать перерасчет позиции в OnApplyStyleLookup или OnResize у TLabel. Принудительно загрузить стиль: NeedApplyStyleLookup; ApplyStyleLookup;
    1 балл
  10. Вся отрисовка выполняется в главном потоке приложения. Поэтому, если вы пытаетесь выполнить скачивание файла в основном потоке, то вся отрисовка приостановится до момента окончания вашей операции. Поэтому правило хорошего тона - это вынесение долгих операций (загрузка, ответ авторизации и тд) в отдельный поток. Примерный код приведен ниже: 1. Создаем отдельный поток, в котором вы будите скачивать файл (я поставил для эмуляции скачивания просто паузу на 5 секунд): type TMyTask = class (TThread) protected FOnTaskStarted: TThreadMethod; FOnTaskFinished: TThreadMethod; procedure DoStarted; procedure DoFinished; procedure Execute; override; public property OnTaskStarted: TThreadMethod read FOnTaskStarted write FOnTaskStarted; property OnTaskFinished: TThreadMethod read FOnTaskFinished write FOnTaskFinished; end; Реализация: { TMyTask } procedure TMyTask.DoFinished; begin if Assigned(OnTaskFinished) then OnTaskFinished; end; procedure TMyTask.DoStarted; begin if Assigned(OnTaskStarted) then OnTaskStarted; end; procedure TMyTask.Execute; begin Synchronize(DoStarted); try Sleep(5000); // Эмуляция выполнения 5 Секундной задачи finally Synchronize(DoFinished); end; end; Само использование такого потока будет следующим (в моем примере после выполнения операции, появится сообщение): TForm3 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private FMyTask: TMyTask; public procedure DoTaskStarted; // Callback, вызываемый в начале старта операции procedure DoTaskFinished; // Callback, вызываемый в конце выполнения операции. Аналог OnTerminate procedure StartMyTask; // Запуск задачи end; procedure TForm3.Button1Click(Sender: TObject); begin StartMyTask; end; procedure TForm3.DoTaskStarted; begin end; procedure TForm3.DoTaskFinished; begin ShowMessage('Выполнение задачи окончено'); end; procedure TForm3.StartMyTask; begin if FMyTask <> nil then begin FMyTasl.OnTaskStarted := nil; FMyTasl.OnTaskFinished := nil; FMyTask.Free; end; FMyTask := TMyTask.Create(True); FMyTask.OnTaskStarted := DoTaskStarted; FMyTask.OnTaskFinished := DoTaskFinished; FMyTask.Start; end; При таком подходе главный поток не будет блокироваться и будет корректно отрисовываться и работать.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...