Meddelelsesboks med eget ikon (Windows.MessageBoxIndirect)
Jeg vil lave en meddelelses-boks som Windows.MessageBox, men med mit eget ikon (det store til venstre for teksten).Windows-API bør understøtte det, så jeg vil ikke bruge en hjemmelavet løsning med en form, label, image og en button.
Jeg har lavet følgende, det virker også fint. Bortset fra, at der ikke bliver vist noget ikon i meddelelsen, men bare en tom "kasse" til venstre for teksten:
program Project1;
uses
Windows, Forms;
{$R *.res}
function MessageDialog(Caption, Text: String): LongBool;
var
mbp: TMsgBoxParams;
begin
with mbp do
begin
cbSize := SizeOf(mbp);
hwndOwner := Application.Handle;
hInstance := Application.Handle;
lpszText := PAnsiChar(Text);
lpszCaption := PAnsiChar(Caption);
dwStyle := MB_OK or MB_TOPMOST or MB_USERICON;
lpszIcon := 'MAINICON';
dwContextHelpId := 0;
lpfnMsgBoxCallback := nil;
dwLanguageId := LANG_NEUTRAL;
end;
Result := Windows.MessageBoxIndirect(mbp);
end;
begin
Application.Initialize;
Application.Run;
MessageDialog('Heste-dialog', 'Vil du i dialog med heste?' + #13#10 + 'Det kommer du nu!');
end.
Hvis der også er en der kan løse det, så jeg ikke behøver bruge VCL (Forms-uniten, med Application), vil det være godt.
Jeg bruger Delphi 7 Personal under Windows XP Prof.
På forhånd tak :-)
