1. Main form위에 frame을 하나 올려두었다.
2. 그 올려진 frame 이외에도 더 많은 frame을 올리고 싶다.
가 질문일것 같습니다. 맞습니까?
frame을 form위에 올리실때 Design time에 올리시니요? 저의 경우는 frame을 run time에
올리는데요. 아래와 같이 코딩하면 frame을 동적으로 form위에 올릴 수 있습니다.
procedure TForm1.AnyButtonClick( Sender : TObject );
var
loMyFrame : TMyFrame; // 지역 변수로 선언하는 것 보다는 class의 멤버 변수로 선언하는 편이
// 좋을 듯 합니다.
begin
loMyFrame := TMyFrame.Create( Self );
with loMyFrame do
begin
Parent := Self; // 이렇게 해야 Frame이 화면에 보이게된다.
Align := alLeft; // TForm1 의 왼쪽에 Frame을 만든다
Width := 200;
end;
end;
frame은 container class 취급을 받기 때문에 form위에 얼마든지 올릴 수 있습니다.
container class란 TPageControl, TPanel과 같이 컴포넌트 자신이 다른 컴포넌트를
포함할 수 있는 성질을 가진 것을 말합니다.
위의 코드를 이용해서 필요할 때 한번에 하나씩의 frame만 form위에 만들 수 있습니다.
또 frame이 더 필요없는 경우에는 아래와 같이 코딩해서 frame을 제거할 수 있습니다.
procedure TForm1.AButtonClick( Sender : TObject );
begin
FMyFrame.Destroy; // class의 멤버변수로 Frame이 선언되어 있고 이 변수에
// 생성된 frame의 instance가 연결되어 있어야 합니다.
end;
ps : 설명드린 코드에 이상이 있거나 잘 모르는 부분이 있다면 다시 질문 하십시요.
Befree 님이 쓰신 글 :
: 우선 박정모님의 답변 감사드립니다. ^^
:
: 여기서부터 질문인데요..
:
: MainForm에 하나의 Frame있는데..
: 다수의 Frame을 상속 받을수 있는지 해서요..
:
: 어떤 방법이 있는지좀 알려주세요..
:
: 수고하시고 즐프 하세요..
:
|