string grids顏色變換問題? |
尚未結案
|
ohsula
一般會員 發表:12 回覆:17 積分:5 註冊:2004-03-02 發送簡訊給我 |
各位大大,想請問我有一個4*4的string grid。
當我按下一個button後,一開始第一列(ARow==1)會呈現黃色的光棒,當
sg->cells[3][ARow]=="PASS"時,第一列由黃色變成綠色光棒;而當sg->Cells[3][ARow]=="FAIL"時,第一列則由黃色變成紅色光棒。
第一列執行完畢後,換第二列呈現黃色光棒,同樣當sg->cells[3][ARow]=="PASS"時,第二列由黃色變成綠色光棒;而當sg->Cells[3][ARow]=="FAIL"時,第二列則由黃色變成紅色光棒。
執行到第三列則停止,請問我該如何做比較好呢? Auston Huang
------
Auston Huang |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
ohsula 您好: 不精確知道您如何更改成PASS或FAIL?
有個改寫StringGrid1的StringGrid1DrawCell(.)函式的方法,供您參考與修改成您要的形式。
< class="code">
//--------------------------------------------------------------------------- void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if ( ((TStringGrid*)Sender)->Cells[3][ARow]=="PASS" )
{ ((TStringGrid*)Sender)->Canvas->Brush->Color = clGreen;
((TStringGrid*)Sender)->Canvas->FillRect(Rect);
((TStringGrid*)Sender)->Canvas->TextOut(Rect.Left 1, Rect.Top 1,
((TStringGrid*)Sender)->Cells[ACol][ARow]);
}
else if ( ((TStringGrid*)Sender)->Cells[3][ARow]=="FAIL" )
{ ((TStringGrid*)Sender)->Canvas->Brush->Color = clRed;
((TStringGrid*)Sender)->Canvas->FillRect(Rect);
((TStringGrid*)Sender)->Canvas->TextOut(Rect.Left 1, Rect.Top 1,
((TStringGrid*)Sender)->Cells[ACol][ARow]);
}
else
{ ((TStringGrid*)Sender)->Canvas->Brush->Color = clYellow;
((TStringGrid*)Sender)->Canvas->FillRect(Rect);
((TStringGrid*)Sender)->Canvas->TextOut(Rect.Left 1, Rect.Top 1,
((TStringGrid*)Sender)->Cells[ACol][ARow]);
}
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{ TRect Rect;
StringGrid1->Cells[3][3] = "PASS";
StringGrid1->Refresh(); // 重繪StringGrid1
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{ TRect Rect;
StringGrid1->Cells[3][3] = "FAIL";
StringGrid1->Refresh(); // 重繪StringGrid1
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{ TRect Rect;
StringGrid1->Cells[3][3] = "NORMAL";
StringGrid1->Refresh(); // 重繪StringGrid1
}
//--------------------------------------------------------------------------- RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====#####
|
ohsula
一般會員 發表:12 回覆:17 積分:5 註冊:2004-03-02 發送簡訊給我 |
hello,可是因為這一行程式,一開始畫面全部呈現黃色,我想了好久都沒辦法
讓一開始只有第一列呈現黃色。
/////////////////////////////////////////////////////////////////
else
{ ((TStringGrid*)Sender)->Canvas->Brush->Color = clYellow;
((TStringGrid*)Sender)->Canvas->FillRect(Rect);
((TStringGrid*)Sender)->Canvas->TextOut(Rect.Left 1, Rect.Top 1,((TStringGrid*)Sender)->Cells[ACol][ARow]);
}
/////////////////////////////////////////////////////////////// Auston Huang
------
Auston Huang |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |