У меня возникли проблемы с чем-то, что я хочу сделать. У меня есть некоторые большие формы, которые требуют времени для создания. Чтобы ускорить загрузку приложения, я подумал о том, чтобы позволить создавать формы в потоке, который создается в событии OnCreate основной формы. В потоке есть поле FApplication типа TApplication, которое, очевидно, является переменной Application. Я использую его для создания формы на резьбе, но даже то я попробовалСоздание формы Delphi без замораживания основной темы
FApplication.CreateForm (TfrmXXX, frmXXX)
и
frmXXX := TFrmXXX.Create(FApplication)
формы еще Арент созданных. Есть ли обходной путь для этого?
Заранее спасибо.
Фактически, создание окна в потоке, отличном от основного потока пользовательского интерфейса, является вполне законной идеей в Win32, которая использует ее. Это не имеет ничего общего с тем, что «VCL является потокобезопасным». Если я хочу иметь 3 потока каждый со своим собственным контуром сообщений, зачем нужен VCL? Петли сообщений не должны разговаривать друг с другом, они находятся в разных контекстах (т. Е. Нет проблем с безопасностью потоков). –
Милан, окно Win32 <> Форма VCL. Он хочет форму VCL, и вы просто не можете этого сделать, как бы вы этого ни хотели. –