下面的代码是在大富翁论坛里Copy 过来的在 DBGrid 里好用
我用在 DBGridEh 里用有段会编译不过
(sender as TDBGrid).DefaultDrawColumnCell(Rect, datacol, column, State);
我在Eh里用改成了
(sender as TDBGridEh).DefaultDrawColumnCell(Rect, datacol, column, State); 我在Eh里把所有的 TDBGrid 改成了 TDBGridEh
这段
我在DBGrideh 里编译出错
不知道怎么改
如果有高手过路帮我看看~谢谢procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
RowNo: Integer;
begin
RowNo := TDBGrid(sender).DataSource.DataSet.RecNo;
if RowNo = -1 then // 等于-1 就是处理Insert状态
RowNo := TCustomGrid(Sender).MouseCoord(Rect.Left + 1, Rect.Top + 1).Y + //这是DBgrid显示一屏的总数
TDBGrid(sender).DataSource.DataSet.RecordCount - //数据集总数
TStringGrid(Sender).VisibleRowCount + 1;
with (sender as TDBGrid).canvas do
begin
FillRect(Rect);
if RowNo Mod 2 = 0 then
begin
Font.Color := clBlue;
Brush.Color := clWhite;
end else
begin
Font.Color := clWhite;
Brush.Color := clBlue;
end;
if DataCol = 0 then if (state =[gdSelected])or(state =[gdSelected, gdFocused]) then
begin
Brush.Color := clYellow;
font.Color := clGreen;
end;
Pen.Mode := pmMask;
(sender as TDBGrid).DefaultDrawColumnCell(Rect, datacol, column, State);
if DataCol = 0 then
TextRect(Rect, Rect.Left + 2, Rect.Top + 2, IntToStr(RowNo));
end; // with (sender as TDBGrid).canvas do
end;
我用在 DBGridEh 里用有段会编译不过
(sender as TDBGrid).DefaultDrawColumnCell(Rect, datacol, column, State);
我在Eh里用改成了
(sender as TDBGridEh).DefaultDrawColumnCell(Rect, datacol, column, State); 我在Eh里把所有的 TDBGrid 改成了 TDBGridEh
这段
我在DBGrideh 里编译出错
不知道怎么改
如果有高手过路帮我看看~谢谢procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
RowNo: Integer;
begin
RowNo := TDBGrid(sender).DataSource.DataSet.RecNo;
if RowNo = -1 then // 等于-1 就是处理Insert状态
RowNo := TCustomGrid(Sender).MouseCoord(Rect.Left + 1, Rect.Top + 1).Y + //这是DBgrid显示一屏的总数
TDBGrid(sender).DataSource.DataSet.RecordCount - //数据集总数
TStringGrid(Sender).VisibleRowCount + 1;
with (sender as TDBGrid).canvas do
begin
FillRect(Rect);
if RowNo Mod 2 = 0 then
begin
Font.Color := clBlue;
Brush.Color := clWhite;
end else
begin
Font.Color := clWhite;
Brush.Color := clBlue;
end;
if DataCol = 0 then if (state =[gdSelected])or(state =[gdSelected, gdFocused]) then
begin
Brush.Color := clYellow;
font.Color := clGreen;
end;
Pen.Mode := pmMask;
(sender as TDBGrid).DefaultDrawColumnCell(Rect, datacol, column, State);
if DataCol = 0 then
TextRect(Rect, Rect.Left + 2, Rect.Top + 2, IntToStr(RowNo));
end; // with (sender as TDBGrid).canvas do
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货