access violation hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kubra_21
Üye
Mesajlar: 57
Kayıt: 30 Kas 2005 01:49
Konum: erzincan

access violation hatası

Mesaj gönderen kubra_21 »

s.a arkadaşlar şimdi ben bi form üzerinden 5 ayrı işlemi birden yaptırmaya çalışıyorum. şöyleki

şimdi menude 5 buton var. bu butonlar hep aynı forma gidiyor. tabi her işlem içinde ayrı bi buton var bu formda. menu formda butonlara basıldığında butonların visible özellikleri ile oynayarak 5 işlemi aynı formda yapmaya çalışıyorum. mesela bi butonun kodları şöle:

Kod: Tümünü seç

genel_form:=tgenel_form.Create(Application);
with genel_form do
begin
yeni.Visible:=true;
yeni1.Visible:=False;
yeni2.Visible:=False;
yeni3.Visible:=False;
yeni4.Visible:=False;
kaydet.Visible:=true;
kaydet1.Visible:=False;
kaydet2.Visible:=False;
kaydet2.Visible:=False;
kaydet3.Visible:=False;
kaydet4.Visible:=False;
vazgec.Visible:=true;
vazgec1.Visible:=False;
vazgec2.Visible:=False;
vazgec3.Visible:=False;
vazgec4.Visible:=False;
onizleme.Visible:=true;
onizleme1.Visible:=False;
onizleme2.Visible:=False;
onizleme3.Visible:=False;
onizleme4.Visible:=False;
SCGroupBox1.Visible:=True;
SCGroupBox2.Visible:=True;
SCGroupBox1.Transparent:=True;
SCGroupBox2.Transparent:=True;
SCGroupBox3.Visible:=False;
SCGroupBox4.Visible:=False;
SCGroupBox5.Visible:=False;
SCGroupBox6.Visible:=False;
SCGroupBox7.Visible:=False;
SCGroupBox8.Visible:=False;
SCGroupBox9.Visible:=False;
SCGroupBox10.Visible:=False;
end;
genel_form.ShowModal;
genel_form.free;
kasamenu_form.Hide;

burada kasamenü ana form genel formda 5 işlemi yaptığım bi form.

fakat mesela bu genel formda yeni butonuna basınca hata veriyo
tüm butonlardan giriyorum hep hata veriyor. hata şöle
"access Violation at address 05..." gibi bi hata.
yardımcı olursanız sevirim..
                                                  selam ve dua ile....
Allah Namına Al Allah Namına Ver Vesselam...
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

genel_form.free; silip bir denermisin....
kubra_21
Üye
Mesajlar: 57
Kayıt: 30 Kas 2005 01:49
Konum: erzincan

Mesaj gönderen kubra_21 »

s.a arkadaşlar problem devam ediyor. sildim o satırı ama. :(
Allah Namına Al Allah Namına Ver Vesselam...
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Mustafa bey, demişki access Violation at address hatası :ara
bu hata olmayan bir nesneye ulaşmaya çalışıyorsunuz hatası. Olmayan (create edilmemiş) bir form gibi. Bunu tespit etmenin en iyi yolu adım adım çalıştırıp, hangi satırda hatayı veriyorsa o satırdaki nesneleri bir kontrol etmek.

Ayrıca giriş formunu ana formun OnShow olayında da gösterip, yok edebilirsiniz. Ben hep OnShow'da yapıyorum.
Bu tarzda düşün eminim sorununu çözersin...
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam genel_form.Free; satırını genel_form.Release; olarak değiştirip denermisiniz...

Kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
kubra_21
Üye
Mesajlar: 57
Kayıt: 30 Kas 2005 01:49
Konum: erzincan

Mesaj gönderen kubra_21 »

s.a arkaşlar Berdem arkadaşım dediğini biras daha açarmısın açarsan sevinirim.
Biltes hocam denedim ama sorun aynı :(
Allah Namına Al Allah Namına Ver Vesselam...
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

genel_form:=tgenel_form.Create(Application); satırını genel_form:=tgenel_form.Create(nil); olarak denermsin..
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

if not Assigned(genel_form)then begin
genel_form:=tgenel_form.Create(Application);
with genel_form do
begin 
.....
end;//If in end i
genel_form.ShowModal;
if Assigned(genel_form)then FreeAndNil(genel_form);
....
//Bu kısmı Unit in en alt kısmına ekleyin. Yaptığı iş Application ilk çalıştığında
//hiç bir şey create edilmeden önce tün unitlerdeki  initialization kısımları işletilir.
initialization
  genel_form := nil;
end.
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