dbgrid中据条件添颜色是否可以通过事件触发,好急,大家帮帮吧!(100分)

  • 主题发起人 主题发起人 律绿
  • 开始时间 开始时间
是不是可以在滚动的时候,更改颜色啊
 
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Code: Integer;
Bmp: TBitmap;
begin
// erase existing output
DBGrid1.Canvas.FillRect (Rect);

if Column.Field = Table1Graphic then
begin
// draw the image
Bmp := TBitmap.Create;
try
Bmp.Assign (Table1Graphic);
DBGrid1.Canvas.StretchDraw (Rect, Bmp);
finally
Bmp.Free;
end;
end
else
begin
// choose the font color
if (Column.Field = Table1Lengthcm) and
(Table1Lengthcm.AsInteger > 100) then
DBGrid1.Canvas.Font.Color := clRed
else if gdSelected in State then
DBGrid1.Canvas.Font.Color := clHighlightText
else
DBGrid1.Canvas.Font.Color := Column.Font.Color;
// draw the standard text
DBGrid1.Canvas.TextRect (
Rect, Rect.Left, Rect.Top,
Column.Field.AsString);
end;

// optionally draw the focus rectangle
if gdFocused in State then
DBGrid1.Canvas.DrawFocusRect (Rect);
end;

delphi4从入门道精通上的例子
 
麻烦各位了,我用了多页切换控件tabbednotebook,我想据两页之间传输数据来添颜色。
比如:dbgrid1与dbgrid2用的是同一个query,
dbgrid1在page1上
dbgrid2在page2上
要在page1上点击dbgrid1后,再切换到page2上这是dbgrid2上对应dbgrid1点过的纪录添加颜色
现在我只做到了,page1----page2切换后可以更改颜色
再从page2-----page1就不行了。
不知,dbgrid话颜色是在起初建立的时候画的呢,还是任意时候,而且是不是得定时清空一下
 
只要你的数据有修改就会重画,不需要定时清空
 
谢谢你们了,问题已解决!:)
 
后退
顶部