抢分问题。快来抢分。需要代码支持

olddaddy 2003-12-12 02:38:50
如果何我的程序最小化后不显示在任务栏。
只显示在右下角系统栏一个小图标呢?
...全文
32 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mib3000 2003-12-12
  • 打赏
  • 举报
回复
mark
chenkandy 2003-12-12
  • 打赏
  • 举报
回复
up
nuaabestbo 2003-12-12
  • 打赏
  • 举报
回复
同意 angle097113(深思不解) !!!!!
ls2008 2003-12-12
  • 打赏
  • 举报
回复
樓上的都說完了,讓我們說甚麼好呢??
zhoutian618 2003-12-12
  • 打赏
  • 举报
回复
定义一个托盘图标
RZ组件包中有这个控件。
gencan 2003-12-12
  • 打赏
  • 举报
回复
可以用,TCoolTrayIcon
qiume 2003-12-12
  • 打赏
  • 举报
回复
DOWN一个控件喽
angelface 2003-12-12
  • 打赏
  • 举报
回复
还是自己写感觉好~~~
WGYKING 2003-12-12
  • 打赏
  • 举报
回复
用那段代码吧
shuyi 2003-12-12
  • 打赏
  • 举报
回复
我也用TCoolTrayIcon,你可以在网上找一下很好用还可以自动变换图标.
zhangnan623 2003-12-12
  • 打赏
  • 举报
回复
qft516 2003-12-12
  • 打赏
  • 举报
回复
托盘
jackieji 2003-12-12
  • 打赏
  • 举报
回复
两者皆可,我的这个就是控件上带的很方便
wolf2005 2003-12-12
  • 打赏
  • 举报
回复
有个控件,可以用,TCoolTrayIcon
angle097113 2003-12-12
  • 打赏
  • 举报
回复
转贴
const WM_MYTRAYICONCALLBACK = WM_USER + 1000;

type
TForm1 = class(TForm)
...
n_MainFromDispOrHide: TMenuItem;
private
{ Private declarations }
MyTrayIcon : TNotifyIconData; //定义一个托盘图标的类
procedure TrayShow(Sender: TObject);
procedure WMMyTrayIconCallBack(var Msg : TMessage); //处理点击托盘图标的事件
message WM_MYTRAYICONCALLBACK;
procedure n_MainFromDispOrHideClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
...
end;

procedure TForm1.TrayShow(Sender: TObject);
//当点击托盘图标时显示或隐含主窗体
begin
TrayBarPopMenu.AutoPopup:=False;
//设定 TNotifyIconData 的记录长度
MyTrayIcon.cbSize :=SizeOf(tnotifyicondata);
//确定调用程序的窗体句柄
MyTrayIcon.Wnd :=Handle;
//确定图标的 uID
MyTrayIcon.uID :=1;
//设定显示标记
MyTrayIcon.uFlags :=NIF_ICON or NIF_TIP or NIF_MESSAGE;
//用户自定义消息
MyTrayIcon.uCallbackMessage := WM_MYTRAYICONCALLBACK;
//托盘图标的句柄
MyTrayIcon.hIcon := Application.Icon.Handle;
//托盘图标的提示信息
MyTrayIcon.szTip :='定时导数据程序';
//向托盘中添加图标
Shell_NotifyIcon(NIM_ADD,@mytrayicon);
end;

procedure TForm1.WMMyTrayIconCallBack(var Msg: TMessage);
//处理点击托盘图标的事件,根据 WM_MOUSEMOVE 消息的不同情况产生不同的回应
var
CursorPos : TPoint;
begin
TrayBarPopMenu.AutoPopup:=False;
case Msg.lParam of
//左键按下
WM_LBUTTONDOWN : begin
application.MainForm.BringToFront; //窗体置前
end;
//左键双击
WM_LBUTTONDBLCLK : begin //窗体隐含或显示
Application.MainForm.Visible := not Application.MainForm.Visible;
SetForegroundWindow(Application.Handle);
end;
//右键按下
WM_RBUTTONDOWN : begin //显示弹出菜单
GetCursorPos(CursorPos);
TrayBarPopMenu.Popup(CursorPos.x,CursorPos.y);
end;
end//case
end;

procedure TForm1.n_MainFromDispOrHideClick(Sender: TObject);
begin
if Application.MainForm.Visible then
begin
if FormStep1.Showing Then FormStep1.Hide;
if FormStep2.Showing Then FormStep2.Hide;
Application.MainForm.Hide;
n_MainFromDispOrHide.Caption :='显示主窗体';
end
else
begin
Application.MainForm.Show;
n_MainFromDispOrHide.Caption :='隐藏主窗体';
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);//程序不在任务栏上显示
TrayShow(Application.MainForm);//显示图标
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon(NIM_DELETE, @MyTrayIcon);//删除托盘图标
end;
google1106 2003-12-12
  • 打赏
  • 举报
回复
在csdn上搜索,好像有这样的帖子

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧