TRAYICONコントロールは、どのようにシステムトレイにウィンドウを最小化する場合には? QQのように、右下隅のアイコンに最小化されるように、右下の脚のアイコンをクリックするだけでなく、フォームを開きます。 どのようにプロパティべき、またはインシデント?12兄を教えてください...... ユニットUnit1は、 インターフェース 用途 Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、 ダイアログ、StdCtrls、shellapi、メニュー、ExtCtrls。 CONST WM_TRAYNOTIFY = 10 。 入力 TForm1 = クラス(TFormは) ボタン1:TButtonの。 popupmenu1を:TPopupMenu; N1:TMenuItem。 N2:TMenuItem。 タイマ1:†時間。 ボタン2:TButtonの。 ボタン3:TButtonの。 手順FormCreate(送信者:TObjectを); 手順FormDestroy(送信者:TObjectを); 手続きButton1Click(送信者:TObjectを); 手順 wmTrayNotify(VARメッセージ:TMessage); メッセージWM_TRAYNOTIFY; 手順N1Click(送信者:TObjectを); 手順N2Click(送信者:TObjectを); 手順FormShow(送信者:TObjectを); 手順Button2Click(送信者:TObjectを); 手順Timer1Timer(送信者:TObjectを); 手順Button3Click(送信者:TObjectを); 民間 ChangeFlag:ブール。 A:ブール。 アイコン:TICON。 ない:TNotifyIconData。 { プライベート宣言} 公共 { 公開宣言} 端; ました Form1の:TForm1; 実装 { $ R * .DFM } 手順TForm1.FormCreate(送信者:TObjectを); 開始 ChangeFlagを: = falseは、 A: = 真; { Nid.cbSize:=はsizeof(TNotifyIconData)。 Nid.Wnd:=ハンドル; Nid.uID:= 1000; Nid.uFlags:= NIF_MESSAGEまたはNIF_ICONまたはNIF_TIP。 Nid.uCallbackMessage:= WM_TRAYNOTIFY。 Nid.hIcon:= Application.Icon.Handle。 Nid.szTip:=「Iは、システムトレイに隠します」。 Shell_NotifyIcon(NID @ NIM_ADD、); } アイコン: = TICON。作成します。 Icon.LoadFromFile(' C:\プログラムファイル\ Microsoft Officeの\ OFFICE11 \ MSN.ICO ' ); エンド; 手順TForm1.FormDestroy(送信者:TObjectを); ベギン Shell_NotifyIcon(NID @ NIM_DELETE、); エンド; 手順TForm1.Button1Click(送信者:TObjectを); 開始 Nid.cbSize: = はsizeof(TNotifyIconData)。 Nid.Wnd: = ハンドル; Nid.uID: = 1000年。 Nid.uFlags: = NIF_MESSAGE または NIF_ICON またはNIF_TIP。 Nid.uCallbackMessage: = WM_TRAYNOTIFY。 Nid.hIcon: = Application.Icon.Handle。 Nid.szTip: = 「Iは、システムトレイに隠します」。 Shell_NotifyIcon(NID @ NIM_ADD、); ShowWindow(Application.Handle、SW_SHOWMINIMIZED)。 ShowWindow(Application.Handle、SW_HIDE)。 Timer1.Enabled: = 真; エンド; 手順 TForm1.wmTrayNotifyは(たメッセージ:TMessage); ました P:TPoint; 始める ならば(Msg.lparam = WM_LBUTTONDBLCLK) 、その後 始まります ShowWindow(Application.Handle、SW_SHOW)。 Shell_NotifyIcon(NID @ NIM_DELETE、); Timer1.Enabled: = falseは、 Application.Restore; 終了 他の IF(Msg.LParam = WM_RBUTTONUP) 、その後 始める GetCursorPos(P)を; // マウス座標取得 PopupMenu1.Popup(PX、PYを); //は、マウスカーソルでポップアップメニューを表示し 、エンド; エンド; 手順TForm1.N1Click(送信者:TObjectを); ベギン ShowWindow(Application.Handle、SW_SHOW)。 Shell_NotifyIcon(NID @ NIM_DELETE、); Application.Restore; Timer1.Enabled: = falseは、 エンド; 手順TForm1.N2Click(送信者:TObjectを); ベギン Application.Terminate; エンド; 手順TForm1.FormShow(送信者:TObjectを); ベギン Timer1.Enabled: = falseは、 エンド; 手順TForm1.Button2Click(送信者:TObjectを); 開始 ChangeFlagを: = 真; { アイコン:= TIcon.Create。 Icon.LoadFromFile( 'C:の\ Program Files \ Microsoft Office \ OFFICE11 \ MSN.ICO'); Nid.cbSize:=はsizeof(TNotifyIconData)。 Nid.Wnd:=ハンドル; Nid.uID:= 1000; Nid.uFlags:= NIF_MESSAGEまたはNIF_ICONまたはNIF_TIP。 Nid.uCallbackMessage:= WM_TRAYNOTIFY。 Nid.hIcon:= Icon.Handle。 Shell_NotifyIcon(NID @ NIM_MODIFY、); } 終わります。 手順TForm1.Timer1Timer(送信者:TObjectを); 開始し ている場合 ではない ChangeFlag その後、 出口; もし Aが、その後 始まる Nid.hIcon: = Icon.Handleを。 Shell_NotifyIcon(NID @ NIM_MODIFY、); A: = falseは、 上で プレゼンス を開始 Nid.hIconを: = Application.Icon.Handle。 Shell_NotifyIcon(NID @ NIM_MODIFY、); A: = 真; エンド; エンド; 手順TForm1.Button3Click(送信者:TObjectを); 開始 ChangeFlagを: = falseは、 エンド; 終わり。