Thema: Delphi Balloonhints

Einzelnen Beitrag anzeigen

Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#1

Balloonhints

  Alt 25. Jul 2003, 22:49
Hallo Leute
kennt jemand den Komponenten TCoolTrayIcon? Das ist eigentlich eine Kapselung der WinAPI Befehle für ein Systray-Icon. Dieser Code geht auch.

Zusätzlich bietet der Kompo aber auch eine Funktion zum anzeigen von Baloon-Hints. Diese funktionieren bei mir nicht (keine Reaktion), obwohl ich unter Windows XP teste.

Wer den Kompo nicht kennt, dem extrahiere ich hier mal den meiner Meinunf nach relevanten Code:

Delphi-Quellcode:
var IconData: TNotifyIconDataEx; // Data of the tray icon wnd.

.
.
.

function TCoolTrayIcon.ShowBalloonHint(Title: String; Text: String;
  IconType: TBalloonHintIcon; TimeoutSecs: TBalloonHintTimeOut): Boolean;
// Show balloon hint. Return false if error.
const
  aBalloonIconTypes: array[TBalloonHintIcon] of Byte =
    (NIIF_NONE, NIIF_INFO, NIIF_WARNING, NIIF_ERROR);
begin
  // Remove old balloon hint
  HideBalloonHint;
  // Display new balloon hint
  with IconData do
  begin
    uFlags := uFlags or NIF_INFO;
    StrLCopy(szInfo, PChar(Text), SizeOf(szInfo)-1);
    StrLCopy(szInfoTitle, PChar(Title), SizeOf(szInfoTitle)-1);
    TimeoutOrVersion.uTimeout := TimeoutSecs * 1000;
    dwInfoFlags := aBalloonIconTypes[IconType];
  end;
  Result := ModifyIcon;
  { Remove NIF_INFO before next call to ModifyIcon (or the balloon hint will
    redisplay itself) }

  with IconData do
    uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP;
end;

function TCoolTrayIcon.HideBalloonHint: Boolean;
// Hide balloon hint. Return false if error.
begin
  with IconData do
  begin
    uFlags := uFlags or NIF_INFO;
    StrPCopy(szInfo, '');
  end;
  Result := ModifyIcon;
end;

.
.
.

function TCoolTrayIcon.ModifyIcon: Boolean;
// Change icon or tooltip if icon already placed
begin
  Result := False;
  if InitIcon then
    Result := Shell_NotifyIcon(NIM_MODIFY, @IconData);
end;
woran liegt es? An meinem Aufruf kann es nicht liegen, da die Beispiele der CoolIcons nicht funktionieren.
Andererseit funktionieren andere Anwendungen (eMule, ZoneAlarm) Problemlos mit BalloonHints

Wer kann helfen

Danke
TheOmega
  Mit Zitat antworten Zitat