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
[28156] 자답...-_-
초보 [] 1210 읽음    2003-12-09 21:43
볼랜드 뉴스그룹을 통해 검색한 정보에 의하면 컴포넌트의 CreateWnd()나 SetParent()를

override하라는 답변이 있었고, 그대로 했더니 깔끔하게 해결이 되더군요...

뉴스그룹 많이 이용합시다...^^(영어도 공부해 가면서...~_~)

void __fastcall TTest::SetParent(TWinControl *AParent)
{
  TPanel::SetParent(AParent);
  if(AParent && AComboBox)
       AComboBox->Items->Text ="aaa\r\nbbb\r\nccc";     
}


초보 님이 쓰신 글 :
: 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를 동적으로 생성하는 컴포넌트에서 문제가 발생합니다. 초보 1489 2003/12/09
28156     자답...-_- 초보 1210 2003/12/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.