MessageDlg fonksiyonunda varsayılan butonu değiştirme

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

MessageDlg fonksiyonunda varsayılan butonu değiştirme

Mesaj gönderen mussimsek »

Merhaba,

messagedlg fonksiyonu ile gösterdiğiniz mesajlarda ilk buton varsayılan olarak gelir. Kullanıcılar genelde mesajları pek okumadığı için bu bazen başınızı ağrıtabilir. Çoğu kullanıcı "bu kaydı silmek istiyor musunuz?" gibi kritik bir soruya okumadan Evet diyecek potansiyele sahiptir. Bu durumda Hayır butonunu varsayılan yapmak iyi olacaktır.

Fonksiyonumuz :

Kod: Tümünü seç

Function DefMessageDlg(const aCaption: String;
                       const Msg: string;
                       DlgType: TMsgDlgType;
                       Buttons: TMsgDlgButtons;
                       DefButton: Integer;
                       HelpCtx: Longint): Integer;
Var
  i: Integer;
  btn: TButton;
Begin
  With CreateMessageDialog(Msg, DlgType, Buttons) Do
  try
    Caption := aCaption;
    HelpContext := HelpCtx;
    For i := 0 To ComponentCount-1 Do Begin
      If Components[i] Is TButton Then Begin
        btn := TButton(Components[i]);
        btn.Default:= btn.ModalResult = DefButton;
        If btn.Default Then
          ActiveControl := Btn;
      End;
    End; { For }
    Result := ShowModal;
  finally
    Free;
  end;
End;
Kullanımı :

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
begin
  If DefMessageDlg( 'Onay',
                    'Bu kaydı silmek istiyor musunuz?',
                    mtConfirmation,
                    mbYesNoCancel,
                    mrno, //bu kısımda varsayılan buton belirleniyor
                    0 ) = mrYes
  Then
    Table1.Delete;
end;
Kolay gelsin.
Cevapla