Я хочу показать (анимированный) GIF в TImage (GIF) во время работы основного программирования. Прямо сейчас, либо основная программа ожидает GIF, либо GIF ожидает основной программы (потока) перед отображением.
Моя идея заключается в том, что GIF-изображение должно быть запущено в отдельном потоке. Изображение GIF не используется где-либо еще в основной программе. Я много читал о многопоточности (новое для меня). Delphi позволяет мне создавать новый поток в отдельном модуле (встроенная функция), но многие онлайновые примеры и учебные пособия просто помещают объект TThread в основную форму. Если я это делаю, я получаю ошибку компилятора, что моя основная форма не содержит члена с именем «Выполнить» (см. Код).
Что я делаю не так? Должен ли я перейти на отдельный поток во втором блоке? Любой совет, как получить доступ к этому GIF (TImage) через этот отдельный поток? Я знаю, что я должен позаботиться о синхронизации между VCL и отдельным потоком. Я также читал, что у современного Delphi есть возможность Очереди, которая, как утверждают, превосходит синхронизацию.
(в разделе интерфейса):
type
TThreadGIF = class(TThread)
protected
procedure Execute; override;
end;
(в разделе реализации ниже {$ R * .dfm}):
procedure TThreadGIF.Execute;
begin
NameThreadForDebugging('ThreadGIFname');
{ code should start here }
end;
Если кто-нибудь знает ссылку на хороший учебник, это также поможет.
Как создавать многопоточные приложения возвращает меня в мое текущее положение.