Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation (https://www.delphipraxis.net/184092-messagedlg-gleiches-icon-bei-mtinformation-und-mtconfirmation.html)

kretabiker 25. Feb 2015 10:13

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:
MessageDlg('Blablabla', mtConfirmation, [mbOK], 0);
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.

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

himitsu 25. Feb 2015 10:20

AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
 
Stimmt es bei MSDN-Library durchsuchenMessageBox mit MB_ICONINFORMATION, bzw. MB_ICONWARNING ?

Du kannst ja mal versuchen rauszubekommen, von wo MessageDlg die Icons nimmt, falls es den Dialog selbst erstellt.

baumina 25. Feb 2015 10:25

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);

baumina 25. Feb 2015 10:36

AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
 
Microsoft schreibt dazu hier

Zitat:

The message box contains a symbol consisting of a question mark in a circle. The question-mark message icon is no longer recommended because it does not clearly represent a specific type of message and because the phrasing of a message as a question could apply to any message type. In addition, users can confuse the message symbol question mark with Help information. Therefore, do not use this question mark message symbol in your message boxes. The system continues to support its inclusion only for backward compatibility.

kretabiker 25. Feb 2015 11:31

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz