線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1403
推到 Plurk!
推到 Facebook!

請問ListBox內的文字可以變色嗎....

答題得分者是:RaynorPao
wun
一般會員


發表:19
回覆:20
積分:7
註冊:2002-08-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-14 23:11:12 IP:203.203.xxx.xxx 未訂閱
想請問ListBox內的文字可以變色嗎....謝謝...
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-14 23:17:30 IP:61.221.xxx.xxx 未訂閱
引言: 想請問ListBox內的文字可以變色嗎....謝謝...
wun 你好: 設定 Font 的屬性 -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
wun
一般會員


發表:19
回覆:20
積分:7
註冊:2002-08-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-14 23:23:05 IP:203.203.xxx.xxx 未訂閱
引言:
引言: 想請問ListBox內的文字可以變色嗎....謝謝...
wun 你好: 設定 Font 的屬性 -- Enjoy Researching & Developing --
可以作到針對ListBox內的其中一個string作顏色的變化嗎...謝謝
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-14 23:30:21 IP:61.221.xxx.xxx 未訂閱
引言: 可以作到針對ListBox內的其中一個string作顏色的變化嗎...謝謝
wun 你好: 用 RichEdit 比較快,用搜尋的功能,就能找到答案了
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
wun
一般會員


發表:19
回覆:20
積分:7
註冊:2002-08-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-15 16:08:25 IP:203.203.xxx.xxx 未訂閱
引言:
引言: 可以作到針對ListBox內的其中一個string作顏色的變化嗎...謝謝
wun 你好: 用 RichEdit 比較快,用搜尋的功能,就能找到答案了 >< face="Verdana, Arial, Helvetica"> 我看到ListBox有一個OnDrawItem的事件...我用HELP查.... 可是我看不懂.....不知要如何使用...這可以實現我的需求嗎..謝謝 發表人 - wun 於 2003/03/15 16:10:46
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-16 00:34:37 IP:61.221.xxx.xxx 未訂閱
引言: 我看到ListBox有一個OnDrawItem的事件...我用HELP查.... 可是我看不懂.....不知要如何使用...這可以實現我的需求嗎..謝謝
wun 你好: 請參考以下的做法(可以讓第2行變成藍色)< > 你再依照你自己的需求修改吧< >
void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index,
      TRect &Rect, TOwnerDrawState State)
{
   int Offset=2;
   TCanvas *Canvas=((TListBox*)Control)->Canvas;
   Canvas->Font->Color=Index==1? clRed: clBlue;
   Canvas->TextOut(Rect.Left Offset, Rect.Top, ((TListBox*)Control)->Items->Strings[Index]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   ListBox1->Items->Add("000");
   ListBox1->Items->Add("111");
   ListBox1->Items->Add("222");
   ListBox1->Items->Add("333");
   ListBox1->Items->Add("444");
   ListBox1->Items->Add("555");
}
備註: 記得要先設定 ListBox1 的 Style 屬性為 lbOwnerDrawVariable -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/03/16 15:22:18
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
wun
一般會員


發表:19
回覆:20
積分:7
註冊:2002-08-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-16 00:52:38 IP:203.203.xxx.xxx 未訂閱
引言:
引言: 我看到ListBox有一個OnDrawItem的事件...我用HELP查.... 可是我看不懂.....不知要如何使用...這可以實現我的需求嗎..謝謝
wun 你好: 請參考以下的做法(可以讓第2行變成藍色)< > 你再依照你自己的需求修改吧< >
void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index,
      TRect &Rect, TOwnerDrawState State)
{
   int Offset=2;
   TCanvas *Canvas=((TListBox*)Control)->Canvas;
   Canvas->Font->Color=Index==1? clBlue: clBlack;
   Canvas->TextOut(Rect.Left Offset, Rect.Top, ((TListBox *)Control)->Items->Strings[Index]);
}
-- Enjoy Researching & Developing --
真得很謝謝包子哥.... 那要如何才能引發這個事件呢???因為我直接把以上的程式打進入.. 但是我不知如何看到效果....謝謝..
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-16 00:57:15 IP:61.221.xxx.xxx 未訂閱
引言: 真得很謝謝包子哥.... 那要如何才能引發這個事件呢???因為我直接把以上的程式打進入.. 但是我不知如何看到效果....謝謝..
wun 你好: (1)先在 ListBox1 中加入幾行文字 (2)執行你的 Application 什麼都不用做,就會看到效果了 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
wun
一般會員


發表:19
回覆:20
積分:7
註冊:2002-08-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-16 01:31:51 IP:203.203.xxx.xxx 未訂閱
引言:
引言: 真得很謝謝包子哥.... 那要如何才能引發這個事件呢???因為我直接把以上的程式打進入.. 但是我不知如何看到效果....謝謝..
wun 你好: (1)先在 ListBox1 中加入幾行文字 (2)執行你的 Application 什麼都不用做,就會看到效果了 -- >< face="Verdana, Arial, Helvetica"> 試了....可是看不出來咧???
Londer
一般會員


發表:5
回覆:32
積分:7
註冊:2003-01-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-16 09:45:12 IP:218.187.xxx.xxx 未訂閱
不然試試看以下這個方法吧! TColor BgColor=clRed; TColor TextColor=clBlue; int itemIndex=1; int Offset = 2; // default text offset width TRect rect=Rect(0,ListBox1->ItemHeight*index,ListBox1->Width,ListBox1->ItemHeight*index ListBox1->Canvas->TextHeight(ListBox1->Items->Strings[itemIndex])); ListBox1->Canvas->Brush->Color=BgColor; ListBox1->Canvas->Font->Color=TextColor; ListBox1->Canvas->FillRect(rect); ListBox1->Canvas->TextOut(rect.Left Offset, rect.Top, ListBox1->Items->Strings[itemIndex]); 不過它並不能持續到天長地久,只能讓你曾經擁有而已, 因為被滑鼠點到的話,顏色就還原了!
系統時間:2024-04-26 9:10:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!