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.ä.