본문 바로가기
프로그래밍

TPageControl 사용법 설명

by ictlab 2012. 2. 7.


C++빌더 완전정복 카페에서 복사해 온 글입니다.

( 장성호  차장 )

 

http://cafe.naver.com/bcbmaster.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1511& 





사실 TPageControl에 대해 잘모르는데 억지로 팁을 생각해서 올리는 것입니다.

 

지금 몇가지 생각나는것 올려두고 나중에 수정 및 업그레이드를 하도록 하면 될것 같구..

 

이렇게라도 올려놓아야 나중에 기억하기 좋을듯 해서요
 


 

 

탭 위치 조정

   기본적으로 PageControl에 탭을 추가하면 위와같은 화면입니다.

   그런데 위 탭위 위치를 상하 좌우 원하는 위치로 옮길수 있다는 사실 다들 아시겠죠?

   

 

   TabPosition을 조정하면 됩니다.

   TabPosition은 tpLeft, tpRight , tpTop  , tpBottom 네가지가가 있는데

   위 그림은 TabPosition을   tpBottom으로 설정한것입니다.

 

 

멀티라인 탭

   또 다음과 같이 MultiLine으로 탭이 표시할수도 있습니다.

   프로퍼티에서 MultiLine:=true 해주면 끝..

 

   

  

 

탭버튼이 이미지 넣기

   탭버튼이 TImageList를 설정해서 Image아이콘을 표시할수도 있습니다.

   그냥 TImageList 하나 폼위에 올리고 TPageControl의 Images에 설정하면 끝입니다.

 

   

 

 

 

탭버튼이 큰 이미지 넣기

  그런데 위 이미지 아이콘 설정방법에 16x16 이미지 말고 원하는 크기의 이미지를 마음대로 넣을수 있습니다.

  

  

 

  이것도 간단합니다.

  그냥 TPageControl의 Images등록된 TImageList의 Width와 Height의 크기를 원하는 크기로 정하고

  적당한 Image를 올리기만 하면 됩니다.

 

  TImageList 의 Height크기에 맞춰 자동으로 Tab의 크기가 조절됩니다.

 

  만약 TImageList 의 Height 크기보다 Tab의 높이가 더 크게하거나 원하는데로 조정하고 싶으면

 

   TabWidth / TabHeight를 조정하시면 됩니다.

    기본값이 0인데 ,    0 으로 해놓으면 자동으로 조절되구요

 

탭 스타일 변경

  TPageControl의 Caption의 Style을 기본적으로 tsTabs 로 되어있습니다.

   위에 이미지는 모두 tsTabs 스타일입니다. 이 캡션의 모양을 버튼이나 플랫버튼 모양으로 바꿀수 있습니다.

   간단히 Style을 tsButtons 나 tsFlatButtons로 변경하면 됩니다.

 

    Style = tsButtons

    

 

 

    Style = tsFlatButtons

    

 

 

탭을 안보이게

  

  위에 탭의 위치조정으로 탭의 위치를 상/하/좌/우 원하는 곳에서 보이게 할수있지만

  탭을 안보이게 할수는 없다.

 

  탭을 안보이게하고 TPageControl에 여러 TabSheet를 추가해서 사용하는 방법은?

 

  1) 각 TabSheet에서 TabVisible을 false로 한다.

  2) 그런다음 PageControl에서 ActivePageIndex를 조절한다.

     그러면 PageControl에서 Tab은 보이지 않고 PageControl위에 원하는 TabSheet를 보여줄수 있다.

 

 

  
    
procedure TForm1.FormCreate(Sender: TObject);  
var  
  idx: Integer;  
begin  

  TabSheet1.TabVisible:=false;  
  TabSheet2.TabVisible:=false;  
  TabSheet3.TabVisible:=false;  
  TabSheet4.TabVisible:=false;  

  PageControl1.ActivePageIndex:=0;  

end;  

procedure TForm1.Button1Click(Sender: TObject);  
begin  
  if PageControl1.ActivePageIndex< (PageControl1.PageCount -1 ) then  
    PageControl1.ActivePageIndex:=PageControl1.ActivePageIndex+1  
  else  
    PageControl1.ActivePageIndex:=0;  

end;        
     

 

 

 

오늘을 요기까지 ...

 

그럼..