Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Neues Icon für Messagebox (https://www.delphipraxis.net/94843-neues-icon-fuer-messagebox.html)

SirThornberry 27. Jun 2007 09:48

Re: Neues Icon für Messagebox
 
so gehts
Delphi-Quellcode:
{$R 101.res}  //Den Compiler anweisen die Datei "101.res" einzubinden (du kannst für deine .res-Datei bzw .rc-Datei auch jeden beliebigen anderen Namen nehmen, der spielt für den quelltext keine Rolle
procedure TForm1.Button1Click(Sender: TObject);
var
  MsgParams:    TMsgBoxParams;
begin
  MsgParams.cbSize:=SizeOf(TMsgBoxParams);
  MsgParams.hwndOwner:=Self.Handle;
  MsgParams.hInstance:=HInstance; //in Diesem Fall: HInstance = MainInstance
  MsgParams.lpszText:='Lobby Broadcaster'+ #13 +'Version: 1.1.0'+ #13 +''+ #13 +'Copyright © 2000 - 2005 by Me.'+ #13 +'All Rights Reserved.';
  MsgParams.lpszCaption:='About Product';
  MsgParams.dwStyle:=MB_OK or MB_USERICON;
  MsgParams.lpszIcon:=MAKEINTRESOURCE(101);;
  MsgParams.dwContextHelpId:=0;
  MsgParams.lpfnMsgBoxCallback:=nil;
  MsgParams.dwLanguageId:=0;

  MessageBoxIndirect(MsgParams);
end;
im übrigen kannst du -r auch weglassen (wird nicht mehr unterstützt)

Michi123 27. Jun 2007 09:53

Re: Neues Icon für Messagebox
 
Also nochmal danke, genau darauf bin ich vorhin gekommen, so funktionierts nämlich^^.

Aber mal ne andere Frage, kann man die Standardgröße von Icon, glaub 32x32 pixel dort auch größer darstellen z.b. 64x64?

Luckie 27. Jun 2007 09:55

Re: Neues Icon für Messagebox
 
Nein.

Michi123 27. Jun 2007 09:56

Re: Neues Icon für Messagebox
 
Schade, aber dann brauch ich mich auch nicht darum zu bemühen, es irgendwie hinzubekommen, danke für die prezise antwort^^

geskill 20. Mär 2008 22:14

Re: Neues Icon für Messagebox
 
mal noch eine Frage wenn ich:
Delphi-Quellcode:
Application.MessageBox(PAnsiChar(''),'Error',MB_ICONSTOP or MB_YESNOCANCEL)
aufrufe bekomme ich ein Integer Result, welchen Button ich geklickt habe YES, NO oder CANCEL.
Wenn ich aber die obrige Variante benutze, wie bekomme ich dort die besagten Informationen, welchen Button ich geklickt habe?

Ich habe mal in die Hilfe geguckt, dort steht für MessageBoxIndirect:
Code:
int MessageBoxIndirect(const LPMSGBOXPARAMS lpMsgBoxParams);
Das wäre ja in meinem Interesse (Integer result), jedoch unterscheidet sich die deklaration von der jetzigen, mein Delphi gibt bei der Funktion ein Boolean Wert zurück?! :gruebel:

Luckie 21. Mär 2008 14:10

Re: Neues Icon für Messagebox
 
Caste den Boolean mal nach Integer.

geskill 21. Mär 2008 19:09

Re: Neues Icon für Messagebox
 
funktioniert...
trotzdem finde ich es sehr seltsam, dass es funktioniert; weil ich ja nur einen Boolean Wert zurück bekomme (0/1) und daraus jetzt verschiedene Results "entstehen" (z.b. 2=CHANCEL 6=YES oder 7=NO)

Luckie 21. Mär 2008 20:17

Re: Neues Icon für Messagebox
 
Kommt drauf an, was es für ein Boolean-Typ ist. Aus der Hilfe:
Zitat:

A Boolean variable occupies one byte of memory, a ByteBool variable also occupies one byte, a WordBool variable occupies two bytes (one word), and a LongBool variable occupies four bytes (two words).
Die Results gibt es auch als Konstanten: IDYES, IDNO, IDOK, ...

Ich hatte das gleiche Problem jetzt neulich auch mit einigen API-Funktionen. Laut Windows SDK sollten sie ein Integer (Handle/Zeiger) zurückgeben. Borland lässt aber ein Boolean zurückgeben. Warum auch immer. :wall: Ich habe sie mir dann einfach selber noch mal "richtig" deklariert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Seite 2 von 2     12   

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