Available olan formları nasıl liste halinde alabilirim....
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- hacker_10-ur
- Üye
- Mesajlar: 27
- Kayıt: 05 Oca 2008 10:05
Available olan formları nasıl liste halinde alabilirim....
Arkadaşlar Acil!!!!
Yaptığım programda formları sonradan create etmek istiyorum
Registerclass methodunu kullanarak yapmayı denedim fakat işe yaramadı
Program çalışır haldeyken Available edilmiş formların listesini almam gerekiyor create etmem lazım açılan formu hafızadan release koduyla geri silmem lazım... programın hafızada fazla yer tutmaması gerekiyor....
Yardımlarınız için şimdiden TEŞEKKÜR EDERİM...
Yaptığım programda formları sonradan create etmek istiyorum
Registerclass methodunu kullanarak yapmayı denedim fakat işe yaramadı
Program çalışır haldeyken Available edilmiş formların listesini almam gerekiyor create etmem lazım açılan formu hafızadan release koduyla geri silmem lazım... programın hafızada fazla yer tutmaması gerekiyor....
Yardımlarınız için şimdiden TEŞEKKÜR EDERİM...
DELPHI - C ++
PASCAL - TURBO C
PASCAL - TURBO C
bunun listeyle alakası yok.
yapman gereken
bunun daha detaylı sürümünü verecekler olabilir ancak genel mantık bu. birde bu uygulamanın genel boyutuna yani exe boyutuna çok etki etmez ancak kullandığı hafıza miktarını etkiler.
yapman gereken
Kod: Tümünü seç
formx:=tfromx.create(self)
try
formx.showmodal;
finally
formx.free
end;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- hacker_10-ur
- Üye
- Mesajlar: 27
- Kayıt: 05 Oca 2008 10:05
üstad tam istediğimi anlatamadım ben herhalde!!!!
anlatmak istediğim şu misal veriyorum ben var olan formları otomatik değilde manuel create etmek istiyrum. ve ben bu formların classlarını almak istiyorum
örnek olarak düşüncem view sourcede kayıtlı olan unitler misal unit1 in 'unit1.pas'; ben programda var olan ama create edilmemiş formların listesini alıp if then metotlarıyla karşılaştırarak create edip ondan sona release metodu hafızadan kaldırmak istiyorum yani benim anlatmak istediğim programın booyutu değil hafızadaki boyutu...
bende yaklaşık 156 tane form var ve ekleyeceğim dahada form var ben bunu bir döngü ile bitirmek istiyorum bana sadece lazım olan view source de create edilmemiş classların listesi ondan sona for döngüsüyle tek tek registerclass koduyla create etmek ... anlayacağınız bana sadece available listesi lazım....
anlatmak istediğim şu misal veriyorum ben var olan formları otomatik değilde manuel create etmek istiyrum. ve ben bu formların classlarını almak istiyorum
örnek olarak düşüncem view sourcede kayıtlı olan unitler misal unit1 in 'unit1.pas'; ben programda var olan ama create edilmemiş formların listesini alıp if then metotlarıyla karşılaştırarak create edip ondan sona release metodu hafızadan kaldırmak istiyorum yani benim anlatmak istediğim programın booyutu değil hafızadaki boyutu...
bende yaklaşık 156 tane form var ve ekleyeceğim dahada form var ben bunu bir döngü ile bitirmek istiyorum bana sadece lazım olan view source de create edilmemiş classların listesi ondan sona for döngüsüyle tek tek registerclass koduyla create etmek ... anlayacağınız bana sadece available listesi lazım....
DELPHI - C ++
PASCAL - TURBO C
PASCAL - TURBO C
aksine. tam olarak derdinizi anlıyorum. zaten bende eşitliğin sağını doğru dürüst verecek bir kod bulamadığım için o bloku kullanıyorum. zaten benim örneğimdede belirttiğim gibi amaç hafıza kullanımını düşürmek.
forumdan başkaları daha değişik yanıtlar verebilirler ancak bende bu konuyu çok araştırdım forumdada sordum. net bir ynaıt veya yöntem çıkmadı.
forumdan başkaları daha değişik yanıtlar verebilirler ancak bende bu konuyu çok araştırdım forumdada sordum. net bir ynaıt veya yöntem çıkmadı.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- hacker_10-ur
- Üye
- Mesajlar: 27
- Kayıt: 05 Oca 2008 10:05
ilgilendiğiniz için teşekkürler arkadaşım....
fakat aklıma takılan bir soruu....
programı bütün formları create olarak açığımda hafızadaki boyut normal..
DİKKAT!!! bütün formlar otomatik create ediliyor ve hafızadaki boyut normal....
ancak içlerinden bir formu show ettiğimde o form hafızada yer çoğalıyor....
misal Form1.release; dediğimde create edilen formu tamamiyle kaldırıyor..
şuanda aradığım kod create edilmiş hali ile hafızada yer kaplamayan formlar show edildikten sonra hafızada yer alıp form kapandığında hala yer tutması..... release free vb kodlar yerine başka bir kod varmı acaba
çünkü saçma geliyor formlar create edildiğinde hafızada yer tutmazken açılıp kapandığında yer tutuyor.. bunun mutlaka bir kodu vardır diye düşünüyorum....
fakat aklıma takılan bir soruu....
programı bütün formları create olarak açığımda hafızadaki boyut normal..
DİKKAT!!! bütün formlar otomatik create ediliyor ve hafızadaki boyut normal....
ancak içlerinden bir formu show ettiğimde o form hafızada yer çoğalıyor....
misal Form1.release; dediğimde create edilen formu tamamiyle kaldırıyor..
şuanda aradığım kod create edilmiş hali ile hafızada yer kaplamayan formlar show edildikten sonra hafızada yer alıp form kapandığında hala yer tutması..... release free vb kodlar yerine başka bir kod varmı acaba
çünkü saçma geliyor formlar create edildiğinde hafızada yer tutmazken açılıp kapandığında yer tutuyor.. bunun mutlaka bir kodu vardır diye düşünüyorum....
DELPHI - C ++
PASCAL - TURBO C
PASCAL - TURBO C
Merhaba bu bence windowsun iç mekanizması. birazda sistem kaynağı sorunu sanırım. örneğin bir uygulama simge durumuna küçültülmüş ikende açık değilmi sonuçta. ancak bu durumda iken daha az sistem kaynağı tüketiyor.
formun hafızada boş boş durması ayrı olay windows içinde kontrolü ele alıp aktif form alması daha ayrı bir olay.
yinede başkaları daha teknik bilgiler verebilir...
formun hafızada boş boş durması ayrı olay windows içinde kontrolü ele alıp aktif form alması daha ayrı bir olay.
yinede başkaları daha teknik bilgiler verebilir...
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
bu şekilde create ettiğin zaman hafızada yer kaplamayacakmı.for döngüsüyle tek tek registerclass koduyla create etmek
formu ihtyacın olduğu zaman create et işin bittiği zamanda free et.
birde
Kod: Tümünü seç
application.components
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
işte bu güzel bir bilgiydi.aslangeri yazdı:bu şekilde create ettiğin zaman hafızada yer kaplamayacakmı.for döngüsüyle tek tek registerclass koduyla create etmek
formu ihtyacın olduğu zaman create et işin bittiği zamanda free et.
birdeden faydalanarak formları bulabilirsin. formların nil olup olmadıklarını kontrol ederekde create edilip edilmediklerini bulabilirsin.Kod: Tümünü seç
application.components
kolay gelsin.
yada editleri bulan kod başlığında millete akıl verirken bunu ben neden düşünemedimki:(
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- hacker_10-ur
- Üye
- Mesajlar: 27
- Kayıt: 05 Oca 2008 10:05
arkadaşlar formu create etmezsek application.components de görünmez...
onu bende yapardım
dediğinizle ancak bunu yaparım yani anlayacağınız o da olmazzz.....
zaten create edilmişse bunu yapabilirsiniz....
onu bende yapardım
Kod: Tümünü seç
var
i:integer;
begin
for i:=0 to aplication.componentcount-1 then
if application.components[i] is tform then
if TForm(application.components[i]).name='Form1' then
tform(application.components[i]).show;
end;
zaten create edilmişse bunu yapabilirsiniz....
DELPHI - C ++
PASCAL - TURBO C
PASCAL - TURBO C
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Selamlar.
Delphi'de bahsettiğin gibi create edilen ya da edilmeyen formları getiren bir metod yok zira kendisi de bunu dpr dosyasından yönetmekte. Formun create edilmesiyle show edilmesi arasındaki temel hafıza değişimi nedeni elbetteki formun ve üzerindeki nesnelerin paint edilmesi (minimize edildiğinde haliyle paint yordamı kullanılmıyor). FreeAndNil ile formu/nesneyi hafızadan atabilirsin ancak windows bu konuda senin beklediğin tepkiyi yine de vermeyecek zira bellek yönetiminde ihtiyaç oldukça kullanım ve revizyon sözkonusu olur genelde...
Kolay gele.
Delphi'de bahsettiğin gibi create edilen ya da edilmeyen formları getiren bir metod yok zira kendisi de bunu dpr dosyasından yönetmekte. Formun create edilmesiyle show edilmesi arasındaki temel hafıza değişimi nedeni elbetteki formun ve üzerindeki nesnelerin paint edilmesi (minimize edildiğinde haliyle paint yordamı kullanılmıyor). FreeAndNil ile formu/nesneyi hafızadan atabilirsin ancak windows bu konuda senin beklediğin tepkiyi yine de vermeyecek zira bellek yönetiminde ihtiyaç oldukça kullanım ve revizyon sözkonusu olur genelde...
Kolay gele.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
- hacker_10-ur
- Üye
- Mesajlar: 27
- Kayıt: 05 Oca 2008 10:05