AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation
Thema durchsuchen
Ansicht
Themen-Optionen

MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation

Ein Thema von kretabiker · begonnen am 25. Feb 2015 · letzter Beitrag vom 25. Feb 2015
Antwort Antwort
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 11 Alexandria
 
#1

MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation

  Alt 25. Feb 2015, 10:13
Delphi XE3 Pro, Win 7 Pro, beides deutsch

Hallo zusammen,

mir ist aufgefallen, dass ich beim Aufruf von MessageDlg in der Art

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
Udo Treichel
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.147 Beiträge
 
Delphi 12 Athens
 
#2

AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation

  Alt 25. Feb 2015, 10:20
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation

  Alt 25. Feb 2015, 10:25
In Dialogs.pas vom XE ist die IconMap auch schon so definiert:

Delphi-Quellcode:
  IconMap: array[TMsgDlgType] of TTaskDialogIcon = (tdiWarning, tdiError,
    tdiInformation, tdiInformation, tdiNone);
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation

  Alt 25. Feb 2015, 10:36
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
kretabiker

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

AW: MessageDlg: Gleiches Icon bei mtInformation und mtConfirmation

  Alt 25. Feb 2015, 11: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 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