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
[70675] Re:폼화면에서 Panel 내용들을 복제 뜰수 있나요?
장성호 [nasilso] 3126 읽음    2014-01-10 10:06
코드로 바로 복사하는 방법은 없습니다.

하지만
Control을 선택후 Copy 하신후에 메모장(Notepad)같은데서 붙어넣기 해보세요
그러면 다음과 같은 내용이 나옵니다.

object Panel1: TPanel
  Left = 0
  Top = 0
  Width = 587
  Height = 212
  Align = alClient
  BevelOuter = bvNone
  Color = clInactiveCaptionText
  Ctl3D = True
  ParentCtl3D = False
  TabOrder = 0
  OnMouseDown = FormMouseDown
  object Label4: TLabel
    Left = 3
    Top = 8
    Width = 54
    Height = 12
    Alignment = taRightJustify
    AutoSize = False
    Caption = 'Handle'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -12
    Font.Name = #44404#47548
    Font.Style = []
    ParentFont = False
  end
end


[폼위의 컴포넌트 자동생성 메커니즘]
1) 위 내용은 보시면 컴포넌트의 기본 프로퍼티 외에 변경된 프로퍼티만 *.dfm에 기록되는것인데..
2) *.dfm에 내용은 리소스로 컴파일되어 exe에 포함되고
3) exe가 실행될때 리소스의 내용을 읽어와서 컴포넌트를 동적 생성해 줍니다.


[디자인타임 컴포넌트를 코딩으로 옮기는 방법]

위 스크립트 같은것을 보고 .. 그대로 코딩으로 옮기시면 됩니다.

다음과 같은 식으로 스크립스를 토딩으로 변경하시면 됩니다.

object Panel1: TPanel   
    ==> Panel1  = new TPanel(this);
    ==> Panel1->Parent  = this;

  Left = 0
  Top = 0
  Width = 587
  Height = 212  
  ==> Panel1->SetBounds(0,0,587,212);

  Align = alClient
  ==> Panel1->Align = alClient;

  BevelOuter = bvNone
  ==> Panel1->BevelOuter = bvNone;

  Color = clInactiveCaptionText
 ==> Panel1->Color = clInactiveCaptionText;

  Ctl3D = True
 ==> Panel1->Ctl3D = True;

  OnMouseDown = FormMouseDown
 ==> Panel1->OnMouseDown = FormMouseDown;

  object Label4: TLabel
    ==> Label4= new Label4(this);
    ==> Label4->Parent = Panel1 ;   //여기서 주의..
   
   //아래는 Panel과 비슷 ..
    Left = 3
    Top = 8
    Width = 54
    Height = 12
    Alignment = taRightJustify
    AutoSize = False
    Caption = 'Handle'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -12
    Font.Name = #44404#47548
    Font.Style = []
    ParentFont = False
  end
end


위 코딩은 OnFormCreate 에 넣으면
자동생성되는것과 거의 비슷하게 될것입니다.


그럼..

만나바 님이 쓰신 글 :
: 캡쳐 화면처럼 TreeView에 Item1,Item2,Item3 .....Item N  각각에 오른쪽 화면에 나와있는 화면구성을 추가 하고 싶습니다.
:
: 오른쪽 화면을 애초에 코드만으로 작성하기에는 컴포넌트들이 더 많이 추가 될수도 있기에 현재 화면을 통째로 코드상으로 복사하는 방법이 없는지 궁긍합니다.
: (Panel2를 Structure 화면에서 CTRL+C, CTRL+V하면 똑같은 화면이 복제되던데 코드로 이렇게 복사할수 없나요?)

+ -

관련 글 리스트
70673 폼화면에서 Panel 내용들을 복제 뜰수 있나요? 만나바 3094 2014/01/10
70675     Re:폼화면에서 Panel 내용들을 복제 뜰수 있나요? 장성호 3126 2014/01/10
70677         Re:Re:폼화면에서 Panel 내용들을 복제 뜰수 있나요? 만나바 3412 2014/01/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.