[Delphi+Winapi] Tray i znikająca ikonka

0

Próbuję dodać ikonkę w trayu do programu napisanego w winapi. Używam takiego kodu:

  FillChar(Tray, SizeOf(TNotifyIconData), 0);
  Tray.cbSize:=SizeOf(TNotifyIconData);
  Tray.Wnd:=WHandle;
  Tray.uFlags:=NIF_ICON + NIF_TIP + NIF_MESSAGE;
  Tray.uCallbackMessage:=WM_USER+1;
  Tray.hIcon:=LoadIcon(0, IDI_WINLOGO);
  Tray.szTip:='hint';
  Shell_NotifyIcon(NIM_ADD, @Tray);

Ikona owszem, pojawia się, ale jak tylko na nią najadę myszą, natychmiast znika. Kod jest praktycznie taki sam, jak w http://www.swissdelphicenter.com/en/showcode.php?id=1303. Jeśli ten komponent stworzę w programie, to działa. Jeśli użyję kodu z niego, dzieją się wyżej opisane rzeczy... Pewnie jakiś banalny błąd, ale ja go nie wiedzę. O co może chodzić?

0

Prawdopobnie uchwyt jest nieprawidłowy, jak zamiast WHandle dasz GetDesktopWindow to już nie powinno znikać (nie sprawdzałem), ale pulpit jako uchwytu to nie najlepszy pomysł.

0

Znajdź w tym serwisie mój TTrayIcon - ma dostarczone pełne źródła - łatwo zajrzeć.

0
Szczawik napisał(a)

Znajdź w tym serwisie mój TTrayIcon - ma dostarczone pełne źródła - łatwo zajrzeć.

Właśnie ze źródeł działającego dobrze komponentu (tego ze swissdelphicenter) korzystałem :]. Ale problem już rozwiązany, rzeczywiście uchwyt był zły. Zaćmiło mnie i za późno dałem CreateWindowEx() :P.

1 użytkowników online, w tym zalogowanych: 0, gości: 1