托盘可以在 CLASS的基类 下生成吗? ( 积分: 100 )

  • 主题发起人 主题发起人 bamfk1023
  • 开始时间 开始时间
B

bamfk1023

Unregistered / Unconfirmed
GUEST, unregistred user!
单元一
MyTray.pas

uses ShellApi;

type
MyTray=class
public

ico1: TNotifyIconData;
procedure add(f:Tform);
end ;
...

procedure MyTray.Add(f:TForm);
Begin
ico1.cbsize:=sizeof(ico1);
ico1.hIcon:=application.Icon.Handle; ///////// 这个HAND 是不是不对
ico1.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
ico1.Wnd:=f.handle; /////// 这个HAND 是不是不对
ico1.szTip:='MyProject V1.01';
ico1.uID:=1;
ico1.uCallbackMessage:=WM_BACKCALL;
shell_notifyicon(NIM_ADD,@ico1);
end ;

........................................
主程序
Project.dpr

var
mytray1: myTray ;

begin
Application.Initialize ;

myTray1 := myTray.create ;

if ParamStr(1)='tray' then // 开机调用和主程序直接调用不同窗体
begin
Application.CreateForm(TMainForm, MainForm);
myTray1.AddTray(MainForm) ;
myTray1.NowForms := 1 ;
end ;
if ParamStr(1)='' then
begin
Application.CreateForm(TPopForm, PopForm);
myTray1.AddTray(PopForm) ;
myTray1.NowForms := 2 ;
end ;
Application.Run ;
myTray1.free ;
end ;

.........................................

这样建立的托盘为什么不能响应,托盘的鼠标事件
因为要建立两个窗体,不想单独写一个开机提醒小程序;
 
后退
顶部