Form Oluşturma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
osmantn
Üye
Mesajlar: 6
Kayıt: 23 Tem 2004 11:45
İletişim:

Form Oluşturma

Mesaj gönderen osmantn »

Merhaba form oluşturma ve form kapatmada bazı tereddütlerim var:
1. Formları kendim oluşturmak istiyorum o yüzden autocreate de değiller:
bende
formx := tformx.Create(Anaform) şeklinde oluşturup
formx.show yada showmodal diye açıyorum ancak
kapatırken
formx.Free;
formx.nil diyorum ama task managerden kontrol ettiğimde formx kapanınca bellekte azalma olmuyor. bu oluşturup kapatma işlemlerini boş bir formda yapıyorum ve 20-30 defa yapınca 2kbyte- 4 kbyte bellek artıyor. Bir 20 kere daha yapsam exe nin bellekte kapladığı alan 2-3 k daha artacak. Aynı kalması gerekmiyor mu?

Birde
formx := tformx.Create(Anaform) ile
application.CreateForm(tformx,formx) arasında ne fark var merak ediyorum. Formu kapattığımda tamamı ile bellekten gitmesini istediğim zaman ne yapmalıyım. Tamamı ile bellekten gittiği zaman exe yi tekrar çalıştırmadan form oluşturmak amacı ile yaptığım butona tıklayıp en sağlıklı şekilde nasıl form yaratabilirim.

Açıklayan arkadaş olursa sevinirim..
Herkese iyi çalışmalar...
Kullanıcı avatarı
sharon
Üye
Mesajlar: 11
Kayıt: 27 Ağu 2004 03:55

Mesaj gönderen sharon »

Bir de formx.terminete dene bununla mutlaka olması lazım eğer seni doğru anladıysam tabi :D
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Terminate mi release mi ?

Mesaj gönderen Salih »

Merhaba,

formx.release dediğin zaman kullandığı belleği serbest bırakır.

delphi help :
release is the only safe way to destroy a form. do not use the Free method.

Ben de hep free kullanıyorum yahu ???
Sevgi, Saygı.....
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Form un owner ki seninyazdığında anaform sonlandrılmadığı sürece o memory bloğu bırakılmaz. Ama sen bunu dert etme windows bu ayarlamalı yapar. yani memory full hatası kolay kolay almazsın, gider swapfile ı kullanır. Sadece sen kod yazarken tasarımını iyi yap, yani eğer showmodal form u anaform içinden değilde başka form içinden çağırıyorsan owner olarak anaform u verme diğer formu ver ve o form ile işin bittiğinde bunu free lersen bloke edilmiş memory bloğu serfbest bırakılır.

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla