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