[Lazarus] How to minimize application showing modal form(s)
Frank Poretzky
poretzky at nym.mixmin.net
Sun Apr 13 00:02:27 CEST 2014
Hi Howard,
on Sat, 12 Apr 2014 18:13:08 +0100, you wrote:
>On 12/04/2014 17:06, Frank Poretzky wrote:
>> Is there a way to modify my modal form to get it minimized as well?
>
>Create your modal form with the main form as its owner, and give it a
>unique Name at creation.
>In your main form's declaration set up two Application handlers,
>OnMinimize and OnRestore (of type TNotifyEvent), and hook them up in
>your main form's OnCreate code.
>In the OnMinimize and OnRestore handler implementations use
>FindComponent (or some other means) to locate your previously named
>modal form, and either Hide it or Show it as appropriate.
Apart from FindComponent, which makes an application with lots of
modal windows very complex, I tried various versions of
procedure TFormMain.AppOnRestore( Sender: TObject);
var
posit : integer;
begin
for posit := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[ posit].WindowState = wsMinimized
// if Screen.Forms[ posit].FormState <> [fsFirstShow]
then
Screen.Forms[ posit].WindowState := wsNormal;
// Screen.Forms[ posit].Show; //
end;
end;
with a corresponding AppOnMinimize() procedure. None of them worked
well, especially with the modal sub-sub-form scenario described above.
Many thanks
Frank
More information about the Lazarus
mailing list