Android Form ile Çalışma Ve yok Etme

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
igny
Üye
Mesajlar: 54
Kayıt: 14 Mar 2008 04:03

Android Form ile Çalışma Ve yok Etme

Mesaj gönderen igny »

Merhaba Arkadaşlar bir proje üzerinde çalışmaktayım.
Projeyi formlar ile yapıyorum ve şuan tam 21 tane form oldu projede .şimdi sorum şu
Formlar free show sırasında sanki bellek tüketimini arttırıyor gibi geliyor bir süre sonra program biraz yavaşlıyor ve hatalar vermeye başlıyor.Access vs.
1- Form mantığından tüm her formu bir tabsheete atıp tek bir form üzerinde tabcontrol ile kontrol etsem program daha stabil olur mu
2-Form yada nesne yok ederken free yerine disposeof kullanmanın yada freeandnil kullanmanın farkı olurmu yada bunlar arasındaki farklar nelerdir.
Cevaplar için teşekkür ederim şimdiden
Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

Re: Android Form ile Çalışma Ve yok Etme

Mesaj gönderen barisatalay »

Aşağıda gördüğünüz şekilde FMX platformlarda kullanıyorum bir sıkıntısını görmedim.

Application.CreateForm(TForm1, Form1);
try
{$IFDEF ANDROID}
Form1.ShowModal(procedure (Res: TModalResult)
begin
Form1.DisposeOf;
end);
{$ELSE}
Form1.ShowModal;
{$ENDIF}
finally
{$IFNDEF ANDROID}
FreeAndNil(Form1);
{$ENDIF}
end;
Kullanıcı avatarı
maxpaynen
Üye
Mesajlar: 14
Kayıt: 14 Tem 2018 03:20
İletişim:

Re: Android Form ile Çalışma Ve yok Etme

Mesaj gönderen maxpaynen »

Delphi Xe 10.2 de MainForm ve LoginForm diye iki tane form dosyam var.

Önce main form açılıyor. deneme amaçlı butonla LoginForm dosyasını açtırdım.
Fakat içindeki edit lerin işlemleri olmuyor. Yani loginForm.show yaptığımda loginform açılıyor ama Edit1, edit2 gibi alanlara tıklayıp işlem yapamıyorm.
LoginFormu birinci olarak yaparsam direk açılırsa Editler aktif ama sonradan show veya showmodala çağırırsam editler çalışmıyor. Benim bilmediğim bi hassas noktası mı var?
Kullanıcı avatarı
maxpaynen
Üye
Mesajlar: 14
Kayıt: 14 Tem 2018 03:20
İletişim:

Re: Android Form ile Çalışma Ve yok Etme

Mesaj gönderen maxpaynen »

problemi çözdüm. Zaten yeni başlamıştım yeniden oluşturdum iki formuda. Neden yaptığını henüz anlamış değilim. İlkinde Blank bir proje oluşturmuştum 2.cisinde HeaderFooterApplication seçtim. veya ilkinde LoginForm alt klasördeydi şimdi aynı klasördeler. Bu şekilde bi problem yaşayan olursa seçenekleri değerlendirsin.
eskalibur_
Üye
Mesajlar: 17
Kayıt: 19 Kas 2014 03:09

Re: Android Form ile Çalışma Ve yok Etme

Mesaj gönderen eskalibur_ »

ben çözemedim. projede sadece 3 form 1 edit 2 butondan başka birşey yok. mainformun onshow una loginform.show; diyorum, login formdaki editler çalışmıyor. login formu 1. form yapıp giriş butonuna loginform.hide; mainform.show yapıyorum. mainformdan başka bir form açacağımda uygulama kapanıyor. tabcontrolu bile denedim olmuyor. 1. tab login 2. tab main diye 2.tabdan form açmaya çalıştığım zaman kapanıyor. delireceğim. Allah rızası için Login, Main ve Form1 şeklinde basit bir proje verebilirmisiniz. ilk girişte login açılacak logindeki butona tıklayınca main açılacak maindeki butona tıklayınca form1 açılacak. çok basit görünüyor ama androidde olmuyor. :oops:
eskalibur_
Üye
Mesajlar: 17
Kayıt: 19 Kas 2014 03:09

Re: Android Form ile Çalışma Ve yok Etme

Mesaj gönderen eskalibur_ »

kendim çözdüm sonunda ve loginform karmaşasına da bir son verdim. araştırmadığım forum kalmadı. herkese bir örnek olur. olay project/ options/ forms da bitiyor. bilindiği üzere project/ options/ forms da mainform hangi form ise uygulamanın ana formu o oluyor. bu formu close yaptığımızda uygulama kapanır. login formun başlangıçta açılabilmesi için ya ya 1. sıradaki formumuz olmalı yada mainformun onshowunda loginform.show dememiz lazım. böyle yaptığımızda login formdaki nesneler tam aktif olmuyor. bu yüzden uygulamayı loginform 1. form olarak başlatıp login formu direk açmamız lazım. login butonuna tıklayınca da mainformumuzu 1. form haline getirip login formu kapattığımızda artık main formumuz 1. form oluyor.

Loginformun kodu

Kod: Tümünü seç

unit login;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,
  FMX.Controls.Presentation, FMX.StdCtrls;

type
  Tloginform = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  loginform: Tloginform;

implementation

{$R *.fmx}
uses
main;

procedure Tloginform.Button1Click(Sender: TObject);
begin
  if not Assigned(mainform) then
  mainform:=Tmainform.Create(Application);
  mainform.Show;
  Application.MainForm:=mainform;
  loginform.Close;

end;

end.


main formun kodu

Kod: Tümünü seç

unit main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls;

type
  Tmainform = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  mainform: Tmainform;

implementation

{$R *.fmx}
 uses
 unit3;
procedure Tmainform.Button1Click(Sender: TObject);
begin
form3.Show;
end;

end.
her ihtimale karşı projeyide buraya koyalım bi faydamız olsun.
Dosya ekleri
Ekran Alıntısı.PNG
Ekran Alıntısı.PNG (5.39 KiB) 3191 kere görüntülendi
loginform.rar
(8.13 KiB) 286 kere indirildi
Cevapla