Jaki jest zalecany sposób, aby zapewnić pełne zmaksymalizowanie formuły głównej, a wszystkie formanty zostały przerysowane przed pokazaniem formy modalnej przy pierwszym załadowaniu aplikacji?Prawidłowy sposób zapewnienia, że formant główny został zmaksymalizowany iw pełni przerysowany przed wyświetleniem formularza modalnego podczas ładowania aplikacji.
Muszę pokazać modalne okno dialogowe po uruchomieniu aplikacji (nie ekran logowania), ale jeśli ustawię formularz na wsMaximized
, gdy ekran zmaksymalizuje, kontrolki nie będą miały szansy na przerysowanie i pozostaniesz z brzydkim bałaganem .
pokażę modalne ekranu w chwili obecnej przy użyciu następujących:
procedure TForm1.FormActivate(Sender: TObject);
var
frmOrderLookup:TfrmOrderLookup;
begin
onactivate := nil;
frmOrderLookup:=TfrmOrderLookup.Create(nil);
try
frmOrderLookup.showmodal;
finally
frmOrderLookup.Free;
end;
end;
+1. Jeśli opublikujesz wiadomość w "OnShow" zamiast tego, zostanie ona przetworzona w późniejszym etapie procesu; to eliminuje jakąkolwiek szansę na to, że zostanie wysłane zbyt wcześnie. (A czy nie powinno to być 'FormCreate'?' OnCreate' to nazwa samej właściwości.) –
@Ken: Dzięki za poprawkę. Jeśli chodzi o użycie 'OnShow', myślę, że formularz zostanie utworzony, pokazany, a następnie aktywowany, zanim' Application.Run' zacznie pompować kolejkę wiadomości, więc nie ma to większego znaczenia. Inne formularze i datamoduły również muszą zostać stworzone (i mają również uruchomione zdarzenia "OnCreate"). Nie miałem tego idiomu, który zawiodłby mnie jeszcze w praktyce, gdy był używany z 'OnCreate'. – afrazier
Dzięki za pomoc - +1 do @KenWhite za rekomendację OnShow –