|
제가 종 사용하는 방법인데요...
FrameA1 ,FrameB1,FrameC1, FrameA2
등이 있다고 가정하고 버튼클릭시 프레임만 보고자 한다면
방법1)
원하는 Frame만 Visible=true 시키고 나머지는 Visible=false 시킵니다.
void TForm1::Button1Click(TObject *Sender)
{
FrameA1->Visible=true;
FrameB1->Visible=false;
FrameC1->Visible=false;
FrameA2->Visible=false;
}
방법2)
Frame을 TPanel에 올려놓고 Align을 alClient로 해두구요
원하는 프레임만 BringToFront()하시면 됩니다.
void TForm1::Button1Click(TObject *Sender)
{
FrameA1->BringToFront();
}
[추신]
1) 디자인 할때 ( 팁)
Design 할때 Form위에다가 Frame을 여러개 올려놓고 Control배치하고 코딩하고자 하는 경우이고
Frame이 커서 화면에 꽉차는 Frame인경에 디자인을 편리하게 하는 Tip 한가지
폼위에 TPageControl을 올려놓고 TabSheet를 여러개 추가하여
각 TabSheet에다가 각각의 Frame을 올려놓습니다.
그리고 Form이 Create될때
{
Frame들의 Parent를 원하는 Control( 폼이나 TPanel) 로 바꿉니다.
그리고 PageControl은 Visible=false 시켜 버리구요
맨처음 화면에 보여야 할 Frame이 있다면 그 Frame을 BringToFront() 하구요
}
2) 이벤트 발생 (주의사항)
Frame위에 올려진 Control은 Event 발생이 그냥 Form위에 올려진 것과 좀 다르게 발생합니다.
그리고 Frame이 한번은 Active되어야 이벤트가 제대로 발생합니다.
leaderkk 님이 쓰신 글 :
: 폼이 하나있고 여기에 하나의 프레임이 있습니다.
:
: 그리고, 이미 작성된 여러개의 프레임이 따로 있습니다.
:
: 이렇게 작성된 프레임을 각 각의 버튼을 누를때 마다 폼에 있는 프레임의 화면을 바꾸고 싶습니다.
:
: 이렇게 하려면 어떻게 해야 하는지 알려 주시면 감사하겠습니다.
:
: 공부한지 얼마 안되서 어렵네요.
:
: 그리고 괜찮은 책도 추천해 주세요.
:
: 즐거운 하루되세요.
|