1. Tab control을 올려놓고 폼 색상을 바꾸면...
텝들의 색상은 따라서 안바뀌고 윈도우의 칙칙한 회색 그대롭니다.
이걸 바꾸려면... OwnerDraw := True로 하면 바뀌기는 하지요.
대신 Tab.Caption이 안보이게 됩니다...
그렇다고 여기다 Label을 올리면 되긴 하지만 Label에다 클릭이벤트를
구질구질하게 써줘야 하거든요.
2. Page control의 경우는... 이건 한술 더 떠서 Label도 못올리거든요.
SendMessage 같은 방법 없을까요?
> 1. Tab control을 올려놓고 폼 색상을 바꾸면...
> 텝들의 색상은 따라서 안바뀌고 윈도우의 칙칙한 회색 그대롭니다.
> 이걸 바꾸려면... OwnerDraw := True로 하면 바뀌기는 하지요.
> 대신 Tab.Caption이 안보이게 됩니다...
> 그렇다고 여기다 Label을 올리면 되긴 하지만 Label에다 클릭이벤트를
> 구질구질하게 써줘야 하거든요.
> 2. Page control의 경우는... 이건 한술 더 떠서 Label도 못올리거든요.
>
> SendMessage 같은 방법 없을까요?
안녕하세요.
아래와 같이 OnDrawTab 이벤트를 사용하세요.(PageControl 도 동일)
procedure TForm1.TabControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
with Control.Canvas do
begin
FillRect(Rect);
if Active then Font.Color := clBlue
else Font.Color := clBlack;
TextRect(Rect, Rect.Left + 3, Rect.Top + 3, TTabControl(Control).tabs[TabIndex]);
end;
end;