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
[74979] Re:Re:component 배열 형식으로 구현 질문입니다.
바루 [] 3028 읽음    2018-06-22 13:20
답변 정말 감사드립니다. 두 가지 더 궁금한게 있어서 질문드립니다.
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 배열 형식으로 구현 질문입니다. 바루 3055 2018/06/20
74977     Re:component 배열 형식으로 구현 질문입니다. 김시환 3091 2018/06/22
74979         Re:Re:component 배열 형식으로 구현 질문입니다. 바루 3028 2018/06/22
74981             Re:Re:Re:component 배열 형식으로 구현 질문입니다. 김시환 3057 2018/06/25
74980             Re:Re:Re:component 배열 형식으로 구현 질문입니다. 김시환 2941 2018/06/25
74982                 Re:Re:Re:Re:component 배열 형식으로 구현 질문입니다. 바루 3037 2018/06/27
75053                     Re:Re:Re:Re:Re:component 배열 형식으로 구현 질문입니다. 김시환 2983 2018/08/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.