İnherit formlarda kullanılmayanclasslar belleği işgal edermi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

İnherit formlarda kullanılmayanclasslar belleği işgal edermi

Mesaj gönderen NewMember »

Arkadaşlar Merhaba.
Öncelikle DelphiTürkiye yöneticilerine ve seminerlerde emeği geçen herkese teşekkür ederim
2005 yılı 4.seminerinde Allah razı olsun Gökmen Hocam inherited olayını çok güzel anlatmış.Benim gibi delphiye yeni başlayan birisi bile anlamakta zorluk çekmiyor.Böyle bir yapıyı bilmediğimden yada yapamadığımdan hiç uygulamadım ancak kolaylıkları mükemmmel dedirtecek cinsten.Şimdi oturdum ve jkendime Base formlar hazırlıyorum.Ancak kafama bir şey takıldı.Onu sormak istedim.
Bu seminerdeki örnekte verilen kodları ben daha da artırarak tamamen şablon formlar oluşturmak istiyorum.Sormak istedşğim şu.
Mesela orada Base formun create yordamında TPageControl billeşeni kontrol edilerek aktif sayfa indexi sıfır yapılmış.
Ancak ben genelde TJVPageControl kullanıyorum.Ama her ikisinide kullanabilirim.Yada tamamen şablon form olacak ya kullanma olasılığım olacak olan tüm bileşenler için
kod yazmak isterim bu forma.Ancak tabiiki bu kodları yazarken o bileşenein tanımlandığı classı usese eklemek gerekiyor.
Dolayısıyla bu unitler türetilen formlarında useslerine otomatik geliyor.Ama mesela ben bu türettiğim formların herhangi birisinde base formun usesinde dolayısıyla o anki formunda useseinde bulunan classlara ait
bir bileşen kullanmadım.İşte bu aşamada o form create edildiğinde belleğin kullanılmayan classlarla doldurulması dolayısıyla bir gereksiz bellek kullanımı olurmu.Bunun için ne yapmalıyız.Eğer bu gereksiz yere bir yük getirirse tüm child formların usseslerini tarayıp gereksiz classları temizlemelimiyiz.tekrar herkese teşekkür ederim.Kolay gelsin.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

uses a eklenen dosyalar sadece exe boyutunu artırır,
eger forma bir bilesen koyarsanız delphi bunun bulundugu dosyayı otomatik olarak uses kısmına ekler, sonra diyelim siz bu bileseni formdan sildiniz, ama uses da tanımlaması kaldı, hatta bu sınıftaki bilesen icin bir iki kontrol kodları yazdınız, programı derlediniz
sadece dosya boyutu siser, ramda ayrılan kısım aynıdır,
hatta degisken olarak tanımlarıgınız bir bilesen create edilmedigi surece bellekte bir yer isgal etmez sadece 4 byte lık create edilecek adres bilgisini saklayacak kadar bir yer isgal eder.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Çok teşekkürler hocam.Öğrenmek istediğim buydu.Exe boyut önemli değil.Önemli olan pronun optime çalışması.Yani tam anlamıyla şablon bir form oluşturucam.Şu an kullanmasam bile ilerde kullanma olasılığım olan bileşenlere de kod yazacam da o yüzden sordum.Mesela sizin seminerde verdiğiniz editlerde focus alınca renk değişimini örnek olarak verecek olursak orada sadece dbedit ve editlere değilde ilerde kullanabileceğim veya belki hiç kullanılmaz maskedit,jvdbedit,jvdbedit,jvlookupcombobox,XXXedit,YYedit.vs. bunlarada o kod bloğunda yer vericem.Ama bunları belkide hiç kullanmıycam.İşte kullanmadığım zaman bunlar bellekte tutulmadığını anladım yazınızdan.Verdiğiniz bilgiler için teşekkürler.Kolay gelsin.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Derleyici kullandığın kodu Exe'ye dahil eder. Eğer nesneyi create etmezsen bellekte yer de kaplamaz.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Çok teşekkürler.Verdiğiniz bilgiler için.
Cevapla