안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당 임펠리테리입니다.
모르시고 작업하시는 거라고 생각하기는 어렵습니다만...
에디트처럼 윈도우 핸들을 가지는 컨트롤을 동시에 1000개나 생성시킨다는 것은...
결코 좋은 코딩이 아니죠. 프로그래머마다 조금씩 다르지만, 저같은 경우, 한꺼번에
생성시키는 컨트롤을 동시에 100개 이상은 곤란하다고 생각하고 있습니다.
문제가 무엇인지는 아시는지요? 리소스 때문입니다. 윈도우즈에서 리소스는 언제나
발목을 잡는 족쇄같은 거죠. 윈도우컨트롤을 하나 생성하면, 최소한 윈도우 핸들을
하나 이상 잡아먹게 되고, 바로 리소스를 차지하게 됩니다. 리소스는 무한정한 자원
이 아닙니다. 간단한 예로, 델파이를 계속해서 실행해보세요. 시스템마다 조금씩
다르긴 하겠지만, 무한정 뜨지는 않습니다. 그리고.. 만약 95/98 커널이라면 다운되는
상황도 발생합니다. 이것은 cpu 타임 때문이 아니죠. 아무것도 하지 않고 그냥 떠있는
델파이가 cpu 타임을 먹으면 얼마나 먹겠습니까.
권하고 싶은 개선안은... 일단 1000개의 에디트를 하나의 폼에 동시에 올리지 않는다
는 전제하이지만(물론 저는 하나의 폼에 1000개의 에디트를 올릴 방법조차도 없다고
생각합니다만), 에디트를 많이 가지는 폼들은 모두 가능한한 동적으로 생성시키는
겁니다. 예를 들어, 폼이 50개이고, 거기에 20개씩의 에디트가 있는 경우라면 쉽게
적용할 수 있는 겁니다.
그럼 참고하시길...
임펠리테리 박지훈이었습니다.
(
http://myhome.thrunet.com/~cbuilder, cbuilder@thrunet.com)