messagedlg butonlarının yazısını EVET HAYR yapmak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozgur917
Üye
Mesajlar: 4
Kayıt: 11 Eki 2015 08:44

Re: messagedlg butonlarının yazısını EVET HAYR yapmak.

Mesaj gönderen ozgur917 »

Merhaba arkadaşlar, benim sorunum biraz farklı. Ben tek bir form kullanıyorum. Formu kapatmak için (programdan çıkmak için) pencere köşesinde Windows x işaretine basan kullanıcıya uyarı verdirtiyorum, programdan çıkmak istediğinize emin misiniz diye. Bu uyarıyı formun eventslerinde onclose da yapıyorum. mbyes ve mbcancel butonları var. Kullanıcı evet derse çıkmasını, iptal derse formun çalıştığı yerden devam etmesini istiyorum. Benim yaptığımda her iki durumda da çıkıyor. Bu durumu nasıl düzeltebilirim acaba? Şimdiden teşekkürler..
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: messagedlg butonlarının yazısını EVET HAYR yapmak.

Mesaj gönderen thelvaci »

ozgur917 yazdı:Merhaba arkadaşlar, benim sorunum biraz farklı. Ben tek bir form kullanıyorum. Formu kapatmak için (programdan çıkmak için) pencere köşesinde Windows x işaretine basan kullanıcıya uyarı verdirtiyorum, programdan çıkmak istediğinize emin misiniz diye. Bu uyarıyı formun eventslerinde onclose da yapıyorum. mbyes ve mbcancel butonları var. Kullanıcı evet derse çıkmasını, iptal derse formun çalıştığı yerden devam etmesini istiyorum. Benim yaptığımda her iki durumda da çıkıyor. Bu durumu nasıl düzeltebilirim acaba? Şimdiden teşekkürler..
OnClose olayı yerine OnCloseQuery olayını kullanıp CanClose değişkeninin değerini duruma göre true yada false yapabilirsiniz.
ozgur917
Üye
Mesajlar: 4
Kayıt: 11 Eki 2015 08:44

Re: messagedlg butonlarının yazısını EVET HAYR yapmak.

Mesaj gönderen ozgur917 »

@thelvaci hocam çok teşekkürler..
Kullanıcı avatarı
maxpaynen
Üye
Mesajlar: 14
Kayıt: 14 Tem 2018 03:20
İletişim:

Re: messagedlg butonlarının yazısını EVET HAYR yapmak.

Mesaj gönderen maxpaynen »

Kod: Tümünü seç

function fnk_msgDLG1(const Msg: string;
  DlgType: TMsgDlgType;
  Captions: array of string ;
  myInt : Integer
  ): Integer;
var
  Buttons: TMsgDlgButtons ;
  aMsgDlg      : TForm;
  i            : Integer;
  dlgButton    : TButton;
  CaptionIndex : Integer;
begin
Buttons:=[];
 for i := Low(Captions) to High(Captions) do begin
 if Captions[i]='Evet' then Buttons:=Buttons+[mbYes];
 if Captions[i]='Hayır' then Buttons:=Buttons+[mbNo];
 if Captions[i]='İptal' then Buttons:=Buttons+[mbCancel];
 // Burası Daha Da uzar
 end;
  aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons);
  aMsgDlg.FormStyle := fsStayOnTop;
  captionIndex := 0;

  for i := 0 to aMsgDlg.ComponentCount - 1 do
  begin
    if (aMsgDlg.Components[i] is TButton) then
    begin
      dlgButton := TButton(aMsgDlg.Components[i]);

      if CaptionIndex > High(Captions) then Break;
      dlgButton.Caption := Captions[CaptionIndex];
      Inc(CaptionIndex);
    end;
  end;
  aMsgDlg.Caption :=  'Firmatik';
  Result := aMsgDlg.ShowModal;
end;

Kod: Tümünü seç

if fnk_msgDLG1('Programı Kapatmak İstediğinize Emin misiniz?'
    ,mtWarning,['Evet','Hayır'],0
    )=mrNo then Exit;
    
    
Cevapla