Hogyan adjunk egy ikon a tálcán

hogyan kell hozzáadni egy ikon a tálcán?

Írásban programot. Szükséges, hogy ez alatt a lóg a tálcán. És ha a felhasználó rákattint az egérrel az ikonra a tálcán a program bontakozik ki.






Letöltöttem az interneten tények ebben a témában, de nincs egyértelmű.
Írtam ide ilyen eljárások:

eljárás TrayAdd ();
var p: PNOTIFYICONDATA;
# XA0; # XA0; N: szó;
kezdődik
# XA0; n: = RegisterWindowMessage (# 0);
# XA0; p.cbSize: =. ; Itt kell írni nem világos
# XA0; p.Wnd: = Form1.Handle;
# XA0; p.uID: = 1;
# XA0; p.uFlags: = NIF_MESSAGE vagy NIF_ICON;
# XA0; p.uCallbackMessage: = N;
# XA0; p.hIcon: = Form1.Icon.Handle;
# XA0; Shell_NotifyIcon (NIM_ADD, p);
végén;

eljárás TrayDelete ();
var p: PNOTIFYICONDATA;
kezdődik
# XA0; p.Wnd: = Form1.Handle;
# XA0; p.uID: = 1;
# XA0; Shell_NotifyIcon (NIM_DELETE, p);
végén;

// vvvvvvvvvvvv / Add Módosítás Törlés ikon / vvvvvvvvvvvvvvv
funkció AddModDelIcon (Szél: HWND; R, Nico: integer; ikon: HICON; S: string): Boole;
var n: TNotifyIconData;
kezdődik
# XA0; n.cbSize: = sizeof (TNotifyIconData);
# XA0; n.Wnd: = Szél;
# XA0; n.uID: = Nico;
# XA0; n.uFlags: = NIF_MESSAGE vagy NIF_ICON vagy NIF_TIP;
# XA0; n.uCallbackMessage: = WM_USER;
# XA0; n.hIcon: = Ikon;
# XA0; Lstrcpyn (n.szTip, PChar (S), sizeof (n.szTip));
# XA0; ha R = 1, akkor Eredmény: = Shell_NotifyIcon (NIM_ADD, @ N);






# XA0; ha R = 2, akkor Eredmény: = Shell_NotifyIcon (NIM_MODIFY, @ N);
# XA0; ha R = 3, akkor Eredmény: = Shell_NotifyIcon (NIM_DELETE, @ N);
végén;

Te kibaszott komoly válaszokat: o (((.
Már megfeszült megelőlegezve valamit, ami feltétlenül hozni a mosolyt: o)).
Sam azonban a VINAP ember (azaz amíg csak AP) shellexecute „erőlködés th: a |.

TÖBB Form1.Visible: = false;

vagy c ShowWindow (Form1.handle, SW_HIDE); Kísérlet ..
vagy c ShowWindow (Application.handle, SW_HIDE);

forma és stílus jobb megkérdezni Toolbox.

eljárás TForm1.FormCreate (Sender: TObject);
kezdődik
Application.ShowMainForm: = false;
végén;

eljárás TForm1.FormCreate (Sender: TObject);
kezdődik
# XA0; Application.ShowMainForm: = false;
.
végén;

Futás, alakja nem látható, amikor a program elindul.
Most, hogy ezt, ha a felhasználó rákattint az ikonra
„Összeomlását”, hogy a használt alkotnak eltűnt, amikor rákattint az ikonra a
tálcát, hogy a használt jelenik meg újra.

Így tettem:
eljárás TForm1.FormCreate (Sender: TObject);
kezdődik
# XA0; Application.OnMinimize: = minimalizálása;
# XA0; Application.ShowMainForm: = false;
.
végén;

eljárás TForm1.Minimize (Sender: TObject);
kezdődik
Form1.Visible: = false;
végén;

Elvileg működik, de van egy kis bökkenő.
Amikor elindít egy programot nincs forma, rákattintok a tálcán - formájában jelenik meg,
Rákattintok a „roll” forma eltűnik, kattintson a tálcán - van,
Rákattintok „minimálisra csökkentése” - opa # XA0 és nem tűnik el, vagy minimalizálni.
Megértem: a második hajtogatás formájában már hengerelt (I f ez nem
hajtogatás), így ez az esemény nem csak obraatyvaetsya.
Ie Rákattintok a tálcán után nem csak azért szükséges # XA0; Form1.Visible: = true;
hanem a forma, mert razvenut.
Tehát a kérdés: hogyan tudom telepíteni a szoftvert formában.

2Alaman [9]
használata:
SendMessage (fogantyú az ablak, WM_SYSCOMMAND, SC_MINIMIZE, 0);
vagy
ShowWindow (fogantyú oknp, SW_HIDE);
---
SC_RESTORE
vagy
SW_SHOW fordított hatást.