코드로 바로 복사하는 방법은 없습니다.
하지만
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하면 똑같은 화면이 복제되던데 코드로 이렇게 복사할수 없나요?)
|