(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.
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ı.
(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.
(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.)
(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;
(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.
Merhabalar Fesih bey, gönderdiğiniz yazıları inceledim.
Blocking dialogs not implemented on this platform on Android Platform,
Firemonkey Android Uygulama Kapanıyor,
Firemonkey MessageDlg Türkçeleştirmek,
Berlin 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?
(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 Platform, Firemonkey Android Uygulama Kapanıyor, Firemonkey MessageDlg Türkçeleştirmek, Berlin 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.
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.