Як відловити подія згортання форми

Як відловити подія згортання форми?

У додатку кілька форм - хочу щоб при згортанні будь-який з них згорталося все додаток. Але події OnMinimize у форми немає.

type
# XA0; TMyForm = class (TForm)
# XA0 ;.
# XA0; private
# XA0; # XA0; procedure WMSysCommand (var Message: TMessage); message WM_SYSCOMMAND;
# XA0 ;.
# XA0; end;

procedure TMyForm.WMSysCommand (var Message: TMessage);
begin
# XA0; if Message.WParam = SC_MINIMIZE then
# XA0; # XA0; PostMessage (Application.MainForm.Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
# XA0; inherited;
end;

І так в кожній формі :)

procedure TForm2.WMSysCommand (var Message: TMessage);
begin
if Message.WParam = SC_MINIMIZE then begin
// # XA0; PostMessage (Application.MainForm.Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
# XA0; Application.Minimize;
# XA0; exit;
end;
inherited;
end;

PS А як згорнути такий додаток клацанням мишки по його кнопці на панелі завдань?


> А як згорнути такий додаток клацанням мишки по його кнопці
> На панелі завдань

Той код, що написаний, всього лише доповнює до стандартних можливостей можливість згортати програму з неголовних форми. Стандартні можливості наведений код пі цьому не зачіпає, тому питання незрозуміле.

1) Коли запущено додаток і активна одна тільки головна форма - це додаток згортається клацанням мишки по його кнопці на панелі завдань.

2) Коли запущено додаток і активна # XA0, не головна форма, причому модальна - це додаток НЕ згортається клацанням мишки по його кнопці на панелі завдань. # XA0;

Питання: як згорнути програму в разі 2) # XA0; клацанням мишки по його кнопці на панелі завдань?


.
procedure MyWndProc (var Message: TMessage); message WM_ACTIVATEAPP;
.
procedure TForm2.MyWndProc (var Message: TMessage);
begin
# XA0; if Message.WParam = 0
# XA0; # XA0; then Application.Minimize
# XA0; # XA0; else Application.Restore;
end;
.

Додаток згортається, але тільки до тих пір, поки я тримаю кнопку мишки. Відпускаю мишку - додаток знову розгортається.