2017-10-13 74 views
5

Delphi 10.1.2 Berlin'de, Vcl.Dialogs.MessageDlg işlevinde, DlgType sabitleri mtInformation ve mtConfirmation aynı iletişim simgesini oluşturur. Örneğin:Yanlış MessageDlg simgesi DlgType mtConfirmation sabiti ile?

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

Ama DlgType sabit mtConfirmation ekran soru işareti simgesi, (diğer DlgType sabitler mtWarning ve mtError olarak her oluşturmamalıdır farklı bir simge)?

soru işareti simgesi nasıl DlgType sabit mtConfirmation?

+0

Bugün tam da bu sorunu vardı .. sorduğun için teşekkür ve teşekkür Tom cevap –

cevap

10

O help söylenenlerin:

mtConfirmation göster Having TMsgDlgType.mtConfirmation türde bir Soru İşareti

İletişim kutuları bir bilgi simgesi gösterir. Geçmişte

, bunun yerine bir soru işareti göstermek için kullanılır, ancak Microsoft VCL TMsgDlgType.mtConfirmation iletişim kutularını görüntülemek için kullandığı Windows API işlevinden soru işareti sembolü kaldırıldı. Microsoft'tan alıntı yapma: " iletisinin belirli bir türünü açıkça temsil etmediğinden ve bir iletinin bir soru olarak ifade edilebilmesi nedeniyle soru işareti simgesi artık artık önerilmemektedir. sembolü soru işaretini Yardım bilgileriyle karıştırır. " Önceki iletişim kutusu görünümünü kullanmak için, Vcl.Dialogs biriminin UseLatestCommonDialogs değişkenini False olarak ayarlamanız gerekir.

Yani bu kodu:

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; 

bu sonucu üretir:!

enter image description here

+0

için Microsoft'un mantığını gerçekten takip edemiyorum. Bir sembolün anlamı her zaman içeriği ile tanımlanır. Hangi anlama gelir: Üzerinde hareket edebileceğim bir kontrol (örneğin, bir buton) bir soru işareti sembolüne sahipse, bilgi almak için kullanabilirim. Ancak, diyalogdaki soru işareti harekete geçirilemez ve diyaloğa BEING bilgisinin anlamını verir. – user1580348