delphi 把置托盘图标做成模块时 Tip无法用变量常量赋值的问题
就是一个很平常的功能相信多大数学习delphi的朋友都会的功能在任务栏右下角显示自己的程序图标中文名就是置托盘图标了.在单个程序中我使用一点问题也没有但是我想修改成模块以...
就是一个很平常的功能 相信多大数学习delphi的朋友都会的功能
在任务栏右下角显示自己的程序图标 中文名 就是置托盘图标了.
在单个程序中 我使用一点问题也没有
但是我想修改成模块 以后只要引用模块单元里边的过程
填写几个参加就能重复使用了
附上代码:
声明过了一个全局变量 NotifyIcon
//------------创建托盘图标------------------
procedure P_NotifyIcon_Add(PWnd: Cardinal;PuID: Integer;PuCallMsg: Cardinal;Picon: Cardinal;PTip: Array [0..63] of char{看Tip 就是这样的类型});
begin
NotifyIcon.cbSize:= SizeOf(NotifyIcon);
NotifyIcon.Wnd:= PWnd;
NotifyIcon.uID:= PuID;
NotifyIcon.uFlags:= NIF_ICON + NIF_MESSAGE + NIF_TIP;
NotifyIcon.uCallbackMessage:= PuCallMsg;
NotifyIcon.hIcon:= Picon;
NotifyIcon.szTip:= PTip; // '小工具集';
Shell_NotifyIcon(NIM_ADD,@NotifyIcon);
end;
================================================================
就是想 NotifyIcon.szTip:= PTip; 调用时在参数里写上 '内容' 就可以随意用了 但是 老提示 type不对
var
Strr: array [0..63] of Char; //试着用变量 常量 不使用Tip参数都不行 我刚开始学delphi 有些常用过程和函数 我放在一个模块单元中了
减少重写代码的工作量
请大家调试确认以后再发上来吧...因为我在QQ群里跟人讨论一天了~~
谢谢 分不多 送上 展开
在任务栏右下角显示自己的程序图标 中文名 就是置托盘图标了.
在单个程序中 我使用一点问题也没有
但是我想修改成模块 以后只要引用模块单元里边的过程
填写几个参加就能重复使用了
附上代码:
声明过了一个全局变量 NotifyIcon
//------------创建托盘图标------------------
procedure P_NotifyIcon_Add(PWnd: Cardinal;PuID: Integer;PuCallMsg: Cardinal;Picon: Cardinal;PTip: Array [0..63] of char{看Tip 就是这样的类型});
begin
NotifyIcon.cbSize:= SizeOf(NotifyIcon);
NotifyIcon.Wnd:= PWnd;
NotifyIcon.uID:= PuID;
NotifyIcon.uFlags:= NIF_ICON + NIF_MESSAGE + NIF_TIP;
NotifyIcon.uCallbackMessage:= PuCallMsg;
NotifyIcon.hIcon:= Picon;
NotifyIcon.szTip:= PTip; // '小工具集';
Shell_NotifyIcon(NIM_ADD,@NotifyIcon);
end;
================================================================
就是想 NotifyIcon.szTip:= PTip; 调用时在参数里写上 '内容' 就可以随意用了 但是 老提示 type不对
var
Strr: array [0..63] of Char; //试着用变量 常量 不使用Tip参数都不行 我刚开始学delphi 有些常用过程和函数 我放在一个模块单元中了
减少重写代码的工作量
请大家调试确认以后再发上来吧...因为我在QQ群里跟人讨论一天了~~
谢谢 分不多 送上 展开
2个回答
展开全部
procedure P_NotifyIcon_Add(PWnd: Cardinal;PuID: Integer;PuCallMsg: Cardinal;Picon: Cardinal;PTip: Array [0..63] of char{看Tip 就是这样的类型});
把这个改成:
procedure P_NotifyIcon_Add(PWnd: Cardinal;PuID: Integer;PuCallMsg: Cardinal;Picon: Cardinal;PTip:Pchar);
然后赋值的这句:
NotifyIcon.szTip:= PTip; // '小工具集';
改成:
Move(PTip^,NotifyIcon.szTip,64);
这样应该就可以了,而且你调的时候直接传'小工具集'这样就行了。
另:你只放在一个单元不太好,如果可以你最好把它写成一个控件。不过,第三方的托盘控件早就有了,而且Delphi2006以上的版本都会自带托盘控件。所以你自己再封装用来学习可以,真正用的直接用Delphi的组件就行了
把这个改成:
procedure P_NotifyIcon_Add(PWnd: Cardinal;PuID: Integer;PuCallMsg: Cardinal;Picon: Cardinal;PTip:Pchar);
然后赋值的这句:
NotifyIcon.szTip:= PTip; // '小工具集';
改成:
Move(PTip^,NotifyIcon.szTip,64);
这样应该就可以了,而且你调的时候直接传'小工具集'这样就行了。
另:你只放在一个单元不太好,如果可以你最好把它写成一个控件。不过,第三方的托盘控件早就有了,而且Delphi2006以上的版本都会自带托盘控件。所以你自己再封装用来学习可以,真正用的直接用Delphi的组件就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询