比如一个控件什么事件都没有,怎样增加?举个例子.
解决方案 »
- 关于获得汉字拼音首位字母的函数在delphi2010无效
- TLIST是什么组件啊?
- 问一条UPDATE问题,高手帮忙!
- 请问如何实现树中的两个节点的交换。下面的代码不行。多谢
- 获取双网卡IP问题
- 各位进来看看为何我用Socket接收不到我发送的数据呢?????????????
- 谁有CSDN论坛助手的源程序,分享一下吧,谢谢
- 谁能给我讲讲override与overload?
- ----不为提问只为散分!----
- FMX项目Edit控件,当IDE上方选择Style为Android时,Edit的Height属性固定为32无法调整,这是为啥?
- 为什么数据库中的照片显示不出来?
- 通过怎么的设置才能将Dbgrid弄成平面显示?
begin
.........
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.OnClick := MyClick;
end;
unit WJDBGrid;
//增加了3个功能
//1:鼠标滚轮相应;如果定义了ONCELLCLICK事件,那么在滚动时,自动调用此事件
//2:初始化时将READONLY赋为TRUE;
//3:如果DATASET为TCUSTOMADODATASET,则在单击行标题时,进行排序;
interfaceuses
SysUtils, Classes, Controls, Grids, DBGrids, AdoDB;type
TWJDBGrid = class(TDBGrid)
private
{ Private declarations }
protected
{ Protected declarations }
procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
procedure TitleClick(Column:TColumn);
published
{ Published declarations }
//property OnMouseWheel;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Data Controls', [TWJDBGrid]);
end;{ TWJDBGrid }procedure TWJDBGrid.CMMouseWheel(var Message: TCMMouseWheel);
begin
if Enabled then
if Assigned(DataSource) and Assigned(DataSource.DataSet)
and DataSource.DataSet.Active and (DataSource.DataSet.RecordCount>0) then
begin
if Message.WheelDelta<0 then
DataSource.DataSet.Next;
if Message.WheelDelta>0 then
DataSource.DataSet.prior;
if Assigned(OnCellClick) then
OnCellClick(nil);
message.Result:=1;
//这里要关闭 Inherited,否则会有上面所提及的问题
end else
begin
Inherited;
end;
end;constructor TWJDBGrid.Create(AOwner: TComponent);
begin
inherited;
Readonly:=true;
OnTitleClick:=TitleClick;
end;procedure TWJDBGrid.TitleClick(Column: TColumn);
var i:integer;
tem:string;
begin
if Enabled then
if Assigned(DataSource) and Assigned(DataSource.DataSet)
and DataSource.DataSet.Active and (DataSource.DataSet.RecordCount>0) then
begin
if DataSource.DataSet is TCustomAdoDataSet then
with DataSource.DataSet as TCustomAdoDataSet do
begin
tem:=Column.FieldName;
if Sort='' then
Sort:=tem+' ASC'
else if Sort=tem+' ASC' then
Sort:=tem+' DESC'
else Sort:=tem+' ASC';
end;
end;
end;end.
TMyEvent=procedure(Sender:TObject;其他参数) of ObjectFMyEvent:TMyEvent;
property MyEvent:TMyEvent read FMyEvent write FMyEvent;
if Assigned(FMyEvent) then
FMyEvent(Self,参数)
同意