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
[28154] [질문]ComboBox를 동적으로 생성하는 컴포넌트에서 문제가 발생합니다.
초보 [] 1488 읽음    2003-12-09 21:05
TPanel을 상속받은 Component에 ComboBox를 동적으로 배치하는 과정에서 발생하는 문제입니다.

컴포넌트 생성자에서 동적으로 생성시킬 Owner와 Parent를 모두 해당 컴포넌트로 설정해 준 다음

ComboBox의 Item 속성을 건드리거나 AddItem등 method를 사용할 경우,

다른 폼을 사용하여 해당 컴포넌트를 생성시

EInvalidOperation Exception(Control '' has no parent window)이 발생합니다...

디버그 모드에서 Trace를 해 보아도 꼭 Item관련 속성이나 method를 건드리거나 BoundsRect()를 쓰면

해당 오류가 발생하며, SetBounds 등 ComboBox의 Layout을 잡는 명령행은 무사히 실행됩니다....ㅠㅠ

컴포넌트 내 생성 부분은 아래와 같습니다.
//.h
class TTest : public TPanel {
    ...

protected :
   TComboBox *AComboBox;   
    ...
}

//.cpp
void __fastcall TTest::TTest(TComponent* Owner) : TPanel(Owner)
{
   AComboBox = new TComboBox(this);
   AComboBox->Parent = this;

   AComboBox->SetBounds(10, 10, 100, 20);            
  
   AComboBox->Items->Text = "aaa\r\nbbb\r\nccc";      //=====>이부분에서 위 에러가 납니다...
                                                            //Items->Add()를 쓰거나 BoundsRect를
                                                     //설정할 때도 마찬가지입니다...ㅠㅠ
}


그런데 ComboBox를 컴포넌트 내부가 아닌 폼에서 직접 동적으로 생성하고 테스트해 보았더니

위와 같은 문제가 생기질 않고 잘 돌아갔습니다...-_-

이 문제를 어떻게 해결해야 할지 고수님들의 가르침 부탁드립니다...




+ -

관련 글 리스트
28154 [질문]ComboBox를 동적으로 생성하는 컴포넌트에서 문제가 발생합니다. 초보 1488 2003/12/09
28156     자답...-_- 초보 1210 2003/12/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.