Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi TTrayIcon ShowBalloonHint 20x seit Windows 11 (https://www.delphipraxis.net/215145-ttrayicon-showballoonhint-20x-seit-windows-11-a.html)

stalkingwolf 16. Mai 2024 15:52

TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Delphi 11.

seit Windows 11 wird ShowBalloonHint 20x im NotificationCenter von Windows angezeigt.
In Windows 10 nur 1x.
Ist das ein Bug von Delphi?

kann man ganz einfach testen:
Neues Projekt. TTrayIcon drauf.
Eigenschaften :
Animated := TRUE
visible :=TRUE;
BallonFlag = btInfo;
BalloonHint:='Test;
BalloonTitle:= 'Test;

im Quellcode -> trayicon1.ShowBalloonHint;

Nun sieht man im NotificationCenter wie die Meldung auf +20 hochgezählt wird.

Lässt man das gleich in Windows 10 laufen kommt nur eine Notification rein.

jaenicke 16. Mai 2024 16:11

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Das ist bei mir auch so. Es wird aber mit NIM_MODIFY an Windows übermittelt. Das sieht eher nach einem Bug in Windows aus.

stalkingwolf 17. Mai 2024 09:15

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Ok verstehe.
Gibt es eine Alternative die Notification zu generieren?
Finde die ganze praktisch und unsere Kunden finden das auch gut. Aber einige beschweren sich das Sie zugebombt werden oder die Anzeige unten rechts flackert.

Zum Glück setzen von unseren Kunden nicht so viele auf 11. Die sind alle auf 10 umgestiegen und werden wohl 11 überspringen.

TurboMagic 17. Mai 2024 11:20

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Wen triggert man da jetzt am besten wie an um das zu beseitigen?
Ok, man könnte einen bugreport bei EMBT aufmachen, aber wenn Windows die Ursache ist,
ist das ja nicht zielführend.

=> wie mache ich einen Bugreport gegenüber Microsoft/Windows auf?

Uwe Raabe 17. Mai 2024 12:04

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Zitat:

Zitat von TurboMagic (Beitrag 1536796)
=> wie mache ich einen Bugreport gegenüber Microsoft/Windows auf?

Über Feedback Hub, erreichbar über die Tastenkombination Windows-F.

jaenicke 17. Mai 2024 12:34

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Aber du benutzt auch wirklich ein animiertes Icon? Du könntest die Animation vielleicht für die Zeit stoppen?

stalkingwolf 17. Mai 2024 13:15

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Ohne animate wird es in der Tat nur 1x in das NotificationCenter gesetzt.

Michael II 17. Mai 2024 14:03

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Ich halte das eher für ein Problem von Delphi. Zumindest in meinem Delphi 11.2.

Da du das Icon animierst, wird via Timer DoAnimate aufgerufen (und die Icons werden wie erwartet korrekt in Windows 11 angezeigt).

Wenn du trayicon1.ShowBalloonHint; ausführst
wird FData.uFlags gesetzt:
FData.uFlags := FData.uFlags or NIF_INFO;

Und während dem DoAnimiate wird dieser Wert im Refresh des TryIcons fortan an Windows übergeben. Da NIF_INFO gesetzt bleibt, wird im Notification Center bei jeder Iconanimation ein "NIF_INFO Wunsch" abgesetzt. Windows zeigt zum Glück nur die ersten 20 an ;-).

Lösung: Nach Anzeige des Balloons das Flag NIF_INFO aus FData.uFlags entfernen.


Dies hilft bei meinem Delphi 112 und Windows 11:
Delphi-Quellcode:
procedure TCustomTrayIcon.ShowBalloonHint;
var HuFlags : UINT;
begin
  HUFlags := FData.uFlags;
  FData.uFlags := FData.uFlags or NIF_INFO;
  FData.dwInfoFlags := Cardinal(FBalloonFlags);
  Refresh(NIM_MODIFY);
  FData.uFlags := HUFlags; // nehme hier an, dass Delphi nicht noch mehr ... baut und NF_INFO nicht in HUFlags ist
  // alternativ dazu könnte man NF_INFO explizit löschen
end;
Du schreibst, dass frühere Windows Versionen nicht betroffen sind: Ich nehme an, dass frühere Versionen eine erneute gleiche Anfrage ignoriert haben.

TurboMagic 19. Mai 2024 09:39

AW: TTrayIcon ShowBalloonHint 20x seit Windows 11
 
Hallo,

ok, das sieht ja jetzt scheinbar nach einem Bug in Delphi aus.
Da wäre es toll, wenn der originale Poster mal unter quality.embarcadero und unter
https://qp.embarcadero.com/ nachschauen würde ob das schon erfasst ist und falls nicht
bitte erfasst. Dann besteht die Chance, dass EMBT das korrigiert.

Grüße und schönen Feiertag
TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz