U prethodnom prilogu smo vas upoznali sa procesom kreiranja forme, a sada ฤemo vam prikazati situaciju kada je potrebno da „preskoฤite“ proceduru CreateParams, u cilju postizanja odreฤenih ciljeva. Recimo da ลพelite da svaka forma vaลกe aplikacije poseduje posebno dugme na Taskbar-u, tada ฤemo morati da napravimo par izmena. Inaฤe, podrazumevano je da svaka Delphi aplikacija poseduje samo jedno dugme na Taskbar-u, bez obzira na broj formi koji poseduje. Kada, na primer, minimizirate vaลกu glavnu (main) formu, tada ฤe „nestati“ i sve ostale forme koje pripadaju datoj aplikaciji. Ako zaลพelite da imate zasebno dugme na Taskbar-u za svaki sekundarni prozor, biฤe potrebno da izmenite dodatni parametar stila forme. Ako dodamo WS_EX_APPWINDOW deo parametru ExStyle forme, data forma se neฤe minimizirati kada se minimizira glavna forma aplikacije. A evo i kako treba da izgleda struktura CreateParams:
procedure TForm1.CreateParams
(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle
or WS_EX_APPWINDOW;
end;
Meฤutim, ovakav prilaz ima odreฤene neลพeljene nuspojave. Ukoliko kliknete na Taskbar dugme sekundarne forme, u momentu dok je aktivna forma neke druge aplikacije, ovim ฤe se sve forme aplikacije prebaciti u frontalni deo. Razlog ovakvom ponaลกanju leลพi u ฤinjenici da su sve sekundarne forme vezane za glavnu formu kao „roditelja“. Jedno od polja u TCreateParams strukturi je i WndParent, koji vodi raฤuna o upravljanju prozorom koji je kontrolisan od strane drugog prozora (od onog iz koga je kreiran). Promenom ove osobine moลพemo ukloniti vezu ka roditeljskoj formi i usmeriti je ka Desktop-u. Tada ฤe kod izgledati na sledeฤi naฤin:
procedure TForm1.CreateParams
(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do begin
ExStyle := ExStyle or WS_EX_APPWINDOW;
WndParent := GetDesktopwindow;
end;
end;
Pratite Krstaricu na www.krstarica.com