关于Form的一个问题

sirliner 2003-08-25 01:43:50
form如果没有设成主窗体,那么在最小化时会缩在桌面的左下角.
有没有办法让它停在任务栏上.
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sirliner 2003-08-31
  • 打赏
  • 举报
回复
我解决了.
moeryang 2003-08-25
  • 打赏
  • 举报
回复
到网上找一下记得以前看过这样的文章好象要改一下.pas的源文件
hongqi162 2003-08-25
  • 打赏
  • 举报
回复
{操作Tray的模块}

unit Tray;

interface

uses
ShellAPI, Windows, Forms, SysUtils, Messages;

const
WM_TrayMessage = WM_USER+1;
TrayID: Integer = 1;
IconName: array[False..True] of string= ('TRAY_CLOSED', 'TRAY_OPEN');
Hint: array[False..True] of string= ('StarCraft Battle Batman(Disabled)', 'StarCraft Battle Batman');

var
MyTray: TNotifyIconData; //Tray变量
IsEnabled: Boolean = True;

//初始化Tray
procedure InitTray (Handle: HWND);
//改变Tray的标题
procedure ChangeTray;
//删除Tray
procedure DelTray;

implementation

{$R Tray.res}

procedure InitTray (Handle: HWND);
var
S: string;
I: Integer;
begin
MyTray.cbSize := SizeOf(MyTray);
MyTray.Wnd := Handle;
MyTray.uFlags := NIF_ICON Or NIF_MESSAGE Or NIF_TIP;
MyTray.uID := TrayID;
MyTray.hIcon := LoadIcon(HInstance, PChar(IconName[IsEnabled]));
S:= Hint[IsEnabled];
FillChar (MyTray.szTip, SizeOf(MyTray.szTip), 0);
for I:=1 to Length(S) do MyTray.szTip[I-1]:= S[I];
MyTray.uCallbackMessage := WM_TrayMessage;
Shell_NotifyIcon (NIM_ADD, @MyTray);
end;

procedure ChangeTray;
var
S: string;
I: Integer;
begin
MyTray.hIcon := LoadIcon(HInstance, PChar(IconName[IsEnabled]));
S:= Hint[IsEnabled];
FillChar (MyTray.szTip, SizeOf(MyTray.szTip), 0);
for I:=1 to Length(S) do MyTray.szTip[I-1]:= S[I];
Shell_NotifyIcon (NIM_MODIFY, @MyTray);
end;

procedure DelTray;
begin
MyTray.uFlags := 0;
Shell_NotifyIcon (NIM_DELETE, @MyTray);
end;

end.

启动程序的时候用InitTray(Handle),关闭程序之前用DelTray,改变图表的时候用ChangeTray。最小化的时候把Main Form的visible改称false就行了。
IORILI 2003-08-25
  • 打赏
  • 举报
回复
学习 帮你up

5,388

社区成员

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

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