假设你已经做好了一个组件,组件单元为:MyTray 那么新建一个单元,把它保存在组件单元的文件夹下,写下: unit AboutTray;interfaceuses SysUtils,Classes,DesignIntf,DesignEditors,Forms, MyTray;//引用你的组件单元type TTrayIconEditor = class (TComponentEditor)//继承组件编辑器类,并重载以下三个方法 function GetVerbCount: Integer; override; function GetVerb(Index: Integer): string; override; procedure ExecuteVerb(Index: Integer); override; end;procedure Register;implementation///////TTrayIconEditor//////////////////////// procedure TTrayIconEditor.ExecuteVerb(index:integer); begin case index of //当你双击,或右击快捷菜单第一项时,弹出这个对话框。这里你可以自己设计 0: application.MessageBox('你好,这是风做的托盘组件!!','关于'); end; end;function TTrayIconEditor.GetVerb(index:integer):String; begin case index of 0:Result:='About MyTray';//快捷菜单自定义项的名字 end; end;function TTrayIconEditor.GetVerbCount:integer; begin Result:=1;//Result返回的是组件快捷菜单的自定义项数,这里只有一项 end; procedure Register; begin //这里有两个参数,每一个是你的组件类,第二个是组件编辑器类,看上去的类定义 RegisterComponentEditor(TMyTray,TTrayIconEditor); end;end.做好之后,建一个包,把这两个单元包进去,编译,安装,成功。
那么新建一个单元,把它保存在组件单元的文件夹下,写下:
unit AboutTray;interfaceuses
SysUtils,Classes,DesignIntf,DesignEditors,Forms,
MyTray;//引用你的组件单元type
TTrayIconEditor = class (TComponentEditor)//继承组件编辑器类,并重载以下三个方法
function GetVerbCount: Integer; override;
function GetVerb(Index: Integer): string; override;
procedure ExecuteVerb(Index: Integer); override;
end;procedure Register;implementation///////TTrayIconEditor////////////////////////
procedure TTrayIconEditor.ExecuteVerb(index:integer);
begin
case index of
//当你双击,或右击快捷菜单第一项时,弹出这个对话框。这里你可以自己设计
0: application.MessageBox('你好,这是风做的托盘组件!!','关于');
end;
end;function TTrayIconEditor.GetVerb(index:integer):String;
begin
case index of
0:Result:='About MyTray';//快捷菜单自定义项的名字
end;
end;function TTrayIconEditor.GetVerbCount:integer;
begin
Result:=1;//Result返回的是组件快捷菜单的自定义项数,这里只有一项
end;
procedure Register;
begin
//这里有两个参数,每一个是你的组件类,第二个是组件编辑器类,看上去的类定义
RegisterComponentEditor(TMyTray,TTrayIconEditor);
end;end.做好之后,建一个包,把这两个单元包进去,编译,安装,成功。