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
[62284] Re:Re:Re:Re:체크 컨트롤 배열처리 방법...
PMAC [djlee6] 1079 읽음    2010-09-01 10:05
동적으로 생성을 하면 디자인 하기가 좀 애매해서 몇번 실행을 해가면서 자리도 맞춰야 되고
해서 번거로운 점이 많습니다.

그래서, 저 같은 경우에 먼저 해당 폼 클래스의 public영역에
TCheckBox * pCheckBox[100];와 같이 선언을 하고,
Form의 Create Method에서

pCheckBox[0] = FindComponent( ~~~ );

이런식으로 할당을 해서 씁니다.

물론 이름을 할당할 때 규칙을 정해서 하면 할당할때
코딩으로 쉽게 할당할 수 있습니다.

김봉재 님이 쓰신 글 :
: 네 감사합니다.
: 잘 쓰고 있습니다.....
: C Builder에 대한 자료가 국내에는 너무 없는듯...
:
: 지금 시작 님이 쓰신 글 :
: : 네 장성호님 말씀처럼 코딩해주셔야 합니다.
: : 조금 부연설명을 드리자면 디자인 타임에서 컨트롤을 올리면 그에 해당하는 코드들이 자동으로 생성됩니다. 즉,
: : :      ChkBox[i]=new TCheckBox(this);
: : :      ChkBox[i]->Parent=this;//또는 Panel1 등 특정 Control
: : :      ChkBox[i]->Left = 10;
: : :      ChkBox[i]->Top= 5+i*20;
: : :      ChkBox[i]->Caption=IntToStr(i);//원하는 내용..
: : :      ....
: : 이 내용들이 자동 생성되죠.
: :  하지만 런타임시 동적으로 생성하려면 위 자동생성 작업을 직접 해주어야해요.
: :
: : 헤더에 선언한다는 것은 말그대로 선언일 뿐입니다. new를 사용하여 실제 객체를 생성하고
: : 컨트롤의 위치와 캡션등등 프로퍼티들을 설정해주어야 실제로 폼에 나타나는 거죠~
: :
: :
: : 장성호 님이 쓰신 글 :
: : : Design-time에서는 Form위에 올려진 Component를 배열로 선언해서 사용할수는 없습니다.
: : :
: : : 하지만 run-time에 동적으로 CheckBox를 생성하고..
: : : 배치한다면 얼마든지 할수 있죠
: : :
: : : 그냥 Header에 TCheckBox *ChkBox[200]; //이렇게 선언하시구요
: : :
: : : FormCreate이벤트에서
: : :
: : : for(int i=0;i<200;i++)
: : : {
: : :      ChkBox[i]=new TCheckBox(this);
: : :      ChkBox[i]->Parent=this;//또는 Panel1 등 특정 Control 
: : :      ChkBox[i]->Left = 10;
: : :      ChkBox[i]->Top= 5+i*20;
: : :      ChkBox[i]->Caption=IntToStr(i);//원하는 내용..
: : :      ....
: : :      
: : : }
: : : 

: : :
: : : 위와같은 식으로 동적생성하셔서 특정 Control 위에 올리시고 위치도 조정하시면 됩니다.
: : :
: : : 그럼..
: : :
: : :
: : : 김봉재 님이 쓰신 글 :
: : : :



: : : :
: : : : 빌더로 폼에 약 200개의 체크버튼을 놓을려고 하는데요...
: : : : 하나 하나씩 컨트롤을 놓는것 말고, 배열로 처리하여 프로그램 실행때 자동으로 배열되도록 하고 싶은데..
: : : : 어떻게 하나요???
: : : : 폼에 컨트롤을 배치하지 않고,
: : : : 그냥 헤더에 아래와 같이 지정해서 사용할수 없나요???
: : : :
: : : : TButton *Button[200]; 이렇게 하니까 않되네요...
: : : :
: : : : 초보라....

+ -

관련 글 리스트
62273 체크 컨트롤 배열처리 방법... 김봉재 847 2010/08/30
62274     Re:체크 컨트롤 배열처리 방법... 장성호 840 2010/08/31
62275         Re:Re:체크 컨트롤 배열처리 방법... 지금 시작 846 2010/08/31
62283             Re:Re:Re:체크 컨트롤 배열처리 방법... 김봉재 836 2010/08/31
62284                 Re:Re:Re:Re:체크 컨트롤 배열처리 방법... PMAC 1079 2010/09/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.