如何在DBGrid中改變行的顏色 |
尚未結案
|
linken
一般會員 ![]() ![]() 發表:23 回覆:37 積分:22 註冊:2004-11-24 發送簡訊給我 |
我這個程序有何錯誤,不會改變顏色,請指教!!
procedure Tenquiry.DBGrid3DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with DBGrid1 do
begin
if ((State=[gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
canvas.Font.Color:=ClYellow;
canvas.Font.color:=ClNavy;
end
else
begin
if (DataSource1.DataSet.RecNo mod 2<>0) then
Canvas.Brush.Color:=clWhite
else
Canvas.Brush.Color:=clRed;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end; ken
------
ken |
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi linken 你好, 我測試是正常, 有變顏色
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin with DBGrid1 do begin if ((State=[gdSelected]) or (State=[gdSelected,gdFocused])) then begin canvas.Font.Color:=ClYellow; canvas.Font.color:=ClNavy; 這兩行請拿掉一行 end else begin if (DataSource1.DataSet.RecNo mod 2<>0) then Canvas.Brush.Color:=clWhite else Canvas.Brush.Color:=clRed; end; DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); end; end;我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
linken
一般會員 ![]() ![]() 發表:23 回覆:37 積分:22 註冊:2004-11-24 發送簡訊給我 |
Miles多謝你的指教,可是我要達到的效果是整條行的
顏色都改變,不是觸發它的時候才改變顏色,
也就是這里沒發應,請幫忙,謝謝
if (DataSource1.DataSet.RecNo mod 2<>0) then
Canvas.Brush.Color:=clWhite
else
Canvas.Brush.Color:=clRed;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); ken
------
ken |
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi linken, 相信你應該已經看過以下討論
http://delphi.ktop.com.tw/topic.php?topic_id=56057 請注意,該篇討論用的 DataSet 為 TADOQuery,我猜測你的 DataSet 應該是 BDE 吧,如此才會造成 DataSet.RecNo 有問題而無變色效果
http://delphi.ktop.com.tw/topic.php?topic_id=25748 你可以更改為 ADO 試試,或是拉一個 DataSetProvider 與 ClientDataSet,用 ClientDataSet 試試,架構大致如下:
TDataBase --> TQuery --> TDataSetProvider --> TClientDataSet --> TDatasource --> TDBGrid
------
Fishman |
linken
一般會員 ![]() ![]() 發表:23 回覆:37 積分:22 註冊:2004-11-24 發送簡訊給我 |
|
linken
一般會員 ![]() ![]() 發表:23 回覆:37 積分:22 註冊:2004-11-24 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |