Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: MessageBox mit dem eigenen Bild???

  Alt 5. Feb 2006, 12:50
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:
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
Der kleine Vorteil gegenüber der obigen ist das setzen der Messagebox-Buttons wie BM_OK, MB_RETRYCANCEL usw.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat