我自己想给TMainMenu加一个mousemove事件,如下:
unit Menu;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Shellapi, StdCtrls, ExtCtrls, Menus;type
TMenu = class(TMainMenu)private
{ Private declarations }
FOnMouseMove: TNotifyEvent;
procedure FSetOnMouseMove(value: TNotifyEvent);protected
{ Protected declarations }
procedure wmmousemove(var Msg: TMessage); message WM_MOUSEMOVE;public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;published
{ Published declarations }
property OnMouseMove: TNotifyEvent read FOnMouseMove write FSetOnMouseMove;end;implementationprocedure Register;
begin
RegisterComponents('Samples', [TMenu]);
end;{ TMenu }procedure TMenu.wmmousemove(var Msg: TMessage);
begin
if Assigned(FOnMouseMove) then
FOnMouseMove(Self);
end;constructor TMenu.Create(AOwner: TComponent);
begin
inherited;end;destructor TMenu.Destroy;
begin inherited;
end;procedure TMenu.FSetOnMouseMove(value: TNotifyEvent);
begin
if @FOnMouseMove <> @value then
FOnMouseMove := Value;
end;end.
但用install component居然不让install!?(就是install那个按钮是灰的)是哪个地方写错了吗?以前没做过这种东西。
unit Menu;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Shellapi, StdCtrls, ExtCtrls, Menus;type
TMenu = class(TMainMenu)private
{ Private declarations }
FOnMouseMove: TNotifyEvent;
procedure FSetOnMouseMove(value: TNotifyEvent);protected
{ Protected declarations }
procedure wmmousemove(var Msg: TMessage); message WM_MOUSEMOVE;public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;published
{ Published declarations }
property OnMouseMove: TNotifyEvent read FOnMouseMove write FSetOnMouseMove;end;implementationprocedure Register;
begin
RegisterComponents('Samples', [TMenu]);
end;{ TMenu }procedure TMenu.wmmousemove(var Msg: TMessage);
begin
if Assigned(FOnMouseMove) then
FOnMouseMove(Self);
end;constructor TMenu.Create(AOwner: TComponent);
begin
inherited;end;destructor TMenu.Destroy;
begin inherited;
end;procedure TMenu.FSetOnMouseMove(value: TNotifyEvent);
begin
if @FOnMouseMove <> @value then
FOnMouseMove := Value;
end;end.
但用install component居然不让install!?(就是install那个按钮是灰的)是哪个地方写错了吗?以前没做过这种东西。
解决方案 »
- delphi什么函数能判断一个字符串包含在另一字符串中(要能判断中文字符串)?
- 一个关于函数指针的问题,大家多捧场哈
- 单击TREEVIEW,如何判断当前单击区域为空白区域?
- 在win2000下的Delphi7粘贴外来中文显示?,不知为什么。有谁知道?
- ODBC问题?????
- 大家帮我测试一下这个问题,都开过好几个帖子问过了,郁闷死了
- 为何我的程序不重新运行就连接不了 SQL Server
- 如何提高sql server数据库用程序转存为excel格式的速度?
- 请问各位大侠,我有一个c++做的dll中有两个函数,如何把他变成delphi函数
- 庆祝成为三级用户,散分!
- Delphi群:23579390 一个需要注入新生力量的部落!来吧,这个部落会因为有你而变得更有活力~!~
- 我采用ADO+SQLSERVER,众多客户端连着服务器端数据库,客户端同时直接对服务器端的数据记录添加\删除修改\,别的不做额外处理,会发生什么
====================================================================================
你的Delphi系统有毛病,我们的都不是灰的,这与"哪个地方写错了"是两回事.但是TMenu确实是已经存在的,是TMainMenu的祖先类,还有就是主菜单是不能简单加事件的,它是Windows系统控制的,Delphi只不过包装了一下