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

該如何為StringGrid中「某特定的」Cell上色??

缺席
Macsoft
一般會員


發表:10
回覆:11
積分:4
註冊:2007-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-25 14:52:01 IP:220.128.xxx.xxx 訂閱
請問一下…

我想為StringGrid中某個特定的Cell (符合我所要的條件的) 填上底色,那麼我該如何做呢?
我試過版上網友提供的方法,可是都不行,不然就是將整個 StringGrid 都上色了…
為什麼呢?謝謝 :)

nickcai2002
一般會員


發表:3
回覆:20
積分:24
註冊:2004-11-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-25 15:53:36 IP:59.125.xxx.xxx 訂閱
嗯..完全一樣的問題..再花點時間找一下 會學到更多的知識
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=83227

===================引 用 Macsoft 文 章===================
請問一下…

我想為StringGrid中某個特定的Cell (符合我所要的條件的) 填上底色,那麼我該如何做呢?
我試過版上網友提供的方法,可是都不行,不然就是將整個 StringGrid 都上色了…
為什麼呢?謝謝 :)

Macsoft
一般會員


發表:10
回覆:11
積分:4
註冊:2007-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-25 16:38:54 IP:220.128.xxx.xxx 訂閱
nickcai2002您好!
我試過這個方法,不過因為我看不太懂Delphi語法 所以不知理解是否有誤…我po上我的程式碼…
請大家幫我看一下哪裡有問題…謝謝

說一下我想實做的方式:
我有一個StringGrid會呈現一些資料,
然後我去掃這個StringGrid所有的Cells,只要有出現"Pass"這個keyword的,
就將那格的底色塗成綠色的…

不過這段codes卻會將所有的Cells也就是整個StringGrid1全塗成綠色的。><||

有誰能幫我一下的嗎?非常感謝!:)

void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
for(int irow=1;irow<12;irow ){
for(int icol=1;icol<4;icol ){
if(StringGrid1->Cells[irow][icol].Pos("Pass")){
StringGrid1->Canvas->Brush->Color = clGreen;
StringGrid1->Brush->Style = bsSolid;
StringGrid1->Font->Color = clDefault;
StringGrid1->Canvas->FillRect(Rect);
StringGrid1->Canvas->TextOutA(Rect.Left 2,Rect.Top 2,StringGrid1->Cells[irow][icol]);
}
}
}
}


===================引 用 nickcai2002 文 章===================
嗯..完全一樣的問題..再花點時間找一下 會學到更多的知識
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=83227

===================引 用 Macsoft 文 章===================
請問一下…

我想為StringGrid中某個特定的Cell (符合我所要的條件的) 填上底色,那麼我該如何做呢?
我試過版上網友提供的方法,可是都不行,不然就是將整個 StringGrid 都上色了…
為什麼呢?謝謝 :)

harpist
資深會員


發表:3
回覆:251
積分:430
註冊:2002-10-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-25 16:50:00 IP:211.74.xxx.xxx 未訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if(ARow>=1 && ARow<12 && ACol>=1 && ACol<4) { if(StringGrid1->Cells[ARow][ACol].Pos("Pass")) { StringGrid1->Canvas->Brush->Color = clGreen; StringGrid1->Brush->Style = bsSolid; StringGrid1->Font->Color = clDefault; StringGrid1->Canvas->FillRect(Rect); StringGrid1->Canvas->TextOutA(Rect.Left 2,Rect.Top 2,StringGrid1->Cells[ARow][ACol]); } } } </textarea>
------
~§~迷時師渡,悟了自渡~§~
Macsoft
一般會員


發表:10
回覆:11
積分:4
註冊:2007-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-25 17:19:10 IP:220.128.xxx.xxx 訂閱
感謝 harpist!!XD
===================引 用 harpist 文 章===================
<textarea class="cpp" rows="10" cols="60" name="code">void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, ???? int ARow, TRect &Rect, TGridDrawState State) { if(ARow>=1 && ARow<12 && ACol>=1 && ACol<4) { ????if(StringGrid1->Cells[ARow][ACol].Pos("Pass")) ????{ ???? StringGrid1->Canvas->Brush->Color = clGreen; ???? StringGrid1->Brush->Style = bsSolid; ???? StringGrid1->Font->Color = clDefault; ???? StringGrid1->Canvas->FillRect(Rect); ???? StringGrid1->Canvas->TextOutA(Rect.Left 2,Rect.Top 2,StringGrid1->Cells[ARow][ACol]); ????} } } </textarea>
Macsoft
一般會員


發表:10
回覆:11
積分:4
註冊:2007-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-05-25 18:12:15 IP:220.128.xxx.xxx 訂閱
丫~~ 為什麼只會測到第二行而已??  


===================引 用 harpist 文 章===================
<textarea class="cpp" rows="10" cols="60" name="code">void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, ???? int ARow, TRect &Rect, TGridDrawState State) { if(ARow>=1 && ARow<12 && ACol>=1 && ACol<4) { ????if(StringGrid1->Cells[ARow][ACol].Pos("Pass")) ????{ ???? StringGrid1->Canvas->Brush->Color = clGreen; ???? StringGrid1->Brush->Style = bsSolid; ???? StringGrid1->Font->Color = clDefault; ???? StringGrid1->Canvas->FillRect(Rect); ???? StringGrid1->Canvas->TextOutA(Rect.Left 2,Rect.Top 2,StringGrid1->Cells[ARow][ACol]); ????} } } </textarea>
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-05-25 21:49:01 IP:211.22.xxx.xxx 未訂閱
丫~~誰知道你的StringGrid有多少列?大家要如何能幫你判定條件式是否正確?
丫~~你所有的提問都沒結案,還有些都已經超時了,把曾經提問的問題且已經可以結案的問題結一結吧!
===================引 用 Macsoft 文 章===================
丫~~ 為什麼只會測到第二行而已??
Macsoft
一般會員


發表:10
回覆:11
積分:4
註冊:2007-03-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-05-25 23:01:58 IP:220.128.xxx.xxx 訂閱
Sorry....
我都有結案 而且很多次了
可是我不曉得為什麼不能結…@@"
我會再試一下
thx.

===================引 用 Stallion 文 章===================
丫~~誰知道你的StringGrid有多少列?大家要如何能幫你判定條件式是否正確?
丫~~你所有的提問都沒結案,還有些都已經超時了,把曾經提問的問題且已經可以結案的問題結一結吧!
===================引 用 Macsoft 文 章===================
丫~~ 為什麼只會測到第二行而已??
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-05-28 10:08:00 IP:122.124.xxx.xxx 未訂閱
結案的按鈕左邊有個ComboBox, 指定答題的分者再按下結案按鈕即可
系統時間:2024-11-22 17:40:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!