![]() |
MessageBox mit dem eigenen Bild???
Hallo!
Ich habe eine Frage zu MessageBox. Und zwar in der Delphi-Hilfe sind mehrere Möglichkeiten für den Aufruf der MessageBox-Funktion beschrieben: Zitat:
Ich möchte eine MessageBox mit der eigenen Titel und dem eigenen Bild erstellen. Wenn ich mich nicht irre, ist die dritte Variante genau dafür vorgesehen. |
Re: MessageBox mit dem eigenen Bild???
Probier es mal damit:
Delphi-Quellcode:
Das Icon muss in der Ressource sein und wird mit der ID übergeben.
////////////////////////////////////////////////////////////////////////////////
// Procedure : MyMessageBox // Comment : Wrapper for MsgBoxParams procedure MyMessageBox(hWnd: HWND; caption, Text: string; IDIcon: DWORD); var MsgInfo : TMsgBoxParams; begin MsgInfo.cbSize := SizeOf(TMsgBoxParams); MsgInfo.hwndOwner := hWnd; MsgInfo.hInstance := GetWindowLong(hWnd, GWL_HINSTANCE); MsgInfo.lpszText := @Text[1]; MsgInfo.lpszCaption := @Caption[1]; MsgInfo.dwStyle := MB_USERICON; MsgInfo.lpszIcon := MAKEINTRESOURCE(IDICON); MessageBoxIndirect(MsgInfo); end; |
Re: MessageBox mit dem eigenen Bild???
Zitat:
Grüße Faux |
Re: MessageBox mit dem eigenen Bild???
@Luckie: vielen Dank, probiere ich gleich :-)
Zitat:
|
Re: MessageBox mit dem eigenen Bild???
Zitat:
Zitat:
Vielleicht findest du hier genaueres: ![]() Grüße Faux |
Re: MessageBox mit dem eigenen Bild???
Da ich gerade selbst so eine Messagebox brauche habe ich mich damit ein wenig beschäftigt. Beim stöbern bin ich nun über diesen Thread gestolpert und wollte mal meine Lösung hier mit vorstellen.
Delphi-Quellcode:
Der kleine Vorteil gegenüber der obigen ist das setzen der Messagebox-Buttons wie BM_OK, MB_RETRYCANCEL usw.
function MyMessageBox(hWnd: HWND; Text, Caption: String; IconID: DWORD;
const Buttons: Cardinal = MB_OK): Integer; var MsgInfo: TMsgBoxParams; begin With MsgInfo do begin cbSize := SizeOf(TMsgBoxParams); dwContextHelpId := 0; dwLanguageId := LANG_NEUTRAL; dwStyle := Buttons or MB_USERICON or MB_APPLMODAL; hInstance := GetWindowLong(hWnd, GWL_HINSTANCE); hwndOwner := hWnd; lpfnMsgBoxCallback := nil; lpszCaption := @Caption[1]; lpszIcon := MAKEINTRESOURCE(IconID); lpszText := @Text[1]; end; Result := Integer(MessageBoxIndirect(MsgInfo)); end; // Aufruf z. B.: procedure Foo; const MyIconID = 1; begin if MyMessageBox(Handle, 'Grafik konnte nicht erzeugt werden.'#13#10+ 'Fortfahren ?', 'Info:', MyIconID, MB_YESNO) = IDOK then ... else... end; // "MyIconID" bzw. die IconID bezieht sich auf ein Icon in der Resource |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz