Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MessageDlg Evet/Hayır Yazdırma
#11
(31-01-2018, Saat: 09:41)elixir84 Adlı Kullanıcıdan Alıntı:
(30-01-2018, Saat: 20:17)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Compile ile derlediyseniz veya doğrudan çalıştırdıysanız olamama ihtimali yüksektir.
Projeyi önce Build edin, daha sonra cihaz üzerinde çalıştırın.

[dcc32 Warning] girispas.pas(442): W1000 Symbol 'MessageDlg' is deprecated: 'Use FMX.DialogService methods'

[dcc32 Warning] girispas.pas(616): W1000 Symbol 'InputQuery' is deprecated: 'Use FMX.DialogService methods'

Build ettiğimde üsteki hataları verdi. Uygulama çalışıyor ama Yes/No Olarak.

SimaWB'nin önerisini dikkate almanız faydalı olacaktır.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#12
var
 ASync: IFMXDialogServiceAsync;
begin
 if TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceAsync, IInterface(ASync)) then
 begin
  ASync.MessageDialogAsync('Bu verileri silmek istediğinize emin misiniz?', System.UITypes.TMsgDlgType.mtInformation,
  [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo,0,
   procedure(const AResult: TModalResult)
   begin
    case AResult of
      mrYes:
     begin
       HareketlerView.Items.Clear; ///Görmeyin
       QrHareketler.Close; ///Görmeyin
       QrHareketler.SQL.Text := 'DELETE FROM tblhareketler';  ///Görmeyin
       QrHareketler.Open; ///Görmeyin
     end;
      mrNo:
     begin
      HareketlerViewPullRefresh(sender); ///Görmeyin
     end;
    end;
   end
  );
 end;
end;


Daha 3 gün önce yazmıştım. Evet/Hayır meselesine gelince onu bende düzenledim olmadı.
kisisel_logo_dark.png
WWW
Cevapla
#13
(30-01-2018, Saat: 15:57)elixir84 Adlı Kullanıcıdan Alıntı:
MessageDlg('İşlem Yapmak İstermisiniz ?', System.UITypes.TMsgDlgType.mtInformation,
    [
      System.UITypes.TMsgDlgBtn.mbYes,
      System.UITypes.TMsgDlgBtn.mbNo
    ], 0,
      procedure(const AResult: TModalResult)
      begin
        case AResult
          of
          mrYES:
            BEGIN
            //işlem
            END;
          mrNo:
          BEGIN
           //işlem
          END;
        end;
      end
    )

firemonkey MessageDlg da butanların isimlerine müdahale edebiliyormuyuz. Yes/No Yerine Evet/Hayır gibi.

Bu konu ile ilgili bir makale (Delphi Sabitlerinin Türkçe'ye Çevrilmesi) oluşturdum. Makalemiz, VIP Makale bölümünde olduğundan yalnızca 201 puana sahip Acemi ve daha üst gruba sahip üyelerimiz tarafından görüntülenebiliyor. Siz henüz bu puana ulaşamadığınızdan, VIP Makaleyi de göremiyorsunuzdur. 
Makalenin oluşumuna vesile olduğunuzdan dolayı bir defaya mahsus olmak üzere (bu konuda prensip olarak toleransımız yoktur), ÖM ile makaleyi sizinle paylaşıyorum.
DelphiCan'dır!
Cevapla
#14
(02-02-2018, Saat: 10:46)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(30-01-2018, Saat: 15:57)elixir84 Adlı Kullanıcıdan Alıntı:
MessageDlg('İşlem Yapmak İstermisiniz ?', System.UITypes.TMsgDlgType.mtInformation,
    [
      System.UITypes.TMsgDlgBtn.mbYes,
      System.UITypes.TMsgDlgBtn.mbNo
    ], 0,
      procedure(const AResult: TModalResult)
      begin
        case AResult
          of
          mrYES:
            BEGIN
            //işlem
            END;
          mrNo:
          BEGIN
           //işlem
          END;
        end;
      end
    )

firemonkey MessageDlg da butanların isimlerine müdahale edebiliyormuyuz. Yes/No Yerine Evet/Hayır gibi.

Bu konu ile ilgili bir makale (Delphi Sabitlerinin Türkçe'ye Çevrilmesi) oluşturdum. Makalemiz, VIP Makale bölümünde olduğundan yalnızca 201 puana sahip Acemi ve daha üst gruba sahip üyelerimiz tarafından görüntülenebiliyor. Siz henüz bu puana ulaşamadığınızdan, VIP Makaleyi de göremiyorsunuzdur. 
Makalenin oluşumuna vesile olduğunuzdan dolayı bir defaya mahsus olmak üzere (bu konuda prensip olarak toleransımız yoktur), ÖM ile makaleyi sizinle paylaşıyorum.

Teşekkürler makale ye göre yaptım.Yes/No Problemi çözüldü. (305 Özel karakterler listesine nerden ulaşabilirim.)
Cevapla
#15
Hocam burada mevcut.
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.
https://play.google.com/store/apps/developer?id=ONGUN
Cevapla
#16
(31-01-2018, Saat: 18:42)Halil Han Badem Adlı Kullanıcıdan Alıntı:
var
 ASync: IFMXDialogServiceAsync;
begin
 if TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceAsync, IInterface(ASync)) then
 begin
  ASync.MessageDialogAsync('Bu verileri silmek istediğinize emin misiniz?', System.UITypes.TMsgDlgType.mtInformation,
  [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo,0,
   procedure(const AResult: TModalResult)
   begin
    case AResult of
      mrYes:
     begin
       HareketlerView.Items.Clear; ///Görmeyin
       QrHareketler.Close; ///Görmeyin
       QrHareketler.SQL.Text := 'DELETE FROM tblhareketler';  ///Görmeyin
       QrHareketler.Open; ///Görmeyin
     end;
      mrNo:
     begin
      HareketlerViewPullRefresh(sender); ///Görmeyin
     end;
    end;
   end
  );
 end;
end;


Daha 3 gün önce yazmıştım. Evet/Hayır meselesine gelince onu bende düzenledim olmadı.

İlginçtir MessageDialogAsync procedure'u case ile çalışmıyor, if-then ile çalışıyor. Bilginize.. 

  if TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceAsync, IInterface(ASync)) then begin
   ASync.MessageDialogAsync(
     'Bu verileri silmek istediğinize emin misiniz?', System.UITypes.TMsgDlgType.mtInformation,
     [
        System.UITypes.TMsgDlgBtn.mbYes,
        System.UITypes.TMsgDlgBtn.mbNo
      ],
     TMsgDlgBtn.mbNo,0,
     procedure(const AResult: TModalResult)
     begin
       if(AResult = mrYes) then begin Showmessage('evet');  end;
       if(AResult = mrNo ) then begin Showmessage('hayır'); end;
     end
     );
 end;
Cevapla
#17
(22-07-2020, Saat: 06:43)emozgun Adlı Kullanıcıdan Alıntı:
(31-01-2018, Saat: 18:42)Halil Han Badem Adlı Kullanıcıdan Alıntı:
var
 ASync: IFMXDialogServiceAsync;
begin
 if TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceAsync, IInterface(ASync)) then
 begin
  ASync.MessageDialogAsync('Bu verileri silmek istediğinize emin misiniz?', System.UITypes.TMsgDlgType.mtInformation,
  [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo,0,
   procedure(const AResult: TModalResult)
   begin
    case AResult of
      mrYes:
     begin
       HareketlerView.Items.Clear; ///Görmeyin
       QrHareketler.Close; ///Görmeyin
       QrHareketler.SQL.Text := 'DELETE FROM tblhareketler';  ///Görmeyin
       QrHareketler.Open; ///Görmeyin
     end;
      mrNo:
     begin
      HareketlerViewPullRefresh(sender); ///Görmeyin
     end;
    end;
   end
  );
 end;
end;


Daha 3 gün önce yazmıştım. Evet/Hayır meselesine gelince onu bende düzenledim olmadı.

İlginçtir MessageDialogAsync procedure'u case ile çalışmıyor, if-then ile çalışıyor. Bilginize.. 

  if TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceAsync, IInterface(ASync)) then begin
   ASync.MessageDialogAsync(
     'Bu verileri silmek istediğinize emin misiniz?', System.UITypes.TMsgDlgType.mtInformation,
     [
        System.UITypes.TMsgDlgBtn.mbYes,
        System.UITypes.TMsgDlgBtn.mbNo
      ],
     TMsgDlgBtn.mbNo,0,
     procedure(const AResult: TModalResult)
     begin
       if(AResult = mrYes) then begin Showmessage('evet');  end;
       if(AResult = mrNo ) then begin Showmessage('hayır'); end;
     end
     );
 end;

Merhaba,
o zaman yaptığımda gayet stabil çalışıyordu. Güncelleme ile değişiklik gelmiş olabilir. 10.1 ile geliştiriyordum o zamanlar.
kisisel_logo_dark.png
WWW
Cevapla
#18
Merhabalar Fesih bey, gönderdiğiniz yazıları inceledim. Blocking dialogs not implemented on this platform on Android PlatformFiremonkey Android Uygulama KapanıyorFiremonkey MessageDlg TürkçeleştirmekBerlin What's New- Simplified Dialog API
Windows için FMX'te yazılmış uygulamayı Android'e aktarmaya başlayınca en başta ileti meselesini hala çözemedim. Windows'ta modal çalışan iletilere göre yazılmış uygulamayı Android için asenkron iletilere göre değiştirmemek için çok direndim. Bu 
https://stackoverflow.com/questions/4385...-for-input
çözümü de denedim fakat bir türlü modal yapamadım. 
* Async komutlar durmadan geçiyor, ya her evet-hayır için kodları dağıtmak veya bekletici ilave etmek gerekiyor. Sync olanlar duruyor fakat Android'de Dialog ve inputquery iletilerini göstermiyor.
** FMX.Consts ile düğmeler ve varsa bağlık türkçeleşiyor. İngilizce vs Windows'larda düğmeler ingilizce oluyor (TDialogServiceAsync.MessageDialog hariç)
Ayrıca FMX.DialogService.TDialogService.MessageDialog komutu platforma göre hem asyn hem de sync çalışabiliyor.

Bu durumda tek çözüm Procedure kısmı içine AResult = mrYes ve mrNo arasına alt producedure'ler olarak dağıtmak kaldı, sizce de öyle mi? Ya da başka bir yol tavsiye edebilir misiniz?


Ek Dosyalar Resimler
   
Cevapla
#19
(08-08-2020, Saat: 11:14)emozgun Adlı Kullanıcıdan Alıntı: Merhabalar Fesih bey, gönderdiğiniz yazıları inceledim. Blocking dialogs not implemented on this platform on Android PlatformFiremonkey Android Uygulama KapanıyorFiremonkey MessageDlg TürkçeleştirmekBerlin What's New- Simplified Dialog API
Windows için FMX'te yazılmış uygulamayı Android'e aktarmaya başlayınca en başta ileti meselesini hala çözemedim. Windows'ta modal çalışan iletilere göre yazılmış uygulamayı Android için asenkron iletilere göre değiştirmemek için çok direndim. Bu 
https://stackoverflow.com/questions/4385...-for-input
çözümü de denedim fakat bir türlü modal yapamadım. 
* Async komutlar durmadan geçiyor, ya her evet-hayır için kodları dağıtmak veya bekletici ilave etmek gerekiyor. Sync olanlar duruyor fakat Android'de Dialog ve inputquery iletilerini göstermiyor.
** FMX.Consts ile düğmeler ve varsa bağlık türkçeleşiyor. İngilizce vs Windows'larda düğmeler ingilizce oluyor (TDialogServiceAsync.MessageDialog hariç)
Ayrıca FMX.DialogService.TDialogService.MessageDialog komutu platforma göre hem asyn hem de sync çalışabiliyor.

Bu durumda tek çözüm Procedure kısmı içine AResult = mrYes ve mrNo arasına alt producedure'ler olarak dağıtmak kaldı, sizce de öyle mi? Ya da başka bir yol tavsiye edebilir misiniz?

Merhaba @emozgun bey,
Bu kadar derinlemesine inceleme ve test sürecine ilave olarak söyleyecek bir tavsiyem yok. 
İşletim sisteminin doğası gereği bu davranışı gösteriyor. 
İllede modal kullanılacaksa, özel bir pencere veya frame tasarlamak daha doğru olacaktır.
DelphiCan'dır!
Cevapla
#20
bildiğim kadarıyla artık android de tform u transparent yapamıyoruz, sadece popup transparent olabiliyor, popup içine rectangle ile yapılabilir, veya tform arkasına timage konularak, dialoğu açan formdan makescreenshot yapıp timage ye eklenirse sanki pencere önünde açılmış hissiyatıda veriyor.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fmx Android - Termal Yazıcı Resim Yazdırma hi_selamlar 8 1.800 17-10-2024, Saat: 18:21
Son Yorum: esistem
  TPie nesnesi yanına etiket yazdırma 41linea41 2 1.734 12-05-2021, Saat: 16:15
Son Yorum: 41linea41
  Bulut veya iP Yazıcıdan Yazdırma gonulali 3 2.005 10-03-2021, Saat: 11:25
Son Yorum: mkysoft
  Mobil Uygulamada Yazdırma İşlemi Hk. seydigozegir@gmail.com 5 5.941 16-10-2019, Saat: 16:09
Son Yorum: seydigozegir@gmail.com
  Firemonkey MessageDlg Türkçeleştirmek narkotik 14 11.085 21-08-2019, Saat: 13:03
Son Yorum: SimaWB



Konuyu Okuyanlar: 1 Ziyaretçi