unit MyDBGrid;interfaceuses
Windows, Messages, SysUtils, Classes, Controls, Grids, DBGrids, ADODB;type
TMyDBGrid = class(TDBGrid)
private
{ Private declarations }
protected
{ Protected declarations }
procedure TitleClick(Column: TColumn); override; function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
public
{ Public declarations }
published
{ Published declarations }
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Samples', [TMyDBGrid]);
end;
procedure TMyDBGrid.TitleClick(Column: TColumn);
begin
inherited; if not assigned(DataSource) then
exit;
if not Assigned(DataSource.DataSet) then
exit;
if not (DataSource.DataSet is TADOQuery) then
exit;
if not DataSource.DataSet.Active then
exit; if (DataSource.DataSet as TADOQuery).Sort = '' then
try
(DataSource.DataSet as TADOQuery).Sort := column.FieldName + ' ASC'
except
end
else begin
try
if (DataSource.DataSet as TADOQuery).Sort = column.FieldName + ' ASC' then
(DataSource.DataSet as TADOQuery).Sort := column.FieldName + ' DESC'
else (DataSource.DataSet as TADOQuery).Sort := column.FieldName + ' ASC';
except
end;
end;
end;function TMyDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
if not assigned(DataSource) then
exit;
if not Assigned(DataSource.DataSet) then
exit;
if not (DataSource.DataSet is TADOQuery) then
exit;
if not DataSource.DataSet.Active then
exit;
if DataSource.DataSet.IsEmpty then
exit; //DataSource.DataSet.MoveBy(3);
DataSource.DataSet.Next;
end;function TMyDBGrid.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
if not assigned(DataSource) then
exit;
if not Assigned(DataSource.DataSet) then
exit;
if not (DataSource.DataSet is TADOQuery) then
exit;
if not DataSource.DataSet.Active then
exit;
if DataSource.DataSet.IsEmpty then
exit; //DataSource.DataSet.MoveBy(-3);
DataSource.DataSet.Prior;
end;end.
Windows, Messages, SysUtils, Classes, Controls, Grids, DBGrids, ADODB;type
TMyDBGrid = class(TDBGrid)
private
{ Private declarations }
protected
{ Protected declarations }
procedure TitleClick(Column: TColumn); override; function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
public
{ Public declarations }
published
{ Published declarations }
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Samples', [TMyDBGrid]);
end;
procedure TMyDBGrid.TitleClick(Column: TColumn);
begin
inherited; if not assigned(DataSource) then
exit;
if not Assigned(DataSource.DataSet) then
exit;
if not (DataSource.DataSet is TADOQuery) then
exit;
if not DataSource.DataSet.Active then
exit; if (DataSource.DataSet as TADOQuery).Sort = '' then
try
(DataSource.DataSet as TADOQuery).Sort := column.FieldName + ' ASC'
except
end
else begin
try
if (DataSource.DataSet as TADOQuery).Sort = column.FieldName + ' ASC' then
(DataSource.DataSet as TADOQuery).Sort := column.FieldName + ' DESC'
else (DataSource.DataSet as TADOQuery).Sort := column.FieldName + ' ASC';
except
end;
end;
end;function TMyDBGrid.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
if not assigned(DataSource) then
exit;
if not Assigned(DataSource.DataSet) then
exit;
if not (DataSource.DataSet is TADOQuery) then
exit;
if not DataSource.DataSet.Active then
exit;
if DataSource.DataSet.IsEmpty then
exit; //DataSource.DataSet.MoveBy(3);
DataSource.DataSet.Next;
end;function TMyDBGrid.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
if not assigned(DataSource) then
exit;
if not Assigned(DataSource.DataSet) then
exit;
if not (DataSource.DataSet is TADOQuery) then
exit;
if not DataSource.DataSet.Active then
exit;
if DataSource.DataSet.IsEmpty then
exit; //DataSource.DataSet.MoveBy(-3);
DataSource.DataSet.Prior;
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货