delphi - Correct way to ensure mainform has maximized and fully redrawn before showing a modal form on application load -
what recommended way ensure mainform maximized , controls redrawn before showing modal form on application first load?
i need show modal dialog when application starts (not login screen) if set form wsmaximized
whilst screen maximizes, controls not have chance redraw , left ugly mess.
i show modal screen @ present using following:
procedure tform1.formactivate(sender: tobject); var frmorderlookup:tfrmorderlookup; begin onactivate := nil; frmorderlookup:=tfrmorderlookup.create(nil); try frmorderlookup.showmodal; frmorderlookup.free; end; end;
what post custom message form. way won't processed until other messages form have been handled. time message gets processed, form should have finished redrawing.
type tmyform = class(tform) procedure formcreate(sender: tobject); private procedure handlelookupmessage(var message: tmessage); message wm_user + 1; end; procedure tmyform.handlelookupmessage(var message: tmessage); var frmorderlookup: tfrmorderlookup; begin frmorderlookup := tfrmorderlookup.create(application); try frmorderlookup.showmodal; frmorderlookup.release; end; end; procedure tmyform.formcreate(sender: tobject); begin // maximise form here if needed postmessage(handle, wm_user + 1, 0, 0); end;
if you're worried message getting application again somehow, can add private boolean variable indicate it's been handled once.
Comments
Post a Comment