Denne artikkelen vil vise deg hvordan du starter en applicacion minimeres med et ikon i systemstatusfeltet (området til høyre for oppgavelinjen) LEGGE INN EN ikonet i system TRAYThe systemstatusfeltet er området til høyre på oppgavelinjen hvor "Bakgrunn" programmer kan plassere sine ikoner. Å plassere et ikon i skuffen du må ringe Shell_NotifyIcon API deklarert i ShellAPI enhet, passerer det konstant NIM_ADD (for å si det å legge et ikon) og adressen til en TNotifyIconData rekord med ikonet informasjon som inkluderer håndtaket å vise, teksten vises som verktøytips når musen er over ikonet, håndtaket på vinduet som skal motta meldinger om ikonet og meldingen skriver ikonet vil sende til dette vinduet. bruker ..., ShellAPI; konst WM_ICONTRAY = WM_USER + 1; //Bruker definerte meldingstype ... Var ... NotifyIconData: TNotifyIconData; implementering prosedyre TForm1.FormCreate (Sender: TObject); begynne med NotifyIconData vet begynner HICON: = Icon.Handle; StrPCopy (szTip, Application.Title); Vind-: = Håndtak; uCallbackMessage: = WM_ICONTRAY; UID: = 1; uFlags: = NIF_MESSAGE + NIF_ICON + NIF_TIP; cbSize: = sizeof (TNotifyIconData); slutt; Shell_NotifyIcon (NIM_ADD,NotifyIconData); end; HÅNDTERING ICON MESSAGESForm1 vil motta WM_ICONTRAY meldinger fra ikonet. Å fange og håndtere disse meldingene vi har til å erklære en ny metode i vår form. For eksempel: skriv TForm1 = klasse (TForm) ... private {felleserklæringer} ... prosedyre Icontray (var Msg: TMessage); Meldingen WM_ICONTRAY; offentlige {offentlige erklæringer} ... end; I gjennomføringen av denne metoden kan vi for eksempel vise en pop-up menyen når brukeren høyreklikker på ikonet. Antar du har opprettet en pop-up meny som heter PopupMenu1, vil følgende kode gjøre susen: prosedyre TForm1.Icontray (var Msg: TMessage); Var CursorPos: TPoint; begynne hvis Msg.lParam = WM_RBUTTONDOWN deretter begynne GetCursorPos (CursorPos); PopupMenu1.Popup (CursorPos.x, CursorPos.y); ende annet arvet; enden, vise og skjule FORMNormally du vil inkludere et menyelement i pop-up-menyen for å vise form, så alt du trenger å gjøre er å skrive en hendelseshåndterer å ringe Show metoden på formen og eventuelt fjerne ikonet fra systemstatusfeltet: prosedyre TForm1.mnuShowClick (Sender: TObject); begynne Show; //Shell_NotifyIcon (NIM_DELETE,NotifyIconData); enden, når brukeren lukker skjemaet, kan du for eksempel skjule det i stedet for å lukke det, og eventuelt vise ikonet på nytt i systemstatusfeltet hvis du har fjernet det når du har gjort form synlig. For eksempel: prosedyre TForm1.FormClose (Sender: TObject; Var Handling: TCloseAction); begynne Handling: = canone; Gjemme seg; //Shell_NotifyIcon (NIM_ADD,NotifyIconData); ende; Avslutte APPLICATIONYou kan ha et menypunkt i pop-up-menyen for å avslutte programmet. I dette tilfellet må du skrive en hendelseshåndterer for sin klikkhendelsen å fjerne ikonet og avslutt programmet: prosedyre TForm1.mnuExitClick (Sender: TObject); begynne Shell_NotifyIcon (NIM_DELETE,NotifyIconData); Application.ProcessMessages; Application.Terminate; ende; The full kildekode eksempel på denne artikkelen kan lastes ned fra: http: //www.latiumsoftware.com/download/d00035.zip
Starte et program som et ikon i system tray
Previous:Forenklet serversiden processing