Если основная форма не установлена ??для видимости в дизайнере, тогда вызов OnCreate
заставит форму быть видимой после завершения строительства (и, следовательно, после того, как она была запущена).procedure TApplication.CreateMainForm; var I: Integer; begin if FMainForm = nil then begin // here creating form... end; if FMainForm <> nil then FMainForm.Visible := True; //** force visible here end;
Visible
В противном случае Visible
свойство формы устанавливается во время вызова TCommonCustomForm.Loaded()
, который вызывается потоковой системой DFM во время построения формы и, таким образом, запускается, OnShow
когда форма становится видимой. OnCreate
не не вызываются , пока после завершения строительства, после того, как ДФМ потоковый.
Суть в том, что вы не должны делать предположений о том, когда эти события будут выполнены. Если вам нужно контролировать порядок, в котором все происходит, вам нужно сделать это явно.