无名兄,到底怎么写呀??
我在ondraw下写
while not cdslist.Eof do
begin
if cdslist.FieldByName('djhm').asString='200112190002' then
begin
Acolumn:=dbgGriddjhm;
Acolor:=clRed;
end;
cdslist.next;
end;
结果没反应
我在ondraw下写
while not cdslist.Eof do
begin
if cdslist.FieldByName('djhm').asString='200112190002' then
begin
Acolumn:=dbgGriddjhm;
Acolor:=clRed;
end;
cdslist.next;
end;
结果没反应
if gdSelected in state then
SetBkColor(dbgrid1.canvas.handle,clred)
else
setbkcolor(dbgrid1.canvas.handle,clwhite);
dbgrid1.Canvas.TextRect(rect,0,0,field.AsString);
dbgrid1.Canvas.Textout(rect.Left,rect.Top,field.AsString);
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Column.Field.DisplayText='200112190002' then
begin
DBGrid1.Canvas.Brush.Color:=clRed;
DBGrid1.Canvas.Brush.Style:=bsSolid;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top,Column.Field.DisplayText);
end;
end;
我上次做过一次,好像不用这么复杂,我一时也想不起来了,也没有时间去想了,你就将就一点吧,呵呵
procedure Tfrmqylycx.dbgGridCustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
if AColumn.AssignedValues='200112210002' then
begin
dbgGrid.Canvas.Brush.Color:=clRed;
dbgGrid.Canvas.Brush.Style:=bsSolid;
dbgGrid.Canvas.FillRect(Rect);
dbgGrid.Canvas.TextOut(Rect.Left,Rect.Top,Column.Field.DisplayText);
end;
end;
上面是我写的,错误百出!!
我这两天也在用,感觉也是不太明了,它带的Demo可以看一下,好像有一个例子有这个功能。
if ADOQuery1.RecNo mod 2=0 then
acolor:=$00BFE4E2 else
acolor:=$00E3FBFB;
在dxdbgrid的oncustomdrawcell中
try
with TColorDbgrid(sender) do
begin
if DataLink.ActiveRecord = Row - 1 then
Canvas.Brush.Color := clinfobk;
with DbG.DataSource.DataSet do
begin if (cb.text = '清算结果') or (cb.text = '证券库存') or (cb.text =
'证券流水') then
begin
if (FieldByName('Gddm').asstring = '') or (FieldByName('zqdm').asstring
=
'') or (FieldByName('Gddm').isnull) or (FieldByName('zqdm').isnull)
or (pos(FieldByName('zqdm').asstring, StrErrZqdm) <> 0) then
Canvas.Font.Color := clred;
end;
if (cb.text = '资金帐户') or (cb.text = '资金流水') or (cb.text =
'清算结果') then
if (FieldByName('zjzh').asstring = '') then
Canvas.Font.Color := clred; end;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
except on e: exception do
showMessage(e.Message);
end;
其他的自己看看,不难了,我前天刚做的,