Cum să prindeți un eveniment pliabil de formă

Cum să prindeți un eveniment pliabil de formă?

În aplicarea mai multor formulare - vreau să minimizez oricare dintre ele căzând întreaga aplicație. Dar evenimentul nu are eveniment OnMinimize.







tip
# xA0; TMyForm = clasă (TForm)
# xA0;.
# xA0; privat
# xA0; # xA0; procedura WMSysCommand (mesaj var: TMessage); mesaj WM_SYSCOMMAND;
# xA0;.
# xA0; sfârșitul;

procedura TMyForm.WMSysCommand (mesaj var: TMessage);
începe
# xA0; dacă Message.WParam = SC_MINIMIZE atunci
# xA0; # xA0; PostMessage (Application.MainForm.Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
# xA0; moștenit;
se încheie;

Și așa în orice formă :)

procedura TForm2.WMSysCommand (var Mesaj: TMessage);
începe
dacă începe mesajul Message.WParam = SC_MINIMIZE
// # xA0; PostMessage (Application.MainForm.Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
# xA0; Application.Minimize;






# xA0; ieșire;
se încheie;
moștenit;
se încheie;

PS Și cum să minimalizați o astfel de aplicație făcând clic pe butonul mouse-ului de pe bara de activități?


> Și cum să minimalizați o astfel de aplicație făcând clic pe butonul mouse-ului
> de pe bara de activități

Acest cod care este scris, doar adaugă la caracteristicile standard ale capacității de a minimiza aplicația dintr-o formă non-principală. Caracteristicile standard ale codului de mai sus nu afectează acest lucru, astfel încât întrebarea este incomprehensibilă.

1) Când aplicația este lansată și numai forma principală este activă, această aplicație este minimizată făcând clic pe butonul mouse-ului de pe butonul din bara de activități.

2) Când aplicația este lansată și activă # xA0; nu formularul principal și modal - această aplicație nu este minimizată făcând clic pe butonul acesteia din bara de activități. # xA0;

Întrebare: cum să minimalizați aplicația în cazul 2) # xA0; faceți clic pe butonul de pe bara de activități?


.
procedura MyWndProc (var Mesaj: TMessage); mesajul WM_ACTIVATEAPP;
.
procedura TForm2.MyWndProc (var Mesaj: TMessage);
începe
# xA0; dacă Message.WParam = 0
# xA0; # xA0; apoi Aplicație.Minimizați
# xA0; # xA0; altceva Application.Restore;
se încheie;
.

Aplicația este minimizată, dar numai atâta timp cât țin apăsat butonul mouse-ului. Eliberez mouse-ul - aplicația se desface din nou.







Trimiteți-le prietenilor: