Das wird aber nur von Windows als Notification an die Application wenn der Balloon verschwindet. Es ist keine Message um das zu steuern.
Der korrekte Weg ist das BalloonHint Property einfach leer zu setzen. Den nachfolgenden ShowBalloonHint-Aufruf kann man sich sparen. Übrigens auch das Leeren des BalloonTitle.
Hmmm, das kann ich so nicht nachvollziehen.
(Delphi 12.1) Ich habe mir 2 Buttons auf ein Formular gezogen und folgenden Code eingefügt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
TrayIcon1.BalloonHint := 'This is a Balloon Hint ' + formatdatetime('hh:mm:ss.zzz', now);
TrayIcon1.BalloonTitle := 'Hint Title';
TrayIcon1.ShowBalloonHint;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TrayIcon1.BalloonHint := '';
end;
Jetzt klickt man 5 mal abwechselnd (im Sekundentakt) auf Button1 und Button2. Der erste Hint verschwindet noch wenn man Button2 klickt. Dann kommen aber nach jeweils ca. 10 Sekunden die restlichen Hints (mit einem Zeitstempel der ca. eine Sekunde auseinander liegt).
Da wird also scheinbar nicht gelöscht sondern eine Warteschlange angelegt.