C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[35156] [참조] 많은 수의 컨트롤에 Parent를 지정할 경우 속도가 느립니다.
김상면 [] 851 읽음    2004-05-24 06:10
제가 파스칼은 잘 모르지만 프로그래밍의 입장에서 보면 아래와 같은 프로그램은 알고리즘이고 뭐고 없습니다. 대체로 윈도우 생성은 빨리 생성하는 방법도 알고리즘도 없습니다. Create show update이런 씩으로 하나 하나 만듭니다.
그러므로 하나의 윈도우(폼)에 자식을 여러개 만드는 것은 프로젝트 진행상 문제가 있는걸로 알고 있습니
다. 그 대표적인 예로 툴바입니다. 툴바는 버튼 하나하나가 사용자가 보기엔 독립된 윈도우 처럼 보이나 전체 툴바 윈도우 하나에서 버튼 하나 하나를 직접 그린 것입니다. 또다른 예는 엑셀이나 그리드 콘트롤에서 사용하는 격자형 윈도우입니다. 사용자가 보기엔 셀 하나 하나가 다른 윈도우 처럼 작동하지만 사실은 View윈도우 하나가 모든 것을 합니다.

윈도우(폼)구성을 다시 해보시던가 님의 목적에 맞는 *.OCX나 *.DLL을 찾아 보시기 바랍니다.

그럼


홍환민.행복 님이 쓰신 글 :
: [질문] 많은 수의 컨트롤에 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를 지정하게 되면
: 상당히 느립니다.
:
: 저 같은 경우에 이 부분이 꼭 필요한데... 속도를 높일 수 있는 방법이 없을까요?
:
: 행복하세요.
:

+ -

관련 글 리스트
35152 [질문] 많은 수의 컨트롤에 Parent를 지정할 경우 속도가 느립니다. 홍환민.행복 716 2004/05/23
35156     [참조] 많은 수의 컨트롤에 Parent를 지정할 경우 속도가 느립니다. 김상면 851 2004/05/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.