ПредишенСледващото

Така че, това е втората част на моята малка "епос", посветен на иконата в системния трей.

Днес ще разгледаме и да научат как да се разгледа следните въпроси:
1. За да добавите изскачащо меню към иконата?
2. Как да се скрие основната форма на приложението при стартиране и pokazyvaet изскачащ си меню екип.

Програмата за модернизация е завършена. Вашата основна форма трябва да изглежда по следния начин:

Сега, нека да стигнем до въпросите, посочени в началото на тази статия.

На следващо място, нека да пишат код, работещи с щракване с мишката събития за всеки един от елементите на менюто:

Изберете "За" страница:
процедура TForm1.PAboutClick (Sender: TObject);
започвам
// Показване основната форма на открито на "Информация"
AboutClick (Form1); // Изпълнение на процедура като кликнеш върху "About" бутона
Form1.Show; // И това е този ред, ние показваме
// основна форма приложение.
Form1.Activate; //..i го активирате :)
приключи;

"Опции":
процедура TForm1.PSettingsClick (Sender: TObject);
започвам
// Описание преодолява горе :)
Form1.Show;
Form1.Activate;
приключи;

"Изход":
процедура TForm1.PExitClick (Sender: TObject);
започвам
В близост; // нормално излизане от програмата.
приключи;

И сега ние ще направим най-важните и най-интересното нещо: вземане на нашето меню "плувка" на иконата, докато натискане на десния бутон на мишката, и нашата основна форма на "шоу" чрез двукратно щракване с левия бутон на мишката.

намерите процедура IconCallBackMessage и надграждане в изходния код на програмата, така че тя изглеждаше, както е показано по-долу:

процедура TForm1.IconCallBackMessage (Var каша TMessage.);
Var Мишка: TMouse;
започвам
При Mess.lParam на
// Тук можете да се справят с всички събития, които се провеждат върху иконата :)
// На основната форма, аз специално поставя двете марки, в които,
// в случай на събитие ще бъде написано точно какво се е случило :)
// Сега във втората част при определени събития ще се случи
// действителните процеси.
WM_LBUTTONDBLCLK. // Обработете кликнете два пъти на левия бутон на мишката.
започвам
PSettingsClick (Form1); // Execute "Настройки" от менюто.
приключи;
WM_LBUTTONDOWN. TI_Event.Caption: = "ляв бутон на мишката;
WM_LBUTTONUP. TI_Event.Caption: = "принудително изключване левия бутон на мишката;
WM_MBUTTONDBLCLK. TI_DC.Caption: = "Кликнете два пъти върху средния бутон на мишката;
WM_MBUTTONDOWN. TI_Event.Caption: = "При натискане на средния бутон на мишката;
WM_MBUTTONUP. TI_Event.Caption: = "принудително изключване средния бутон на мишката;
WM_MOUSEMOVE. TI_Event.Caption: = "мишка ход;
WM_MOUSEWHEEL. TI_Event.Caption: = 'Въртенето на колелото на мишката ";
WM_RBUTTONDBLCLK. TI_DC.Caption: = "два пъти с десния бутон върху";
WM_RBUTTONDOWN. TI_Event.Caption: = "Кликнете с десния бутон";
WM_RBUTTONUP. // Дръжка щракване с десния бутон.
започвам
PopupMenu.Popup (Mouse.CursorPos.x, Mouse.CursorPos.y);
// принуди "Float" нашето меню :)
приключи;
приключи;
приключи;

От първия случай на двойно щракване с левия бутон на мишката, със сигурност е ясно - ние правим наричаме събитие манипулатор щракване на мишката върху "Настройки" от менюто.
Но с щракване с десния бутон не е вероятно по-трудно е тя? Е, всичко, за да:
В самото начало на процедурата, ние заявяваме типа обект, за Mouse TMouse. За по-късно да го използвате, за да разберете координатите на мишката върху екрана.
На следващо място, пишем на следния ред:
PopupMenu.Popup (Mouse.CursorPos.x, Mouse.CursorPos.y);
Значението му е лесно. Popup метод се използва за показване на екрана на менюто в даден момент. Това е мястото, където идват по-удобен обект на мишката. използване на свойствата на които ние знаем координатите на мишката върху екрана, докато натискане на десния бутон на мишката.
Но в менюто "изскачащи прозорци", има още един нюанс. Ако сега всички да оставим нещата такива, каквито са, че ще "виси" на загубата на фокус - това е, просто няма да изчезне. За да разрешите този бъг в събитието манипулатор OnPopup нашето меню въведете следното:
SetForegroundWindow (Form1.Handle);
По този начин, ние се уточни, че активното вещество е основната форма на нашата молба (дори и да не се вижда). И при превключване между приложения, тя губи своята дейност, и, следователно, изскачащо меню изчезва от погледа, защото Тя е дъщерно дружество обект по отношение на формата.

Това е в общи линии всичко :). ах, да. напълно забравена. В началото, ние сме се променили надписа на бившия бутона затворите прилагането на "Hide", т.е. Сега, когато натиснете, че е необходимо главния формуляр за кандидатстване "скрит". Е, това е направено просто в събитието манипулатор натискане на този бутон, въведете един ред:
Form1.Hide;
И сега всичко това! Надявам се, че докато четете тази поредица от статии ви става все по-лесно и по-лесно да разберат основите на работата с иконата на приложението в системния трей :)
Сорс кодът за тази статия може да бъде изтеглена от тук.

Подкрепете проекта - споделете линка, благодаря!