| Delphi Tips & Tricks | softsale > Delphi Tips & Tricks |
| < poprzednia rada | następna rada > |
Okno podrzędne niezależne od okna mainCzasem chcemy aby okno podrzędne było widoczne również wtedy kiedy okno nadrzędne zostanie zwinięte do ikony. Na przykład z form1 wołamy form2, ale chcemy aby po zwininięciu do ikony form1, form2 była widoczna. Aby to zrobić trzeba zmienić własność określająca rodzica naszego okna. Jedynym miejscem, gdzie można to zrobić jest procedura CreateParams. Procedura ta inicjalizuje parametry potrzebne do wyświetlenia okna przekazywane następnie do CreateWindowHandle. Parametrem CreateParams jest Params, będący następującą strukturą: type
TCreateParams = record
Caption: PChar;
Style: Longint;
ExStyle: Longint;
X, Y: Integer;
Width, Height: Integer;
WndParent: HWND;
Param: Pointer
WindowClass: TWndClass;
WinClassName: array[0..63] of Char;
end;
Jednym z pól struktury TCreateParams jest WndParent. Parametr ten określa uchwyt okna będącego rodzicem okna tworzonego. W przypadku, kiedy chcemy aby nasze okno podrzędne było niezależne od okna main, ustawiamy mu rodzica jako okno najwyżej w hierarchi, czyli Windowsowe okno desktopu. Uchwyt do tego okna można określić poprzez wywołanie API GetDesktopWindow. W deklaracji private dla form2 należy nadpisać procedurę CreateParams private
{ Private declarations }
procedure
CreateParams(var Params : TCreateParams); override;
public
{ Public declarations }
A oto ciało naszej procedury CreateParams: procedure TForm2.CreateParams(var Params : TCreateParams); begin inherited CreateParams(Params); Params.WndParent := GetDesktopWindow; end; |
|
SOFTSALE - Oprogramowanie i Szkolenia softsale@softsale.com.pl 03-565 Warszawa , ul. Borzymowska 43 lok. 301C tel/fax:4084840,GSM:0607612428 |