[DELPHI]如何在DBGRID中由後面的欄位決定前面的欄位顏色? |
尚未結案
|
yaoyao01tw
一般會員 發表:28 回覆:17 積分:9 註冊:2003-01-28 發送簡訊給我 |
各位前輩: 請問如何在DBGRID中由後面的欄位決定前面的欄位顏色,如資料表的欄位有
DB_01 後面有一個相對應的欄位CO_01,前面放的是資料,但由於要由後面的
顏色值欄位決定前面資料值欄位的顏色,我有寫出如下的程式碼,但是新增的時候會失敗,一般編輯則OK,我用ACCESS的MDB當資料來源使用ADO連線,但是發現ACCESS資料表的欄位預設值設定,並不會反映到DBGRID在執行新增指令, for i := 0 to (Sender as TDBGrid).Columns.Count - 1 do
begin
if i > 2 then // 只處理有顏色的對應欄位
begin
if (Sender as TDBGrid).Columns[i].FieldName = trim('DB_' trim(inttostr(i 1 - 3))) then
begin
if trim((Sender as TDBGrid).Columns[i 10].Field.Value) <> '' then
begin
(Sender as TDBGrid).Columns[i].Color := (Sender as TDBGrid).Columns[i 10].Field.Value;
end;
end;
end;
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State); 謝謝各位前輩指導
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 各位前輩: 請問如何在DBGRID中由後面的欄位決定前面的欄位顏色,如資料表的欄位有 DB_01 後面有一個相對應的欄位CO_01,前面放的是資料,但由於要由後面的 顏色值欄位決定前面資料值欄位的顏色,我有寫出如下的程式碼,但是新增的時候會失敗,一般編輯則OK,我用ACCESS的MDB當資料來源使用ADO連線,但是發現ACCESS資料表的欄位預設值設定,並不會反映到DBGRID在執行新增指令,yaoyao01tw 你好 試試這樣處理可以解決你的問題嗎? for i := 0 to (Sender as TDBGrid).Columns.Count - 1 do begin if i > 2 then // 只處理有顏色的對應欄位 begin if (Sender as TDBGrid).Columns[i].FieldName = trim('DB_' trim(inttostr(i 1 - 3))) then begin if trim((Sender as TDBGrid).Columns[i 10].Field.Value) <> '' then // <== 型態沒問題嗎? begin (Sender as TDBGrid).Columns[i].Color := (Sender as TDBGrid).Columns[i 10].Field.Value; end Else Begin (Sender as TDBGrid).Columns[i].Color := clWhite;//預設的顏色值 End; end; end; end; TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);_______________________________________ 深藍的魚,祝您好運..........連連 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |