Cześć Wszystkim
Używam następującej procedury chowania programu z paska zadań i umieszczania
go w tray-u (poniżej)
jednak gdy chcę uruchomić program zminimalizowany (tradycyjnymi sposobami)
wtedy pojawia mi się zminimalizowane okno (a raczej taki krótki pasek główny
okna) tuż koło przycisku START (takie podobne do tego z win 3.11 :( )
Jak temu zaradzić żeby ten pasek nie pojawiał się a program umieszczony
został w tray-u i skasowany z paska zadań windows ?????
robię to pod win2k ale w innych windows-ach też chciałbym żeby działało
dzięki za odpowieź
(w zamian zainteresowanym mogę przesłać mój program "Impuls" dla osób łączących się z netem przez modem)
- Jak dodać ikonę programu do Tray'a. ( ikonka obok zegara Windows ).
Oto kod. Aha, dodaj do listy modułów słowo "ShellAPI". - Do sekcji private dodaj takie pozycje:
IconNotifyData : TNotifyIconData;
procedure WndProc(var Msg : TMessage); override; - Teraz w OnCreate wpisz taki oto kod:
with IconNotifyData do
begin
hIcon:=Application.Icon.Handle;
uCallbackMessage:=WM_USER+1;
cbSize:=SizeOf(IconNotifyData);
Wnd:=Handle;
uID:=100;
uFlags:=NIF_MESSAGE+NIF_ICON+NIF_TIP;
end;
-
Kopiujemy tytuł aplikacji jako "dymek"
StrPCopy(IconNotifyData.szTip, Application.Title); -
Dodajemy ikonę do traya
Shell_NotifyIcon(NIM_ADD,@IconNotifyData);
Następnie uzupełnij procedure "WndProc" w taki oto sposób:
procedure TMainFrm.WndProc(var Msg : TMessage);
var
p : TPoint;
begin
{
Ta procedura służy do przechwytywania komunikatów po naciśnięciu przycisku w
obrębie ikony.
}
*Jezeli nacisnieto prawym przyciskiem myszy
if (Msg.Msg=WM_USER+1) and (Msg.lParam = WM_RBUTTONDOWN) then
begin
*Nastepuje pobranie pozycji kursora myszki
GetCursorPos(p);
*i wyswietlenie menu
TrayMenu.Popup(p.x, p.y);
end;
*Jezeli nacisnieto lewy przycisk nastepuje wyswietlenie //formy
if Msg.LParam = WM_LBUTTONDOWN then
MainFrm.Show;
inherited;
end;
Dodatkowo przy zamykaniu programu możesz dopisać linie:
Shell_NotifyIcon(NIM_DELETE, @IconNotifyData);
Usuwa ona ikone z Tray'a.