2009-08-24 45 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

相關問題