Отследить сворачивание/разворачивание окна.

Zmiy

Доброе время суток!Не подскажите как определить, что пользователь свернул или наоборот развернул окно? Сколько нни искал в интернете, нашел только вариант с определением сообшения wm_size, но вот до конца не понял как работает такая технология. Может кто расскажет поподробней или ссылку бы какую-нибудь.Заранее благодарен.
3 ответа

Zmiy

<b>private</b>
 <b>procedure</b> WMGetSysCommand(<b>var</b> Msg: TMessage); message WM_SYSCOMMAND;

...

<b>procedure</b> TfrmMain.WMGetSysCommand(<b>var</b> Msg: TMessage);
<b>begin</b>
 <b>if</b> (Msg.wParam = SC_MINIMIZE) <b>then</b>
 <b>begin</b>
 sTray.Visible := True;
 fmServerMain.Hide;
 <b>end</b>
 <b>else</b>
 <b>inherited</b>;
<b>end</b>;


Zmiy

<b>unit</b> Unit1;

<b>interface</b>

<b>uses</b>
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

<b>type</b>
 TForm1 = <b>class</b>(TForm)
 <b>procedure</b> FormCreate(Sender: TObject);
 <b>private</b>
 <i>{ Private declarations }</i>
 <b>procedure</b> AppOnMinimize(Sender: TObject);
 <b>procedure</b> AppOnRestore(Sender: TObject);
 <b>public</b>
 <i>{ Public declarations }</i>
 <b>end</b>;

<b>var</b>
 Form1: TForm1;

<b>implementation</b>

<i>{$R *.dfm}</i>

<b>procedure</b> TForm1.AppOnMinimize(Sender: TObject);
<b>begin</b>
 Application.Title := 'Меня свернули :(';
<b>end</b>;

<b>procedure</b> TForm1.AppOnRestore(Sender: TObject);
<b>begin</b>
 Application.Title := 'Меня вернули :)';
<b>end</b>;

<b>procedure</b> TForm1.FormCreate(Sender: TObject);
<b>begin</b>
 Application.OnMinimize := AppOnMinimize;
 Application.OnRestore := AppOnRestore;
<b>end</b>;

<b>end</b>.


Zmiy

Всем спасибо попробовал первый метод.