mobil form create ...

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
AfterPost
Üye
Mesajlar: 140
Kayıt: 12 Tem 2014 10:22

mobil form create ...

Mesaj gönderen AfterPost »

klasik masaüstü uygulamalarda

Kod: Tümünü seç

 Form2 := TForm2.Create(Self);
 form2.ShowModal;
 form2.Free;
bu yapı sorunsuz çalışıyor ama mobil platformunda çalışmıyor
mobile platformunda create ve free yi nasıl oluşturabiliriz

bir de

Kod: Tümünü seç

 Application.MessageBox('...', '');
benzer şekilde mobildeki karşılığı ne olabilir
delphi 10.4. 2 de derlemeye çalışıyorum
ertank
Kıdemli Üye
Mesajlar: 1564
Kayıt: 12 Eyl 2015 12:45

Re: mobil form create ...

Mesaj gönderen ertank »

AfterPost yazdı: 17 Haz 2022 07:10 klasik masaüstü uygulamalarda

Kod: Tümünü seç

 Form2 := TForm2.Create(Self);
 form2.ShowModal;
 form2.Free;
bu yapı sorunsuz çalışıyor ama mobil platformunda çalışmıyor
mobile platformunda create ve free yi nasıl oluşturabiliriz
Mobil uygulamalarda Windows'ta olduğu gibi pencere üzerinde pencere kullanımı mümkün olmuyor. Bunu yerine formu bir TAB sayfası içine ekleyerek göstermeniz gerekir. Önce bir TTabControl ekleyin. İçine boş bir TAB açın. Adının tabTest olduğunu varsayalım. Formu tab içinde göstermek için aşağıdaki gibi bir kod yazabilirsiniz.

Kod: Tümünü seç

var
  Form: TForm2;
begin
  Form := TForm2.Create(tabText); // Formun sahipliğini tabTest almış oldu
  Form.Parent := tabTest; // Formun gösterileceği bileşen tabTest olmuş oldu
  Form.Show();
  TabControl1.SetActiveTabWithTransition(tabTest, TTabTransition.Slide); // formu ekranda gösteriyoruz
end;
Yukarıdaki işlemi yaptıktan sonra ilgili formun işi bittiği zaman hafızadan silmelisiniz. Mobil uygulamaların hafıza limitleri Windows uygulamalarına göre çok daha sınırlıdır. Hafızadan silmek biraz daha uğraşılı bir iştir. Formu tespit edip hafızadan silmelisiniz. Bunun için aşağıdaki gibi bir prosedür kullanmak işi bir nebze kolaylaştırabilir.

Kod: Tümünü seç

procedure TForm1.DoClearForm2();
var
  I: Integer;
begin
  Form1.Show(); // Asıl form ekranda gösterilmeli
  for I := 0 to tabTest.ComponentCount-1 do
  begin
    if tabTest.Components[I] is TForm2 then
    begin
      TForm2(tabTest.Components[I]).Free();
      Exit();
    end;
  end;
end;

AfterPost yazdı: 17 Haz 2022 07:10 bir de

Kod: Tümünü seç

 Application.MessageBox('...', '');
benzer şekilde mobildeki karşılığı ne olabilir
delphi 10.4. 2 de derlemeye çalışıyorum
FMX platformunda ShowMessage() kullanabilirsiniz. iOS ortamında sorun olmaz iken Android platformunda ShowMessage() Windows ortamındaki gibi çalışmaz. Mesaj dışında kalan arka plandaki alana kullanıcı dokunur ise ekrandan gider. Kullanıcı "mutlaka okur" diye düşünmeyin.

Bunun yerine daha çok Toast() mesajları gösterip. Önemli olanlar için daha uzun süre ekranda kalsın şeklinde bir parametre kullanabilirsiniz. Veya, kendi mesaj gösterme formunuzu tasarlayıp yukarıdaki örnekteki şekilde kullanıcının mutlaka okuduğuna emin olabilirsiniz.
AfterPost
Üye
Mesajlar: 140
Kayıt: 12 Tem 2014 10:22

Re: mobil form create ...

Mesaj gönderen AfterPost »

verdiğiniz değerli bilgiler için teşekkürler.
Cevapla