form free olmuyor ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

form free olmuyor ?

Mesaj gönderen Glen »

ilk oncelikle herkesin bayrami mubarek olsun

her zaman kullandigim yontem ama bi formda sacmaliyor neden olabilir?

formu create etmek icin

form1 := tform1.create(nil);
form1.show;

yapiyorum..
form1 in de onclose'una

action :=caFree;
form1 := nil;

diyorum ama form hafizadan gitmiyor? (Diger butun formlarda ise yariyo ama bunda olmadi nedense... )

baska bi buton ekliyip de
if not assigned(form1) then
showmessage('form yok');

gibi bi deneme yaptigimda da.. form yok diye mesaj cikarmiyo yani form hala var diyo halbuki nil durumuna getirdim..

onerisi olan varmi? $imdiden te$ekkürler herkese kolay gelsin
Kullanıcı avatarı
mnt
Üye
Mesajlar: 57
Kayıt: 30 Eki 2005 12:58
Konum: Kocaeli

Mesaj gönderen mnt »

Debugla inceleyince ne diyor ?
Mustafa
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

FormStyle durumu ne ? MdiChild mi.
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

ender_arslanturk yazdı:FormStyle durumu ne ? MdiChild mi.
evet MdiChild ama diger formlar da mdichild.. hepsi düzgün calisiyo bi bu ne hikmetse artik :(
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Glen yazdı:
ender_arslanturk yazdı:FormStyle durumu ne ? MdiChild mi.
evet MdiChild ama diger formlar da mdichild.. hepsi düzgün calisiyo bi bu ne hikmetse artik :(

enteresan :?: Belki de aynı formu başka bir olayda tetikliyorsundur.
radiochaos
Üye
Mesajlar: 17
Kayıt: 10 Kas 2005 05:15
Konum: Antalya
İletişim:

Mesaj gönderen radiochaos »

İki ihtimal geliyo aklıma
1. Her form olan unit'in başında Form'un classına ait bir değişken global olarak declare edilir.
var Form1:TForm1 şeklinde.
MDIChild yaratırken bir procedure'ın içinde local bir değişkenle formu yaratmak daha akıllıca olur sanırım.

procedure yeniForm;
var Form1:TForm1;
begin
Form1:=TForm1.Create(Application); // yada (nil)
Form1.Show;
end;

2. Form1 Project Settings de AutoCreate formlar içinde kalmış olabilir. Buna bağlı olarak global Form1 değişkeni kullanılarak yaratılıyorsa kodun içinde bi yerlerde ve Form1 deki herhangi bir component,method yada event'e refrans varsa access violation ortaya çıkar.

Kolay gelsin.
korhanpinar
Üye
Mesajlar: 8
Kayıt: 29 Eki 2005 10:54

birde close dene

Mesaj gönderen korhanpinar »

radiochaos un dediği gibi yapıyorum bende ve çalışıyor. ayrıca cafree ve nil kullanmak yerine sadece formadı.close dene

kolay gelsin
Kullanıcı avatarı
cuneyt22
Üye
Mesajlar: 213
Kayıt: 07 Şub 2004 03:32
İletişim:

Mesaj gönderen cuneyt22 »

kardeş bendede aynı sorun var idi şu şekilde aştım sorunu direk close yerine formadi.close ile denersen sorun hal olur s.a
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

hmm evet olabilir bu arada sorunu ben cozdum ama nasil cozdum tabi alakasiz oldugu icişn yazmadim yeni bi form acip herseyi yeniden koydum ilan oyle yaptim yani obur formu projeden remove ettim:) neyse bi daha gelirse ba$ima artik form1.close $eklinde yaparim..

ilgilenen herkese cok te$ekkür ederim
Cevapla