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

StringGrid的上色問題

答題得分者是:P.D.
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-05 11:52:37 IP:60.248.xxx.xxx 訂閱
我想指定某欄位若數值小於多少就顯示紅色
那我就寫以下的SQL,可是程式告訴我找不到這各"組裝直通率"
WHY ???

我搜尋貴站很多上色問題都沒我要的解答耶

csTemp5~7 是 ClientDataSet


[code delphi]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

begin
if (csTemp5.FieldByName('組裝直通率').AsString < '96%') then
StringGrid1.Font.Color := clRed
else
if (csTemp6.FieldByName('測試直通率').AsString < '96%') then
StringGrid1.Font.Color := clRed
else
if (csTemp7.FieldByName('包裝直通率').AsString < '96%' ) then
StringGrid1.Font.Color := clRed


end;

[/code]
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-03-05 13:13:25, 註解 無‧
cobraliu
中階會員


發表:15
回覆:75
積分:83
註冊:2007-11-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-05 15:13:17 IP:220.143.xxx.xxx 訂閱
如果你要那一行變顏你可以試試
而如果你要的是某一個Cell那你要多一些判定

下面的例子,那是雙行變色,變紅色
[code delphi]
if (ARow mod 2) = 0 then //要改成你自已要的!
(Sender as Tstringgrid).Canvas.Brush.Color := clInfoBk
else
(Sender as Tstringgrid).Canvas.Brush.Color := clred;

(Sender as Tstringgrid).Canvas.FillRect(Rect);

[/code]
------
初學、初學、學了很久...還是在初學階段..Orz
編輯記錄
cobraliu 重新編輯於 2008-03-05 15:13:41, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-05 15:31:18 IP:61.67.xxx.xxx 未訂閱
給你一個方向, 你所要的是針對每一個CELL上色, 非整組(StringGrid.Color)
1. private 下引用一組二維陣列與StringGrid 同大小
arygrid: array)10,10) of TColor;
2.在你的SQL判斷式下, 取出直通率的結果, 同時一個重點, 你必須知道要上色的直通率CELL值
例如 StringGrid1.Cell[3,5], 則設定 arygrid[3,5]:= clRed

3.最重要的是你必須在 StringGrid 的 onDrawCell事件上來上色
begin
for c:= 0 to 9 do begin
for r:= 0 to 9 do begin
Canvas.Brush.Color:= arygrid[c,r]; // 這是要cell上色
Canvas.Font.Color:= arygrid[c,r]; // 這是要字體上色 (與上兩者選一)
next;
next;
.Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left,Rect.Top,Cells[ACol,ARow]); //output text
end;

大致是如此, 不過我沒有實作過, 你自己run
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-07 08:39:13 IP:210.64.xxx.xxx 訂閱
感謝兩位大大的指導 我找到方向了...^^
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
系統時間:2024-04-29 9:49:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!