Einzelnen Beitrag anzeigen

kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#5

AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation

  Alt 25. Feb 2015, 12:31
Mit MessageBox erscheint das Fragezeichen-Icon, wenn ich es angebe.

mtConfirmation ist in VCL.Dialogs definiert als

mtConfirmation = System.UITypes.TMsgDlgType.mtConfirmation; Beim Erzeugen von MessageDlg wird in vcl.dialogs auf ein Array IconIds zurückgegriffen:

Delphi-Quellcode:
IconIDs: array[TMsgDlgType] of PChar = (IDI_EXCLAMATION, IDI_HAND,
    IDI_ASTERISK, IDI_QUESTION, nil);
Auch hier ist ein Fragezeichen definiert, wobei es auf
Delphi-Quellcode:
{$EXTERNALSYM IDI_QUESTION}
IDI_QUESTION = MakeIntResource(32514);
{$EXTERNALSYM IDI_EXCLAMATION}
IDI_EXCLAMATION = MakeIntResource(32515);
in WinAPI.Windows verweist. Question and Exclamation haben auch unterschiedliche magic numbers, wie man sieht.

Sieht soweit eigentlich richtig aus bis hierher. Danach verliert sich die Spur (für mich) in den Tiefen der Windows-API; zumindest besagt die WinAPI-Doku noch, dass die verwendete magic number 32514 wohl auch in Ordnung ist, zumindest für die Methode GetIconInfo. Da kommt dann vielleicht bauminas Hinweis zum Tragen, das die Verwendung des Fragezeichens nicht mehr gewünscht wird: Auf einem anderen Rechner habe ich eben schnell einen Test gemacht mit einem neuen Projekt sowohl unter XE3 als auch XE7, gleiches Ergebnis. Ich glaube, von meinem Fragezeichen muss ich mich verabschieden, wenn ich nicht sämtliche Vorkommen von MessageDlg ersetzen will durch MessageBox o.ä.
Udo Treichel
  Mit Zitat antworten Zitat