TChart ile ilgili Sorun

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
naturelmania
Üye
Mesajlar: 66
Kayıt: 27 Nis 2006 09:29

TChart ile ilgili Sorun

Mesaj gönderen naturelmania »

Arkadaşlar S.A.
Kaç zamandır uğraştığım bir sorunum var. Programımdaki Chart'a düzenli aralıklarla veri atmaya çalıştığımda nedense sürekli Access Violation hatası alıyorum. Zaten bu hata çıktığı anda sürekli hata verdiği için program kilitlenip kalıyor.

Kodu Kullandığım şekil şu şekilde:
Not:Kod çok uzun diye kısaltıp ve raporlarla hatayı bulduğum bölümü veriyorum.

Kod: Tümünü seç

var
sku,z:integer;
SkyU:Array[1..1000] of integer;
ZSkyU:Array[1..1000] of double;

if series1.active=true then
  begin
    for z := 1 to sku do
      begin
      Series1.AddXY(ZSkyU[z],SkyU[z],'',colorbox1.selected);
      end;
  end;
ZSkyU yu daha önce extended belirledim ve chartın double dan daha fazlasını almadığını anlayınca değiştirdim. Fakat double yapsam dahi olmadı.
Daha sonrasında ZSkyU:=0 yaptım. 0'a karşılık SkyU yu güzelce noktaladı. Hem de sorun olmadan. Arkadaşlar bu hatayı almamak için sizce ne yapmalıyım? Bir türlü veriyi atamıyorum.
ZSkyU yu integer, double, extended denedim olmadı. Artık programın bitim aşamasındayım ama bitiremiyorum bir tek bu hata yüzünden :oops:
Acaba Chart ile ilgili böyle bir sorun yaşamış olan arkadaşlar var mı ya da ben nerede hata yapıyorum :?: :?:
Yardımcı olan arkadaşlardan Allah razı olsun.
var
sen : sevgili;
ben : aşık;
sevgi: aşk;
if ben aşık sana = True then
execute sevgi between(sen,ben);
:)))))
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Mesaj gönderen unicorn64 »

bana sanki hatayı yanlış yorumluyorsun gibi geldi... :?:

access violation hatası olmayan bir alana ulaşmaya çalışıldığında verir.
create edilmemiş nesne, dizinin tanımı dışındaki indisler gibi.
ama hataya sanki overflow gibi yaklaşmışsın ve değişken türü değiştirmekten bahsetmişsin.
bence tekrar bak. mesela döngüdeki sku değeri kaç? diziler 1000 elemanlık tanımlanmış sku 1001 ise hata alman normal....
naturelmania
Üye
Mesajlar: 66
Kayıt: 27 Nis 2006 09:29

Mesaj gönderen naturelmania »

unicorn64 arkadaşım önerin için çok teşekkür ederim
Çok kafa yordum ama ben de anlayamadım.
Access violation hatasını araştırdım ve dediğin gibi olmayan nesneye ulaşmaya çalıştığında hata verdiğini anladım fakat programda create edilmemiş bir nesneye ulaşmaya çalıştığım yok :cry: hepsi zaten create edilmiş halde geliyor.
İşin acaip tarafı ise bu değerleri 0 yaparsam hata vermiyor????
Öyle bir yerde alakasız bir hata ki bu, tam olarak ne yapacağımı bile bilmiyorum elimi kolumu bağladı :oops:
Böyle birşey ile karşılaşan kimse yok mu???
var
sen : sevgili;
ben : aşık;
sevgi: aşk;
if ben aşık sana = True then
execute sevgi between(sen,ben);
:)))))
naturelmania
Üye
Mesajlar: 66
Kayıt: 27 Nis 2006 09:29

Mesaj gönderen naturelmania »

Arkadaşlar sonunda denemelerle sorunu buldum
Sorun tamamiyle TCharttan kaynaklanıyor. Eğer TChart bileşenine 1 adet veri atarsam hata meydana geliyor.
Programda tek tek noktalama yapmaya başlanıyor. Yeni veri geldiğinde RefreshGraphs procedürü sayesinde grafiği sil baştan yeniden çiziyor.
İlk çizimde hata veriyor ve program hatalarla kilitleniyor.
İlk noktaya ek olarak ekstra bi nokta daha çizdirirsem bu sorun ortadan kalkıyor ve düzgün çalışıyor.
Sonuçta grafik yanlış oluyor böyle yapınca fazladan nokta oluyo :(
Chart çizdirmek için illa ki 2 nokta mı lazım?
Tek nokta ile çalışmıyo mu bu meret? :wink:
Önerebileceğiniz chart komponenti var mı arkadaşlar? Componentlerde pek iyi değilim :(
var
sen : sevgili;
ben : aşık;
sevgi: aşk;
if ben aşık sana = True then
execute sevgi between(sen,ben);
:)))))
Cevapla