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
Android Form ile Çalışma Ve yok Etme
- barisatalay
- Üye
- Mesajlar: 398
- Kayıt: 02 Nis 2013 05:43
- İletişim:
Re: Android Form ile Çalışma Ve yok Etme
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;
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;
Yeni bloğum: http://brsatalay.blogspot.com.tr/
Re: Android Form ile Çalışma Ve yok Etme
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?
Ö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?
Re: Android Form ile Çalışma Ve yok Etme
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.
-
- Üye
- Mesajlar: 17
- Kayıt: 19 Kas 2014 03:09
Re: Android Form ile Çalışma Ve yok Etme
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. 

-
- Üye
- Mesajlar: 17
- Kayıt: 19 Kas 2014 03:09
Re: Android Form ile Çalışma Ve yok Etme
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
main formun kodu
her ihtimale karşı projeyide buraya koyalım bi faydamız olsun.
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.
- Dosya ekleri
-
- Ekran Alıntısı.PNG (5.39 KiB) 4579 kere görüntülendi
-
- loginform.rar
- (8.13 KiB) 383 kere indirildi