全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1964
推到 Plurk!
推到 Facebook!

PageControl上面的tabsheet1顏色怎麼變啊,我把下面的變色了,可上面的顏色怎麼變啊

尚未結案
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-05 17:58:49 IP:211.75.xxx.xxx 未訂閱
PageControl上面的tabsheet1顏色怎麼變啊,我把下面的變色了,可是上面不會變? 發表人 - GAVINJ123 於 2003/11/05 18:53:50
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-05 18:16:26 IP:202.39.xxx.xxx 未訂閱
1.PageControl1.OwnerDraw := True; 2.
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  c: TCanvas;
begin
  c := PageControl1.Canvas;
  case TabIndex of
    0: c.brush.Color := clRed;
    1: c.brush.Color := clBlue;
  end;
  c.FillRect(Rect);
end;
--- Everything I say is a lie.
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-06 12:01:05 IP:211.75.xxx.xxx 未訂閱
hagar兄,這樣是可人變色了,可是上面的字會不見,不沒有什麼方法解決啊,還是有什麼元件??
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-06 13:09:26 IP:202.39.xxx.xxx 未訂閱
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  c: TCanvas;
  s: string;
begin
  c := PageControl1.Canvas;
  case TabIndex of
    0: begin
         c.brush.Color := clRed;
         s := 'tabsheet1';
       end;
    1: begin
         c.brush.Color := clBlue;
         s := 'tabsheet2';
       end;
  end;
  c.FillRect(Rect);
  c.TextOut(Rect.Left   2, Rect.Top   2, s);
end;
--- Everything I say is a lie.
gavinj123
初階會員


發表:88
回覆:48
積分:27
註冊:2002-10-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-06 14:03:26 IP:211.75.xxx.xxx 未訂閱
恩,我知道了,謝謝 發表人 - GAVINJ123 於 2003/11/06 14:14:31
hidylan
一般會員


發表:14
回覆:17
積分:6
註冊:2004-12-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-17 21:12:58 IP:218.175.xxx.xxx 未訂閱
可以再請問一下,如果我有3頁的tabsheet,我希望能選其中一個tabsheet時,這個tabsheet為一個顏色,另外二個tabsheet為另外一個顏色,那這程式該如何去寫?謝謝教導。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-17 21:26:25 IP:202.39.xxx.xxx 未訂閱
判斷 ActivePageIndex 的值即可:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  c: TCanvas;
  s: string;
begin
  c := PageControl1.Canvas;
  s := PageControl1.Pages[TabIndex].Caption;
  if TabIndex = PageControl1.ActivePageIndex then
    c.brush.Color := clRed
  else
    c.brush.Color := clBlue;
  c.FillRect(Rect);
  c.TextOut(Rect.Left   2, Rect.Top   2, s);
end;
-- QBQ: 我能做什麼?
dt520
一般會員


發表:11
回覆:61
積分:14
註冊:2003-05-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-24 18:11:18 IP:222.50.xxx.xxx 未訂閱
很好, PageControl1.tabsheet1 还可以这样精细的控制, DT520 @>>>-->>---------一路风尘一路歌!!
系統時間:2024-06-01 17:24:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!