- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Szólánc.
- MasterDeeJay: Alacsony fogyasztású házi szerver a korábbi projektekből összeépítve
- Argos: Adjátok vissza a netet! - szeretnék elaludni!
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Pajac: Átlátszó fém
- Magga: PLEX: multimédia az egész lakásban
- Luck Dragon: Asszociációs játék. :)
Aktív témák
-
zenit
tag
Nem tippelgetek tovább, valahogy így kellene csinálnod:
(hosszú lesz, de igazából egyszerű. :) )
const
WM_NOTIFY_ICON = WM_USER;
type
TMainForm = class(TForm)
PopupMenu: TPopupMenu;
MenuShow: TMenuItem;
MenuExit: TMenuItem;
HideButton: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure MenuShowClick(Sender: TObject);
procedure MenuExitClick(Sender: TObject);
procedure HideButtonClick(Sender: TObject);
private
procedure AddNotifyIcon;
procedure DeleteNotifyIcon;
procedure WMNotifyIcon(var Msg: TMessage); message WM_NOTIFY_ICON;
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.AddNotifyIcon;
var
NotifyIconData: TNotifyIconData;
begin
FillChar(NotifyIconData, SizeOf(NotifyIconData), 0);
with NotifyIconData do
begin
cbSize := SizeOf(NotifyIconData);
Wnd := Handle;
uID := 0;
uFlags := NIF_ICON or NIF_MESSAGE;
uCallbackMessage := WM_NOTIFY_ICON;
hIcon := Icon.Handle;
end;
Shell_NotifyIcon(NIM_ADD, Addr(NotifyIconData));
end;
procedure TMainForm.DeleteNotifyIcon;
var
NotifyIconData: TNotifyIconData;
begin
FillChar(NotifyIconData, SizeOf(NotifyIconData), 0);
with NotifyIconData do
begin
cbSize := SizeOf(NotifyIconData);
Wnd := Handle;
uID := 0;
end;
Shell_NotifyIcon(NIM_DELETE, Addr(NotifyIconData));
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
AddNotifyIcon;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
DeleteNotifyIcon;
end;
procedure TMainForm.WMNotifyIcon(var Msg: TMessage);
var
P: TPoint;
begin
case Msg.lParam of
WM_LBUTTONDOWN,
WM_LBUTTONDBLCLK:
Show;
WM_RBUTTONDOWN:
begin
GetCursorPos(P);
PopupMenu.Popup(P.X, P.Y);
end;
end;
end;
procedure TMainForm.MenuShowClick(Sender: TObject);
begin
Show;
end;
procedure TMainForm.MenuExitClick(Sender: TObject);
begin
Close; // Elég a Close, mert ez a főform.
end;
procedure TMainForm.HideButtonClick(Sender: TObject);
begin
Hide;
end;
------------
Na, ez így működik.
[Szerkesztve] -
zenit
tag
Mindegy, mit írsz az Msg.Result-ba, mert az inherited miatt a TCustomForm.WMQueryEndSession-je úgyis felülírja neked.
A WM_QUERYENDSESSION-ben elvileg semmilyen Close meg egyéb műveletet nem kellene végrehajtanod, mert utána még úgyis jön egy WM_ENDSESSION, amire az alkalmazás magától kilép.
Ez a Delphi-ben már meg van írva, neked nem is kell vele foglalkoznod.
(Ha van a Formnak CloseQuery-je, akkor ott True-val kell visszatérned, hogy a QueryEndSession is True-val térhessen vissza.)
A DeleteTrayIcon meg egyéb dolgokat a TForm.OnDestroy eseményébe kell raknod.
Aktív témák
Hirdetés
- Egérpad topik
- Napelem
- Milyen monitort vegyek?
- Házimozi haladó szinten
- Filmvilág
- Autós topik
- exHWSW - Értünk mindenhez IS
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- GL.iNet Flint 2 (GL-MT6000) router
- További aktív témák...
- Vegyes szimulátoros kiegészítők
- HP Spectre x360 Érintős Hajtogatós Laptop Tab 16" -60% i7-13700H 16/1TB Iris Xe 3K+
- Dell 27" UltraSharp U2713HM QHD 2560x1440 IPS DP/DVI/HDMI/VGA monitor - PIVOT is - több db
- Apple MagSafe töltő
- Dell UltraSharp U2412m monitor -több db - 1920x1200 full HD+ IPS panel PIVOT is!
- Xbox Ultimate előfizetések
- Tablet felvásárlás! Samsung Galaxy Tab S10+, Samsung Galaxy Tab S10 Ultra, Samsung Galaxy Tab S10 FE
- BESZÁMÍTÁS! 1TB Samsung 980 Pro NVMe SSD meghajtó garanciával hibátlan működéssel
- Playstation 4 Slim 11.00 GoldHEN 500GB - Előre telepített PS4 játékokkal
- Ventillátorok és tápkábel modding kitűnő árakon! Most extra 10% kedvezmény!
Állásajánlatok
Cég: FOTC
Város: Budapest