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

Лидеры

  1. rareMax

    rareMax

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


    • Баллы

      4

    • Постов

      553


  2. krapotkin

    krapotkin

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


    • Баллы

      2

    • Постов

      2 213


  3. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      1

    • Постов

      2 124


  4. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      1

    • Постов

      851


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

Показан контент с высокой репутацией 07.02.2017 в Сообщения

  1. и еще вместо idHTTP нужно использовать THTTPClient
    2 балла
  2. rareMax

    Живое связывание с таблицей БД

    Я на данный момент работаю с БД через Marshmallow ORM - и вполне доволен. Возможно для вас это и не выход - тогда пытайтесь подружиться с ЛайвБайндингом. Там кстати вебинар скоро по нему будет))
    1 балл
  3. Если посмотреть в данную ветку форума, то можно найти море полезной информации с примерами, например: и многое-многое другое... прикладывайте проект, помогут быстрее разобраться, начните с малого, затем тут обязательно помогут. Сам долго и упорно боролся с этим компонентом, сейчас доставляет только удовольствие работа с ним!
    1 балл
  4. Например, можно использовать TNetHTTPClient и свойство Asynchronous.
    1 балл
  5. AddObject используйте если нужно добавить несколько объектов в другой объект. Например несколько MyLabel_N в MyRect/ И считайте что FParent.AddObject(FChild) и FChild.Parent := FParent это просто синонимы
    1 балл
  6. Именно в поток TTask.Run( procedure begin TThread.Synchronize(TThread.CurrentThread, procedure begin end); end);
    1 балл
  7. Вот бы статью с иллюстрациями о правильном использовании TImageList. Интерфейс дизайн-части крайне нелогичный и запутанный. Мой опыт использования обычно заканчивается психозом из за того что компонент рушит приложение из за ошибок с индексами. И фиг поймешь почему он падает при попытке обращения к некоему индексу 3 (где то в недрах своего кода), если в нем всего две картинки, которые используются на двух кнопках.
    1 балл
  8. А какая разница на чем писать, база данных все равно требует библиотеку доступа!
    1 балл
  9. Вся отрисовка выполняется в главном потоке приложения. Поэтому, если вы пытаетесь выполнить скачивание файла в основном потоке, то вся отрисовка приостановится до момента окончания вашей операции. Поэтому правило хорошего тона - это вынесение долгих операций (загрузка, ответ авторизации и тд) в отдельный поток. Примерный код приведен ниже: 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
×
×
  • Создать...