|
홍성진 님이 쓰신 글 :
: 고영문 님이 쓰신 글 :
: :
: : if( wctime <= 10)
: : {
: : Chart1->Series[0]-> AddXY(wctime,y[1],"",clYellow);
: : Chart1->Series[1]-> AddXY(wctime,y[0],"",clBlue);
: : }
: : else
: : {
: : tmpX1 = Chart1->Series[0]->XValues->Value[(int)wctime] - Chart1->Series[0]->XValues->Value[(int)wctime-1];
: : tmpX2 = Chart1->Series[1]->XValues->Value[(int)wctime] - Chart1->Series[1]->XValues->Value[(int)wctime-1];
: :
: : Chart1->Series[0]->Delete(0);
: : Chart1->Series[1]->Delete(0);
: : Chart1->Series[0]->AddXY(wctime+tmpX1, y[1], "", clYellow); // Chart1->Series[0]->XValues->Last()
: : Chart1->Series[1]->AddXY(wctime+tmpX2, y[0], "", clBlue); // Chart1->Series[0]->XValues->Last()
: : }
: :
: : 위의 코드는 제가 실험에 사용하고 있는 for문 안에서 실행되고 있고 여기에서 에러가 나타납니다. 그래프
: :
: : 는 잘그려지구요.,wctime = 샘플링하고 있는 현재 시간입니다. 물론 double형이구요.
: :
: : 그런데 어느 정도 시간이 되면 아래와 같은 error가 뜹니다. 도통 무슨 말인지 어디가 잘못되었는지 이해
: :
: : 가 가질 않는군요. 여기 Q&A에 TList error에 대해 있어서 봤지만 무슨 말인지 이해가 안갑니다. 어케 해결
: :
: : 을 해야 하는지 ...큰일임돠..급한데..고수님덜의 현명한 방법을 배우고자 합니다.
: :
: : "Project FineProjcet.exe raised exception class TListError with message'List index out of bounds(521)'
: :
: : 521은 시간( 배열일 수 도있구요..)입니다. 이 값은 300에서 발생할 수도 있고 왔다갔다 합니다.
:
: 안녕하세요..홍성진 입니다.
:
: 님께서 말씀하신 에러는 허용되지 않은 범위를 접근해서 그런겁니다.
: 예를들면, TList의 count가 10개일때, List1->Items[10]; 이런식으로 접근하면
: 위와같은 에러가 나겠지요...TList는 0부터 시작하니까요.
:
: 만약에 님께서, TList 아이템에 대해 추가, 삭제가 빈번이 일어난다면, 동기화를
: 잘 맞춰주셔야 할겁니다.
:
: 그런오류를 없애는 쉬운 방법은 항상 값을 액세스 하기전에 사용하려는 인덱스가
: TList의 count범위안에 드는지 먼저 확인하고 접근하세요...
:
: 다른 방법으로 예외처리도 있구요..
:
: 좋은결과 있으시길 바랍니다..
: 그럼...
:
//////////////////////////////////
ㅠ.ㅠ 무슨 말인지는 대충 이해는 하겠는데 해결방법은 어케 해야되는지....제가 내공이 약해서리...오늘 까지 해결해야 되는데 큰일입니다.
위의 코드는 10초 이후부터 그래프가 좌측으로 밀리면서 항상 10초정도의 데이터를 그래프로 그리고 있읍니다. 예외처리는 어케해야 되는지...가능하다면 코드로 표현해주셨으면 고맙구요...
|