改变DBGRID OR EHLIB中当前行的背景颜色。
1.DBGRID
//DBGrid1.Options->dgEditing=True
//DBGrid1.Options->dgRowSelect=False
TYPE
TMyDBGrid=class(TDBGrid);
如果是 EHLIB 则用
TMyDBGrid=class(TDBGridEH);
procedure TForm1.dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with TMyDBGrid(Sender) do
begin
if DataLink.ActiveRecord=Row-1 then
begin
Canvas.Font.Color:=clBlue;
Canvas.Brush.Color:=$00FFD0D0;
end
else
begin
Canvas.Brush.Color:=Color;
Canvas.Font.Color:=Font.Color;
end;
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;
DbGrid控件的标题栏弹出菜单
VAR
vCurRect : TRect;
procedure TFrmOrderPost.DBGRID1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
CurPost:TPoint;
begin
GetCursorPos(CurPost);
if (y<=17) and (x<=vCurRect.Right) then
begin
if button=mbright then
begin
PmTitle.Popup(CurPost.x,CurPost.y);
end;
end;
end;
//vCurRect该变量在DbGrid的DrawColumnCell事件中获得
procedure TFrmOrderPost.DBGRID1DrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
vCurRect:=Rect;
end;