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

改變ListView的Columns列之顏色

答題得分者是:Windyboy
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-27 18:46:48 IP:219.81.xxx.xxx 未訂閱
如何於ListView vsReport狀態時變更Columns列的顏色 可自定背景及字體顏色,謝謝各位 --==多看.多學.多聽==--
------
--==多看.多學.多聽==--
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-04 11:04:02 IP:61.59.xxx.xxx 未訂閱
Hi HomeSound:      試試下列的方法...     
 
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1CustomDrawItem(TCustomListView *Sender,
      TListItem *Item, TCustomDrawState State, bool &DefaultDraw)
{
  //第一列的背景顏色
  ((TListView*)Sender)->Canvas->Brush->Color = clRed;
  //第一列的字型及其顏色
  ((TListView*)Sender)->Canvas->Font->Name = "新細明體";
  ((TListView*)Sender)->Canvas->Font->Color = clWhite;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1CustomDrawSubItem(TCustomListView *Sender,
      TListItem *Item, int SubItem, TCustomDrawState State,
      bool &DefaultDraw)
{
  if(SubItem == 1)
  {
    //第二列的背景顏色
    ((TListView*)Sender)->Canvas->Brush->Color = clBlue;
    //第二列的字型及其顏色
    ((TListView*)Sender)->Canvas->Font->Name = "新細明體";
    ((TListView*)Sender)->Canvas->Font->Color = clWhite;
  }
  else if(SubItem == 2)
  {
    //第二列的背景顏色
    ((TListView*)Sender)->Canvas->Brush->Color = clBlack;
    //第二列的字型及其顏色
    ((TListView*)Sender)->Canvas->Font->Name = "新細明體";
    ((TListView*)Sender)->Canvas->Font->Color = clWhite;
  }
}
//---------------------------------------------------------------------------
-------------------------- ~天下本無事 庸人自擾之~
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-04 11:04:27 IP:61.59.xxx.xxx 未訂閱
按太快了...最後的註解寫錯了^^
  else if(SubItem == 2)
  {
    //第三列的背景顏色
    ((TListView*)Sender)->Canvas->Brush->Color = clBlack;
    //第三列的字型及其顏色
    ((TListView*)Sender)->Canvas->Font->Name = "新細明體";
    ((TListView*)Sender)->Canvas->Font->Color = clWhite;
  }
發表人 - Windyboy 於 2003/08/04 11:12:36
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-06 23:30:53 IP:219.81.xxx.xxx 未訂閱
感謝Windyboy板主賜教,沒錯是改變顏色了 不過是於Item上變色,有可以改變Columns上的顏色嘛 (就是ITEM內容最上面,可作點頭排序的那些按鈕) 感謝您喲!
------
--==多看.多學.多聽==--
gwanlin
一般會員


發表:1
回覆:29
積分:6
註冊:2002-07-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-01 22:10:31 IP:211.76.xxx.xxx 未訂閱
Windyboy兄提供的方法我嘗試過,但是卻沒有相對應的作用,不知道是為了什麼? 我的HotTrack是false,RowSelect是true,所以滑鼠點上row的任一個位置時,那個row就會整條變成深藍色..... 我想要做的是對TListView上所顯示的資料做搜尋的動作,然後將搜尋的結果用一個反白的顏色顯示出來,搜尋的動作是沒什麼問題,但是顏色的控制上好像就找不到方法...... 我想是不是至少要能夠指定要變色的itemindex,然後去做改變顏色的動作,才有辦法這樣做,只是不知道在那邊做這個設定.......... 可以請那位給我一點提示嗎?小弟不勝感激!! 我是gwanlin
------
我是gwanlin
系統時間:2024-05-17 19:04:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!