2009-08-24 52 views
1

我用CoolTrayIcon组成部分,但我可以通过hand.What我要完成修改它更新我只是没有真正创建另一个balloon.Problem创建气球文本:如何手动更新托盘图标气球中的文本?

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; 

我以为问题是在功能HideBalloonHint,但我wrong.I其他评论调用HideBalloonHint在ShowBalloonHint更新文本,但没有奏效。

问题:如何只而不创建另一个气球更新在托盘气球的文本?

回答

2

看来,如果InitIcon是真实的你的图标时,才设置。将您的modifyIcon过程更改为:

function TCoolTrayIcon.ModifyIcon: Boolean; 
// Change icon or tooltip if icon already placed 
begin 
    Result := Shell_NotifyIcon(NIM_MODIFY, @IconData); 
end; 

或在调用ModifyIcon之前将InitIcon设置为true。

EDIT-- 用于@IconData的记录格式是documentedshell_NotifyIcon呼叫沿MSDN网站上。根据规范所阅读的内容,您应该能够传递与最初发送更新相同的记录,因为这不起作用,您可能需要采取另一种方法。

创建“自己的”气球提示的形式,它只是在你的任务图标的位置,并直接对其进行更新。这将消除多个气球窗口。

+0

它还创建两个baloons。 – 2009-08-24 19:43:52

相关问题