![]() |
MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
Delphi XE3 Pro, Win 7 Pro, beides deutsch
Hallo zusammen, mir ist aufgefallen, dass ich beim Aufruf von MessageDlg in der Art
Delphi-Quellcode:
sowohl mit mtInformation als auch mit mtConfirmation als Parameter das gleiche Icon - nämlich das Ausrufezeichen - angezeigt bekomme. Keine Ahnung, seit wann dem so ist, und was ich gemacht habe, das dem so ist, aber weiß jemand zufälligerweise, wie ich das wieder weg bekomme? Ich hätte schon gerne das Fragezeichen wieder.
MessageDlg('Blablabla', mtConfirmation, [mbOK], 0);
Kann es vielleicht daran liegen, dass ich CNPack und GExperts zusammen installiert habe - die kamen sich mit ihren jeweiligen MessageDlg-Experten am Anfang mal in die Quere. Viele Grüße Udo |
AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
Stimmt es bei
![]() Du kannst ja mal versuchen rauszubekommen, von wo MessageDlg die Icons nimmt, falls es den Dialog selbst erstellt. |
AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
In Dialogs.pas vom XE ist die IconMap auch schon so definiert:
Delphi-Quellcode:
IconMap: array[TMsgDlgType] of TTaskDialogIcon = (tdiWarning, tdiError,
tdiInformation, tdiInformation, tdiNone); |
AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
Microsoft schreibt dazu
![]() Zitat:
|
AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
Mit MessageBox erscheint das Fragezeichen-Icon, wenn ich es angebe.
mtConfirmation ist in VCL.Dialogs definiert als
Delphi-Quellcode:
Beim Erzeugen von MessageDlg wird in vcl.dialogs auf ein Array IconIds zurückgegriffen:
mtConfirmation = System.UITypes.TMsgDlgType.mtConfirmation;
Delphi-Quellcode:
Auch hier ist ein Fragezeichen definiert, wobei es auf
IconIDs: array[TMsgDlgType] of PChar = (IDI_EXCLAMATION, IDI_HAND,
IDI_ASTERISK, IDI_QUESTION, nil);
Delphi-Quellcode:
in WinAPI.Windows verweist. Question and Exclamation haben auch unterschiedliche magic numbers, wie man sieht.
{$EXTERNALSYM IDI_QUESTION}
IDI_QUESTION = MakeIntResource(32514); {$EXTERNALSYM IDI_EXCLAMATION} IDI_EXCLAMATION = MakeIntResource(32515); 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.ä. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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