各位大侠,请一下DBGrid的显的一个显示问题.
1、当DBGrid中的属性Options下的dgRowSelect值为false,可以用鼠标选取某列的当前值,但当前行的颜色不能改变,如果当dgRowSelect值为True时刚好与上述出现的结果相反。
2、我想要的结果如下:
鼠标选取某列的当前值要有焦点,同时当前行的颜色也要能改变。请教各位如何解决。
1、当DBGrid中的属性Options下的dgRowSelect值为false,可以用鼠标选取某列的当前值,但当前行的颜色不能改变,如果当dgRowSelect值为True时刚好与上述出现的结果相反。
2、我想要的结果如下:
鼠标选取某列的当前值要有焦点,同时当前行的颜色也要能改变。请教各位如何解决。
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
ACanvas: TCanvas;
begin
ACanvas := DBGrid1.Canvas;
//记录当前数据记录
if CurBookMark = Column.Field.DataSet.Book then
ACanvas.Brush.Color := clRed
else
ACanvas.Brush.Color := DBGrid1.Color;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol, Column, State);
end;procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
CurBookMark := DataSet.Book; //记录当前数据集的书签位置
end;
type
TForm1 = class(TForm) ...... private
{ Private declarations }
CurBookMark: String;//定义一个成员变量
public
{ Public declarations }
end;