반응형
    
    
    
  델파이에서 PageControl을 사용하다가 보면 Tab의 Visible 속성을 False로 해놓을 경우에 테두리가 존재해서 신경이 많이 쓰였습니다. 그렇다고 PageControl이나 TabSheet의 속성에 Border을 None로 처리하는 Propery 같은 것이 없었고, 따로 처리할려니 영 찝찝하고.. (결국에는 따로 처리하긴 했습니다. ㅠ_ㅠ)
이렇게 말씀드려도 비개발자분이시거나 저 테두리를 지금 처음(?)보셨다는 개발자분들은.. 이게 뭐 대수냐고 하실지 모르겠지만 은근히 거슬립니다. Client 내부의 Width, Height 도 8 픽셀정도씩 차이가 나기 때문에 이미지 등이나 Width, Height 가 고정된 프로그램에서는 확실히 영향이 있습니다.
위의 화면에 PageControl의 테두리 보이시나요? 다음 화면과 비교해보시죠~
차이점이 느껴지시나요? 전 테두리가 없는 것이 훨씬 보기가 좋네요^^
그렇다면 Source 나갑니다~
// 우선 선언부에 요로코롬 선언을 합니다.
private    
    FOldTabProc : TWndMethod;
    procedure TabWndProc(var Msg: TMessage);
// Form의 Create 이벤트에 아래와 같이 작성을 합니다.
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  FOldTabProc := pageMain.WindowProc;
  pageMain.WindowProc := TabWndProc;
end;
// TabWndProc 함수를 작성하면 -끗-
procedure TfrmMain.TabWndProc(var Msg: TMessage);
begin
  FOldTabProc(Msg);
  // uses commctrl
  if Msg.Msg = TCM_ADJUSTRECT then
  begin
    PRect(Msg.LParam)^.Left := 0;
    PRect(Msg.LParam)^.Right := pageMain.ClientWidth;
    Dec(PRect(Msg.LParam)^.Top, 4);
    PRect(Msg.LParam)^.Bottom := pageMain.ClientHeight;
  end;
end;
반응형
    
    
    
  'Programming > Delphi' 카테고리의 다른 글
| [Delphi] 듀얼모니터일 때 주모니터에 폼 띄우기 (0) | 2022.05.24 | 
|---|---|
| 델파이 스킨 적용 (0) | 2016.03.03 | 
| RAD Studio 10 seattle 완전삭제 방법 (0) | 2015.12.02 | 
| <펌> Hook 에 대한 또 다는 설명 (0) | 2015.12.02 | 
| [Delphi] WMI(Windows Management Instrumentation) 사용하기에 앞서 (0) | 2015.01.28 |