U ovom prilogu prikazaฤemo vam kako da promenite ikonu koja se prikazuje u MessageBox-u koristeฤi Windows API funkciju „MessgeBoxIndirect„. Ovu API funkciju ฤemo ugraditi u proceduru nazvanu „MojMessageBox“, koja ฤe nam omoguฤiti prikaz MessageBox-a sa ikonicom naลกe aplikacije.
procedure MojMessageBox
(Text: String);
var
MsgPars: TMsgBoxParams;
begin
with MsgPars do
begin
cbSize := SizeOf(MsgPars);
hwndOwner := Sysinit.HInstance;
hInstance := Sysinit.hInstance; //izvor
lpszText := PChar(Text); //ukoliko koristite
Delphi 1, morate koristiti StrPCopy.
lpszCaption := 'About';
dwStyle := MB_OK or MB_USERICON;
lpszIcon := 'MAINICON'; //ikona vaลกe
aplikacije, ugraฤena u *.exe
dwContextHelpId := 0; // kontekst help
lpfnMsgBoxCallback := nil;
dwLanguageId := LANG_NEUTRAL;
end; //with
MessageBoxIndirect(MsgPars);
end;
Sada ovu proceduru moลพete koristiti u event handler-u, kao na primer:
procedure TForm1.Button1Click(Sender: TObject);
begin
MojMessageBox('Primer promene podrazumevane MessageBox ikone');
end;
Obratite paลพnju na to, da u MojMessageBox proceduri, smo koristili sledeฤu deklaraciju:
hwndOwner := Sysinit.HInstance;
hInstance := Sysinit.hInstance;
Da bi izbegli moguฤu konfuziju u koriลกฤenju dve hinstance varijable, koristimo *with* naredbu. Jedna varijabla je hinstance ฤlan TMsgBoxParams , a druga pripada aplikaciji koja je definisana i inicijalizovana u Sysinit unit-u. Obratite paลพnju na to, da objektni Paskal nije osetljiv na veliฤinu slova (mala-velika: hInstance i HInstance znaฤe isto). „lpszIcon“ ฤlan TMsgBoxParams podatka predstavlja naziv kompajlirane ikone.
Pratite Krstaricu na www.krstarica.com