關於DBGRID顏色顯示,採用資料表同一比記錄的後面欄位來決定前面欄位來記錄顏色顯示 |
答題得分者是:jeffreck
|
yaoyao01tw
一般會員 發表:28 回覆:17 積分:9 註冊:2003-01-28 發送簡訊給我 |
關於DBGRID顏色顯示,採用資料表同一比記錄的後面欄位來決定前面欄位來記錄顏色顯示 各位前輩: 想問一下關於DBGRID顏色顯示,我在DBGrid1DrawColumnCell變更顏色顯示的程式碼 採用的撰寫方式乃是讀取資料表同一比記錄的後面欄位來決定前面欄位來記錄顏色顯示 比如欄位名稱[1]同一比記錄對應的顏色記錄是[C1],可是顏色顯示都不會正確 記得DBGRID是同一列掃下來的,可是顏色顯示都不會正確。 煩請各位前輩看一下程式碼(http://cm.yuntech.edu.tw/8923538/Code_TEst.rar) procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var i: Integer;
begin
for i := 0 to (Sender as TDBGrid).Columns.Count - 1 do
begin
if ((i > 8) and (i <= 108)) then // 只處理有顏色的對應欄位
begin
if (Sender as TDBGrid).Columns[i 100].Field.Value <> Null then
begin
if Trim((Sender as TDBGrid).Columns[i 100].Field.Value) <> '' then
begin
(Sender as TDBGrid).Columns[i].Color := StringToColor((Sender as TDBGrid).Columns[i 100].Field.Value);
end;
end
else
begin
(Sender as TDBGrid).Columns[i].Color := clWhite; //預設的顏色值
end;
end;
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var i: Integer; begin if ((DataCol > 8) and (DataCol <= 108)) then // 只處理有顏色的對應欄位 begin if (Sender as TDBGrid).Columns[DataCol 100].Field.Value <> Null then begin if Trim((Sender as TDBGrid).Columns[DataCol 100].Field.Value) <> '' then begin (Sender as TDBGrid).canvas.Brush.color := StringToColor (Trim((Sender as TDBGrid).Columns[DataCol 100].Field.Value)); end; end else (Sender as TDBGrid).canvas.Brush.color := clWhite; //預設的顏色值 end; (Sender as TDBGrid).DefaultDrawColumnCell(Rect, DataCol, Column, State); end;try try see |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |