如何讓tabsheel的caption字型變色?? |
答題得分者是:cmf
|
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
引言: 如何讓tabsheel的caption字型變色??unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; procedure PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin Control.Canvas.Font.Color:=clRED; Control.Canvas.TextOut(rect.Left.rect.Top,PageControl1.Pages[TabIndex].Caption;); end; procedure TForm1.FormCreate(Sender: TObject); begin PageControl1.OwnerDraw:=TRUE; end; end.
------
︿︿ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Set the PageControl1.OwnerDraw to True and write an event:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin with Control.Canvas do begin Font.Color := clRed; TextRect(Rect,Rect.Left 1,Rect.Top 1,PageControl1.Pages[TabIndex].Caption); end; end; |
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls; type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
procedure PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
if PageControl1.ActivePageIndex = TabIndex then
Control.Canvas.Font.Color:=clRED
else
Control.Canvas.Font.Color:=clBLUE;
Control.Canvas.TextOut(rect.Left.rect.Top,PageControl1.Pages [TabIndex].Caption); end; procedure TForm1.FormCreate(Sender: TObject);
begin
PageControl1.OwnerDraw:=TRUE; end; end. 發表人 - cmf 於 2003/01/24 14:11:20
------
︿︿ |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi ivankuo 兄您好: 轉貼
如何將TPageControl物件中的各頁(TTabSheet物件)的背景色 就在每個 Page 中貼一個 Panel , 設定 align = alClient , 把 color 設定為你想要的顏色 ,應該就可以了 ,但如果你是要改頁標籤的顏色 ,那就把OwnerDraw 的屬性設為True , 在 onDrawTab 的屬性自己畫你想要的顏色囉
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin case TabIndex of 0: Control.Canvas.Brush.Color:=clMaroon; 1: Control.Canvas.Brush.Color:=clBlue; 2: Control.Canvas.Brush.Color:=clGreen; end; control.Canvas.FillRect(Rect); Control.Canvas.TextOut(Rect.Left 2, Rect.Top 2, TPageControl(Control).Pages[TabIndex].Caption); Active:=True; end;我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
ivankuo:
你是要 每個 TAB 都不同顏色嗎? 如果不是的話 參考下列 if Active then
Control.Canvas.Font.Color:=clRED
else
Control.Canvas.Font.Color:=clBLUE; Control.Canvas.TextOut(rect.Left,rect.Top,
PageControl1.Pages[TabIndex].Caption); 發表人 - cmf 於 2003/01/28 09:46:21
------
︿︿ |
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |