該如何為StringGrid中「某特定的」Cell上色?? |
缺席
|
Macsoft
一般會員 發表:10 回覆:11 積分:4 註冊:2007-03-13 發送簡訊給我 |
|
nickcai2002
一般會員 發表:3 回覆:20 積分:24 註冊:2004-11-18 發送簡訊給我 |
嗯..完全一樣的問題..再花點時間找一下 會學到更多的知識
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=83227 ===================引 用 Macsoft 文 章=================== 請問一下… 我想為StringGrid中某個特定的Cell (符合我所要的條件的) 填上底色,那麼我該如何做呢? 我試過版上網友提供的方法,可是都不行,不然就是將整個 StringGrid 都上色了… 為什麼呢?謝謝 :) |
Macsoft
一般會員 發表:10 回覆:11 積分:4 註冊:2007-03-13 發送簡訊給我 |
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 發送簡訊給我 |
<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 發送簡訊給我 |
感謝 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 發送簡訊給我 |
丫~~ 為什麼只會測到第二行而已??
===================引 用 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 發送簡訊給我 |
|
Macsoft
一般會員 發表:10 回覆:11 積分:4 註冊:2007-03-13 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |