在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、new -->application
6.声明两个消息 procedure TfrmMain.WMSysCommand(var Msg: TMessage); begin if Msg.WParam = SC_ICON then Self.Visible := False else DefWindowProc(Self.Handle, Msg.Msg, Msg.WParam, Msg.LParam); end; procedure TfrmMain.WMTrayMsg(var Msg: TMessage);//声明托盘消息 var p: TPoint; begin case Msg.LParam of WM_LBUTTONDOWN: Self.Visible := True; //显示窗体 WM_RBUTTONDOWN: begin SetForegroundWindow(Self.Handle); //把窗口提前 GetCursorPos(p); pm1.Popup(p.X, p.Y); end; end; end; 7、oncreate中 with NotifyIcon do begin cbSize := SizeOf(TNotifyIconData); Wnd := Self.Handle; uID := 1; uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; //图标、消息、提示信息 uCallbackMessage := WM_TRAYMSG; hIcon := Application.Icon.Handle; szTip := 'erp服务'; end; Shell_NotifyIcon(NIM_ADD, @NotifyIcon); //去掉关闭按钮 EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED); 8、ondestroy中 整体代码 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI, Menus; const WM_TRAYMSG = WM_USER + 101; type TForm1 = class(TForm) pm1: TPopupMenu; N1: TMenuItem; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private NotifyIcon: TNotifyIconData; procedure WMTrayMsg(var Msg: TMessage); message WM_TRAYMSG; //声明托盘消息 procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormDestroy(Sender: TObject); begin Shell_NotifyIcon(NIM_DELETE, @NotifyIcon); end; procedure TForm1.FormCreate(Sender: TObject); begin with NotifyIcon do begin cbSize := SizeOf(TNotifyIconData); Wnd := Self.Handle; uID := 1; uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; //图标、消息、提示信息 uCallbackMessage := WM_TRAYMSG; hIcon := Application.Icon.Handle; szTip := 'erp服务'; end; Shell_NotifyIcon(NIM_ADD, @NotifyIcon); //去掉关闭按钮 EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED); end; { TForm1 } procedure TForm1.WMSysCommand(var Msg: TMessage); begin if Msg.WParam = SC_ICON then Self.Visible := False else DefWindowProc(Self.Handle, Msg.Msg, Msg.WParam, Msg.LParam); end; procedure TForm1.WMTrayMsg(var Msg: TMessage); var p: TPoint; begin case Msg.LParam of WM_LBUTTONDOWN: Self.Visible := True; //显示窗体 WM_RBUTTONDOWN: begin SetForegroundWindow(Self.Handle); //把窗口提前 GetCursorPos(p); pm1.Popup(p.X, p.Y); end; end; end; end. //这是从网上找的在delphi7测试通过(引用的哪忘了)--- http://blog.csdn.net/akof1314/article/details/6411179 这个列牛B |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论