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
[70207] Re:Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다.
루도라 [noxi76] 5077 읽음    2013-10-04 08:20
TKPropertiesFrame 가 TWinControl 이라면 TEmptyPanel 의 Parent 를 TKPropertiesFrame 로 주면 될겁니다.

Control := T...Control.Create(Component.Owner);
Control.Name := Component.Name + 'Control';
Control.Parent := Component as TWinControl;

이름만 봐서는 Frame 을 상속받은 컨트롤일거 같은데 그러면 TWinControl 이 맞겠지만 TWinControl 이 아닐 경우에는 아무래도 꼼수(?)가 필요할거 같네요. 컬렉션을 사용한다던지..

ps. 아.. TabOrder 프로퍼티가 있는걸로봐서 TWinControl 이군요. ㅎㅎ

이원용 님이 쓰신 글 :
: 컨트롤을 생성할때 컨트롤의 Owner을 Control을 생성하는 컴포넌트의 Owner로 지정하였더니
:
:
: object Form1: TForm1
:   Left = 0
:   Top = 0
:   Caption = 'Form1'
:   ClientHeight = 300
:   ClientWidth = 635
:   Color = clBtnFace
:   Font.Charset = DEFAULT_CHARSET
:   Font.Color = clWindowText
:   Font.Height = -11
:   Font.Name = 'Tahoma'
:   Font.Style = []
:   OldCreateOrder = False
:   PixelsPerInch = 96
:   TextHeight = 13
:   object KPropertiesFrame1: TKPropertiesFrame
:     Left = 344
:     Top = 128
:     Width = 330
:     Height = 249
:     TabOrder = 0
:     TabStop = True
:     ExplicitLeft = 344
:     ExplicitTop = 128
:   end
:   object TEmptyPanel
:     Left = 0
:     Top = 0
:     Width = 0
:     Height = 0
:     TTop = 172950576
:   end
: end
: 

:
: 이렇게 나오네요...제가 원하는 것은 KPropertiesFrame1 안에 TEmptyPanel 이 들어가게 하고 싶은데
: Owner가 Form1 을 가르키다 보니 저렇게 나오는것 같습니다...
:
: 프레임 안에서 동적으로 컨트롤을 생성하더라도 우리가 디자인 타임에서 끌어다 놓듯이 화면에도 보여지고
:
: dfm 파일에도 정상적으로 들어가게 하고 싶습니다!!
:
: 아무래도 디자인 타임에서 컨트롤을 끌어다 놓을때 발생하는 함수들을 오버로딩하여 동적으로 컨트롤을 생성할때
:
: 실행 하게끔 해주어야 할거 같은데..이부분에서 막막합니다... 어떠한 함수들이 불려지는지 알 수 있는 지요..
:
: 아니면 알 수 있는 방법이라도 알려주시면 감사하겠습니다.!
:
:
:
: 루도라 님이 쓰신 글 :
: : 새로 생성되어지는 Control 의 Owner 를 Control 을 생성하는 컴포넌트의 Owner 로 지정해보세요.
: :
: : procedure TComponentEdit.DoCreateControl;
: : begin
: :   Control := T...Control.Create(Component.Owner);
: :   Control.Name := Component.Name + 'Control';
: : end;
: :
: : 화면에 나타난다고 하신거 보면 Parent 지정 같은건 제대로 하신거 같은데..
: :
: : 이원용 님이 쓰신 글 :
: : : 컴포넌트를 한개 만들었습니다.
: : :
: : : 이 컴포넌트는 컴포넌트 에디터를 가지고 있으며
: : :
: : : 에디터에서 버튼을 누르면 컴포넌트 자체에서 동적으로 control을 생성하며
: : :
: : : 디자인 화면에서 보여지게 되어있습니다.
: : :
: : : 그러나 여기서 동적으로 생성된 control은 사용자에게 보여지기는 하나
: : :
: : : 빌드 후 실행시 실제 프로그램 상에서는 나타나지 않습니다.
: : :
: : : 왜냐하면 dfm text에는 적용 되지 않기 때문입니다.
: : :
: : : 저는 동적으로 생성된 control이 dfm text 파일에 적용되는 방법을 알고 싶습니다....
: : :
: : : 툴 팔레트에서 컨트롤을 끌어다 놓을때 발생하는 함수가 무엇인지 궁금합니다.
: : :
: : : readState 와 createComponent 함수가지는 알아 냈으나 그다음에 실행되는 함수들이 무엇인지 궁금합니다..
: : :
: : : 생성된 컨트롤을 dfm text에 나오게 하는 함수를 알려주시면 감사하겠습니다...
: : :
: : : 부탁드립니다 ㅠㅠ

+ -

관련 글 리스트
70126 [질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 이원용 4684 2013/09/16
70190     Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 루도라 4730 2013/10/01
70206         Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 이원용 5487 2013/10/02
70207             Re:Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 루도라 5077 2013/10/04
70213                 Re:Re:Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 이원용 4534 2013/10/04
70218                     Re:Re:Re:Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 루도라 4345 2013/10/07
70224                         Re:Re:Re:Re:Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 이원용 4266 2013/10/07
70228                             Re:Re:Re:Re:Re:Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다. 루도라 4625 2013/10/07
(링크)     Delphi Q/A > Re:Re:Re:[질문]동적으로 생성한 control 을 dfm 에 추가시키는 방법이 궁금합니다.
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.