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
[74981] Re:Re:Re:component 배열 형식으로 구현 질문입니다.
김시환 [godson2] 166 읽음    2018-06-25 10:24
예제 소스 하나 올려드리니 참고하세요..

바루 님이 쓰신 글 :
: 답변 정말 감사드립니다. 두 가지 더 궁금한게 있어서 질문드립니다.
: 1.
: 헤더파일에서 아래와 같이 정의를 했을 때
:
:    TRzGroupBox *GroupList[10];              
:    TImage *GImage[10][1000];
: 

: "Error in module Layer_F: Incorrect field declaration in class TLayerForm"   //Layer_F 는 cpp, h파일 이름
: 이런 메시지가 뜨는데 어떻게 해야되나요?
:
: 2.
: 또, FormCreate에서 image1, image2 ... 는 어떻게 정의되는 건가요?
:
: TImage *image1;
: TImage *image2;
: 

: 이런 형식인가요?
: 현재 코드에선  TImage *G1Image1;를 따로 초기화 없이 써서요.
:
: 앞에 선임자가 썼던 코드 그대로 받아서 C빌더에 대한 지식 없이 맨땅에 헤딩하려니 힘드네요 ㅠㅠ
:
:
: 김시환 님이 쓰신 글 :
: : TImage 컴포넌트를 정적으로 하느냐 동적으로 하느냐에 따라 조금 코드가 변할수는 있을텐데 제가 늘 사용하던 컴포넌트 배열을 참고 삼아 알려 드리겠습니다.
: :
: : 일단 아래 코드 중심으로 설명을 드리면
: :
: : class TLayerForm : public TForm
: : : {
: : : __published:    // IDE-managed Component
: : :
: : :   TRzGroupBox *GroupList[10];             
: : :   TImage *GImage[10][1000];
: : }
: :
: : void __fastcall TLayerForm ::FormCreate(TObject *Sender)   
: : {
: :     GImage[0][0] = image1 ;     // 이미지가 정적으로 고정되어 있을 경우 모든 이미지를 다 배열에 할당합니다.
: :     GImage[0][1] = image2 ;     // 숫자적으로 보면 꽤 노가다가 되겠네요..
: :             :
: :             :
: :     GImage[9][999] = imageN ;
: : }
: :
: : GImage[group][item]->Picture->LoadFromFile("image.bmp") ;     // 이런식으로 사용하시면 됩니다.
: :
: : 이미지가 동적으로 생성될 경우는 위의 폼생성 이벤트에서 처럼 미리 컴포넌트를 등록하지 않고
: : 생성할때 마다 등록을 해 주셔야 하겠지요.. 워낙 수가 많으니 동적생성할 경우는 관리를 잘하셔야 하겠지요..
: :
: : 바루 님이 쓰신 글 :
: : : 현재 코드
: : :
: : :
: : : class TLayerForm : public TForm
: : : {
: : : __published:	// IDE-managed Component
: : : 
: : :   TRzGroupBox *Group1; 
: : :   TImage *G1Image1;
: : :   TImage *G1Image2;
: : :   TImage *G1Image3;
: : :   TImage *G1Image4;
: : : //....(이하생략)
: : : 

: : :
: : : 바꾼 코드
: : :
: : :
: : : class TLayerForm : public TForm
: : : {
: : : __published:	// IDE-managed Component
: : : 
: : :   TRzGroupBox *GroupList[10];              
: : :   TImage ***GImage; //([각 그룹 번호][그룹 내의 아이템 번호] -> 그룹 1의 5번째 아이템 [0][4])
: : : 

: : :
: : :
: : : 카테고리를 만들고 각 카테고리(TRzGroupBox) 안에 이미지(TImage) 아이템들을 넣는 것을 구현했습니다.
: : : 현재는 카테고리 개수를 10개, 각 카테고리당 아이템 최대 개수를 10개로 지정하여 component들을 하드코딩 되어 있는 상태입니다.
: : : 여기서 아이템을 1000개 이상 넣어야하는 상황이 발생해서 현재 하드코딩 되어 있는 부분을
: : : 다중 포인터나 vector를 이용하여 대체하는 방법을 찾았으나 component를 다중 포인터로 사용할 수가 없더라구요.
: : :
: : : 그래서 어떤 방법으로 다른 방법으로 구현 할 수 있는지 조언 부탁들립니다.
: : :
: : : 현재 사용하고 있는 컴파일러는 c++builder6입니다.
: : :

+ -

관련 글 리스트
74974 component 배열 형식으로 구현 질문입니다. 바루 203 2018/06/20
74977     Re:component 배열 형식으로 구현 질문입니다. 김시환 170 2018/06/22
74979         Re:Re:component 배열 형식으로 구현 질문입니다. 바루 172 2018/06/22
74981             Re:Re:Re:component 배열 형식으로 구현 질문입니다. 김시환 166 2018/06/25
74980             Re:Re:Re:component 배열 형식으로 구현 질문입니다. 김시환 142 2018/06/25
74982                 Re:Re:Re:Re:component 배열 형식으로 구현 질문입니다. 바루 119 2018/06/27
75053                     Re:Re:Re:Re:Re:component 배열 형식으로 구현 질문입니다. 김시환 77 2018/08/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.