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
[71108] Re:버튼을 빨리 그리는 방법을 알고 싶습니다.
장성호 [nasilso] 2661 읽음    2014-03-26 17:27
폼 하나에 버튼이 2800개나 올라갑니까?
올라 간다고 할지라도 한 화면에 다 보이지 않을것 같은데요??

1. 가능하면 공통된 기능을 묶어서 생성갯수를 줄이는 방안을 검토해 보세요
   
2. TSpeedButton같은 GraphicControl 버튼을 써보세요
    TButton은 TWinControl을 상속 받습니다.
    윈도우 핸들이 있어서 장점이 있지만.. 화면 갱신은 느릴수 있습니다.
    Graphic-Control을 핸들이 없지만 double-buffering이 용이하며 화면 속도가 빠를수 있습니다.
   
    Graphic-Control은 Parent의 DC에다가 자신을 그려줍니다.
    Parent의 화면갱신에 직접적인 영향을 받습니다.


3. 위치를 조절할때
    Button->Left ,  Button->Top , Button->Width , Button->Height 프로퍼티를 설정하는 방법 보다
    Button->SetBounds 메소드를 이용해 보세요
    위 네가지 프로퍼티가 변경될때마다 SetBounds가 호출됩니다.


4. 기타..


그럼..
 

박준규 님이 쓰신 글 :
: 폼 하나에 동적으로 버튼을 2800개를 생성하는 프로그램을 구현하였습니다
:
: 특정 작업을 하기 위함인데, 이게 FormCreate에 For 문으로 생성하니 퍼센테이지 늘어나는 것처럼 하나씩 늘어납니다
:
: 제 PC에서는 빠른데 배포한 다른 PC들에서는 시스템 사양 때문인지 엄청 느리더군요.
:
: 해결하기 위해서 여기저기 정보를 찾아보았는데 마땅히 적용할 방법이 보이질 않아서 이렇게 질문 드립니다.
:
: * Memo 컴포넌트에 있는 BeginUpdate 처럼 폼을 잠그고 버튼을 모두 그린 후
: EndUpDate 하는식의 작업이 가능한지 궁금합니다,
: 혹은 유사한 명령을 TForm 컴포넌트에서도 지원하는지 알고 싶습니다.
:

+ -

관련 글 리스트
71107 버튼을 빨리 그리는 방법을 알고 싶습니다. 박준규 2472 2014/03/26
71108     Re:버튼을 빨리 그리는 방법을 알고 싶습니다. 장성호 2661 2014/03/26
71114         Re:Re:버튼을 빨리 그리는 방법을 알고 싶습니다. 박준규 2516 2014/03/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.