Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Blocking dialogs not implemented on this platform on Android Platform
#3
Merhaba,

VCL'den alışık olduğunuz MessageDLG kütüphanesine ait birçok input ve show popup mesajlarının desteği FMX üzerinde bulunmuyor. Bunun yerine metodu override ederek özel olarak çağırabiliyorsunuz.

Kendi yazmış olduğum metodları paylaşıyorum, size yardımcı olacaktır.

GitHub üzerinden erişmek için: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

// Yapsın mı? Evet, Hayır (true - false döner)
function AIMessageDlg(Question: String): Boolean;
var
 Res: Boolean;
begin

 MessageDlg(Question, System.UITypes.TMsgDlgType.mtInformation, [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], 0,
   procedure(const AResult: TModalResult)
   begin
     case AResult of
       mrYes:
         Res := true;
       mrNo:
         Res := False;
     end;

   end);

 Result := Res;

end;

// Yukarıda bir TProcedure çalışır. Yanıt evet olması durumunda tetiklenir.
procedure AIMessageDlgV2(Question: String; ExecuteProcedure: TProcedure);
begin

 MessageDlg(Question, System.UITypes.TMsgDlgType.mtInformation, [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], 0,
   procedure(const AResult: TModalResult)
   begin
     case AResult of
       mrYes:
         ExecuteProcedure;
       mrNo:
         Exit;
     end;

   end);

end;

// Doğru yanıt verilmesi durumunda 2. parametredeki action aktif edilir.
procedure AIConfirmBox(Question: String; Action: TAction);
begin

 MessageDlg(Question, System.UITypes.TMsgDlgType.mtInformation, [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], 0,
   procedure(const AResult: TModalResult)
   begin
     case AResult of
       mrYes:
         Action.Execute;
       mrNo:
         Exit;
     end;

   end);
end;

// TActionList'te iki farklı eylem denetlenir. Dönüş metodları 2. ve 3. parametreler.
procedure AIMsgDlgYesNo(Question: String; YesAction: TAction; NoAction: TAction);
begin
 MessageDlg(Question, System.UITypes.TMsgDlgType.mtInformation, [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], 0,
   procedure(const AResult: TModalResult)
   begin
     case AResult of
       mrYes:
         YesAction.Execute;
       mrNo:
         NoAction.Execute;
     end;

   end);
end;
{ talk is cheap show me the code. }
Cevapla

Konuyu Paylaş : facebook gplus twitter



Bu Konudaki Yorumlar
Cvp: Blocking dialogs not implemented on this platform on Android Platform - Yazar: Abdullah ILGAZ - 12-01-2018, Saat: 11:21

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Ödüllü Soru] FMX Android projede input alan ve sanal klavye konumu Abdullah ILGAZ 1 69 Dün, Saat: 12:37
Son Yorum: ssahinoglu
  Rad Studio C++ Android iile Editte Barkod Okutma Hatası Ahmet YILMAZ 1 378 19-07-2018, Saat: 17:01
Son Yorum: Abdullah ILGAZ
  android media player arsl01 2 64 19-07-2018, Saat: 07:55
Son Yorum: arsl01
  [Ödüllü Soru] FMX Android projede ekranın sürekli açık bırakılması Abdullah ILGAZ 1 61 17-07-2018, Saat: 12:14
Son Yorum: Cyber
  Android APİ sorunu - Google Play BY-HAYALET 18 583 09-07-2018, Saat: 09:47
Son Yorum: quiet1day



Konuyu Okuyanlar: 1 Ziyaretçi