Kayıt İptal Etme Uyarısı (BeforeCancel)

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Kullanıcı avatarı
muratmutlu
Üye
Mesajlar: 57
Kayıt: 02 Tem 2005 02:44
Konum: Antalya

Re: Kayıt İptal Etme Uyarısı (BeforeCancel)

Mesaj gönderen muratmutlu »

Merhaba,

Buradaki kod ile ilgili böyle bir hata oluşacağını sanmıyorum ancak onun tetiklediği bir yerlerde böyle bir hata olabilir.

1. Eğer Kullandığın table ın Datasource nesnesinde bir kod varsa onları kontrol edebilirsin. Örneğin: OnDataChange, OnUpdateData vb.
2. Eğer bu table ı bir gridde kullanıyorsan ve OnDrawColumnCell gibi bir özelliğinde kod varsa onu kontrol edebilrisin.
3. Bir de Abort yerine Kullandığın tabloyu cancel etmeyi deneyebilirsin. Table1.Cancel gibi
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Kayıt İptal Etme Uyarısı (BeforeCancel)

Mesaj gönderen akdatilla »

Bazen bir sorunun kaynağının son yaptığımız işlemden kaynaklandığını düşünerek o kod üzerine yoğunlaşırız. Ancak sorun bambaşka bir yerdedir.
Bence aldığın hata mesajı bir database işleminden kaynaklanmıyor. Bir Tlist, yada TList nesnesinden türetilmiş bir nesnen var, bu nesnenin var olmayan indexinde işlem yapılmaya çalışıldığı için bu hatayı alıyorsun.
Örnek:

Kod: Tümünü seç

list:=TStringList.Create;
list.Add('1.Eleman');
list.Add('2.Eleman');
list.Add('3.Eleman');
ShowMessage(List.Strings[3]); //işte burada senin hatan oluşur.
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Kayıt İptal Etme Uyarısı (BeforeCancel)

Mesaj gönderen akdatilla »

Delphide, abort; komutunu verdiğin noktaya durdurma (break) ekle. Abort komutunda program dursun. Daha sonra F7 tuşu ile satır satır devam ettir. Eğer şansın varsa (program dev.express gibi bazı bileşneler sebebiyle sonu gelmeyen döngülere girebilir) hatayı yakalayabilirsin.
Kullanıcı avatarı
muratmutlu
Üye
Mesajlar: 57
Kayıt: 02 Tem 2005 02:44
Konum: Antalya

Re: Kayıt İptal Etme Uyarısı (BeforeCancel)

Mesaj gönderen muratmutlu »

Merhaba,

Bu hatanın tespiti için detaylı bir şekilde debug etmelisin. Belki de kullandığın bir nesnenin hatası olabilir. Bunun yanısıra eğer master detail bir tablo kullanıyorsan birbirini tetiklemiş olabilirsin. Oradaki datasource event larını da incele.

Bir de sen yine de cancel yöntemini kullanıp deneyebilirsin. Abort yazdığın yeri cancel ile değiştirip tam cancel yazan yere breakpoint koy ve program o noktaya gelince debug etmeye başla ancak bunu F8 ile değil de F7 tuşu ile yap. Hata veren kodu bu şekilde tespit edebilirsin. Biraz zahmetli ve uzun olabilir ama en azından hata verdiren satırı bu şekilde bulabilirsin diye düşünüyorum.

Not : Bir yerlerde StringList kullanıyorsan o satırı da incelemelisin.
Cevapla