title: How to update the text in a tray icon balloon by hand?
body: <p>I use CoolTrayIcon component,but I can modify it by hand.What I want to accomplish is to update the text in the balloon i just created without actually creating another balloon.Problem is:</p>
  
  <pre><code>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;
  </code></pre>
  
  <p>I thought the problem is in the function HideBalloonHint,but I was wrong.I commented the call to HideBalloonHint at ShowBalloonHint in other to update the text,but it didn't work.</p>
  
  <p>Question:How to only update the text in the tray balloon without creating another balloon?</p>