Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wrong MessageDlg icon with DlgType mtConfirmation constant?

In Delphi 10.1.2 Berlin, in a Vcl.Dialogs.MessageDlg function, the DlgType constants mtInformation and mtConfirmation create the same dialog icon. For example:

if Vcl.Dialogs.MessageDlg('Do you really want to remove the selected item?',  mtConfirmation, mbOKCancel, 0) = mrOk then
begin
  RemoveTheSelectedItem;
end;

enter image description here

if Vcl.Dialogs.MessageDlg('Do you really want to remove the selected item?',  mtInformation, mbOKCancel, 0) = mrOk then
begin
  RemoveTheSelectedItem;
end;

enter image description here

But shouldn't the DlgType constant mtConfirmation display a question mark icon, (as the other DlgType constants mtWarning and mtError create each a different icon)?

How can I get a question mark icon with the DlgType constant mtConfirmation?

like image 688
user1580348 Avatar asked Oct 13 '17 07:10

user1580348


Video Answer


1 Answers

It is said in the help:

Having mtConfirmation Show a Question Mark

Dialog boxes of TMsgDlgType.mtConfirmation type show an information icon.

In the past, they used to show a question mark instead, but Microsoft removed the question mark symbol from the Windows API function that the VCL uses to display TMsgDlgType.mtConfirmation dialog boxes. Quoting Microsoft: "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." To use the previous dialog box appearance, you must set the UseLatestCommonDialogs variable of the Vcl.Dialogs unit to False.

So this code:

  Vcl.Dialogs.UseLatestCommonDialogs := False;
  if Vcl.Dialogs.MessageDlg('Do you really want to remove the selected item?',  mtConfirmation, mbOKCancel, 0) = mrOk then
  begin
    RemoveTheSelectedItem;
  end;

produces this result:

enter image description here

like image 164
Tom Brunberg Avatar answered Oct 26 '22 22:10

Tom Brunberg