|
: 문제는 TImage에서 생깁니다. 실행시 동적으로 생성하는 TImage객체가 150-180개 정도 되는데..
:
: ((TImage *) Panel1->Components[i])->Visible = false;
:
동적으로 생성했다면 어차피 TImage포인터를 가지고 있을거 아닙니까?
그러니까 위와 같이 처리하지 말고 그 포인터라가 ppImage라면..
ppImage[i]->Visisble = false;
이런 식으로 해보시죠.
: 근데.. 항상 그런것은 아닌데.. 때로는 엉뚱한 TImage객체를 컨트롤 합니다.
: 그런 현상은 시스템이 리소스를 많이 사용할때에 자주 발생하며.. 모든 프로그램을 종료하고.. 제가 짠 프로그램만 돌릴때는 거의 발생하지 않습니다.
: Panel1의 Comonents[i]로 핸들링 했는데.. Panel2에 있는 이미지가 조작되기도 하더군요.
: 어찌 하오리까???
i에 들어있는 값이 Panel1에 있는 콤포넌트 수를 넘어가는거 아닐까요?
C언어는 경계 체크를 안하니까 i값이 이상하다면 위와 같은 현상도 생길수 있을거 같은데...
소스가 없으니 알수가 없네요. ^^;
저도 버튼 200여개 동적으로 만들어서 처리해 본적인 있는데 별루 문제 없었거든요.
지금은 DrawGrid같은 것들을 주로 이용하죠
VCL에 치명적인 버그가 없는한 문제는 분명히 자신이 만든 코드 안에 있을테니
포인터하고 인덱스가 경계 벗어나는 조건이 있는지 확실해 챙겨 보세욥.
CodeGuard로 한번 돌려보는것도 한 방법이겠죠.
그럼.. 즐건 설날 되시길.. ^^
|