|
[질문] 많은 수의 컨트롤에 Parent를 지정할 경우 속도가 느립니다.
한꺼번에 많은 수의 컨트롤들에게 부모(Parent)를 지정해 주게 되면,
각 컨트롤들이 화면에 나타나는 과정이 보일 정도로 느립니다.
일단 아래는 테스트해 볼 수 있는 소스입니다.
procedure TForm1.Button1Click(Sender: TObject);
var
d:DWORD;
t: TButton;
i: Integer;
begin
d:=gettickcount;
for i:=0 to 1000 do
begin
t:= TButton.Create(Self);
t.Parent := Self;
end;
showmessage(inttostr(gettickcount-d));
end;
Parent 속성을 지정하는 부분을 디버깅 해보니, Parent 속성을 지정하는 내부 동작이
생각보다 간단하지 않더군요. 그래서 느린 듯 합니다.
특히 Parent가 TCustomForm일 경우.. UpdateShowing()이 호출되는데 이 안에서
또 자신의 모든 자식 컨트롤들의 UpdateShowing()을 호출합니다.
머 이런 식의 부분들 때문에 한꺼번에 많은 수의 컨트롤에게 Parent를 지정하게 되면
상당히 느립니다.
저 같은 경우에 이 부분이 꼭 필요한데... 속도를 높일 수 있는 방법이 없을까요?
행복하세요.
|