![]() |
TTaskbar mit Progress-Anzeige
Liste der Anhänge anzeigen (Anzahl: 1)
Ich versuche gerade, meine
![]() Interessanterweise bleibt die Fortschrittsanzeige erhalten, wenn ich entgegen der Anleitung
Delphi-Quellcode:
setze - nur sind dann nach einem Style-Wechsel die Buttons in der Vorschau weg. :stupid:
Application.MainFormOnTaskbar := False;
Gibt es eine Möglichkeit, beides zu nutzen, oder ist das ein Bug in der Delphi-Komponente? Minimal-Projekt ist im Anhang (Fortschritt ist an die Trackbar gekoppelt). Ich nutze die Community-Edition in Version 10.3. |
AW: TTaskbar mit Progress-Anzeige
Zitat:
Lass sie weg dann geht's doch. Oder? |
AW: TTaskbar mit Progress-Anzeige
Zitat:
Zitat:
|
AW: TTaskbar mit Progress-Anzeige
Zitat:
Was muss man dann belegen? Es gibt drei Extended Window Styles die Einfluss darauf haben könnten (Und ich denke diese werden von den VCL-Styles verbogen). WS_EX_APPWINDOW Zitat:
Zitat:
Zitat:
So wie mir bekannt ist kann der WS_EX_TOOLWINDOW Extended Window Styles nur geändert werden wenn das Fenster bzw. die Anwendung neu gestartet wird. Musst halt mal testen. Zitat:
Wenn ja dann liegt es an den VCL-Styles. Mein Vorschlag wäre die Taskbar Komponente dynamisch zu erstellen. Denn die welche auf deiner Form liegt ist beim wechsel auf einen anderen VCL-Style nicht mehr gültig. (Das Interface ITaskBarList3 wird beim wechsel auf ein anderes HWND (Fenster zerstört)) |
AW: TTaskbar mit Progress-Anzeige
Jupp, beim Wechsel des VCL-Styles wird das HWND des Fensters neu generiert und dabei gehen dann derartige Registrierungen verloren.
Betrifft z.B. auch einige Drag&Drop-Komponenten. Versuch mal probehalber nach dem Umstellen die TTaskbar-Komponente zu löschen und neu zu erstellen ... geht es dann wieder? Du könntest dich vermutlich hier auch ins TWinControl.CreateWnd bzw. CreateHandle der Form reinhängen und dort darauf reagieren. Bezüglich dem MainFormOnTaskbar, da stimmt auch irgendwie garnichts mehr. ![]() Und ich hatte auch die TJumpList nicht zusammen mit TTaskbar zum Laufen bekommen. :( |
AW: TTaskbar mit Progress-Anzeige
Zitat:
Ja! das Fenster Handle wird jedesmal neu generiert. Dynamisches erstellen der Kompo sollte das Problem eigentlich beheben. Zitat:
|
AW: TTaskbar mit Progress-Anzeige
Naja, "beheben" würde es das Problem, wenn die Komponente von selbst drauf reagiert.
Das Wechseln des Styles ist ja nicht das einzige Ereignis, welches die HWNDs neu erstellt, bzw. freigab. Da reicht seit Jahrzehnten schon das Ändern von FormStyle, AlphaBlend oder anderen noch viel hamloseren Dingen, wie mit'm RDP neu verbinden. :stupid: Badges: Jupp, ist aktiv. Firefox, Explorer und selbst Notepad können es. :angle2: |
AW: TTaskbar mit Progress-Anzeige
Zitat:
Für mich persönlich sind die Styles ein NOGO aber jedem das seine. Hier ist meine .odl (Object Definition Language) Daraus kann man seine TypeLib erstellen dann benötigt man keine Komponente. (Ok für VB, sollte aber für Delphi schnell umzuschreiben sein, c++ syntax) |
AW: TTaskbar mit Progress-Anzeige
Zitat:
eine Lösung gibt? |
AW: TTaskbar mit Progress-Anzeige
Danke für die Antworten! Das mit dem dynamischen Erstellen der TTaskbar nach dem Style-Wechsel klappt.
Gibt noch ein paar kleine Fallstricke dabei:
Mit der Lösung kann ich gut leben. Scheint soweit zu klappen, zumindest in dem Testprojekt. Und jetzt verstehe ich auch die Aussage, dass der Bug wohl auf Seite der Styles liegt. Der StyleManager kümmert sich darum, dass das Fenster und alles drumherum neu erstellt wird, also müsste das auch für diese Komponente gelten. Tut er aber allem Anschein nach nicht (oder nicht vollständig). Eine andere Möglichkeit wäre ja auch, dass die TTaskbar-Komponente auf den Stylewechsel reagieren könnte bzw. irgendwie mit wechselnden Handles klar kommen müsste. Dann wäre der Bug dort zu suchen gewesen. ;-) |
AW: TTaskbar mit Progress-Anzeige
Fein das es nun Funktioniert
Zitat:
WS_EX_APPWINDOW Zitat:
Zitat:
Du kannst nicht erwarten das Developer die diese Komponenten erstellen in irgendeiner weise auf die VCL-Styles Rücksicht nehmen müssen\sollten. Es ist die Aufgabe des VCL-Styles Entwickler eine entsprechende Komponente für die TTaskbar zu entwickeln die mit den VCL-Styles zurecht kommen wenn er schon so tief in das Windows System eingreift. Oder man muss selber etwas stricken damit es läuft. :stupid: |
AW: TTaskbar mit Progress-Anzeige
@TurboMagic: Meinst die verlorenen Handle, welche neu erstellt werden?
Ne, das ist einfach so und wird sich nicht ändern. Da dachte jemand "mach ich's mir einfach und erstell alles neu", aber im Grunde gibt es ja auch die passenden Ereignisse/Methoden, wo man das Verlorene neu erstellen/registrieren kann. :stupid: |
AW: TTaskbar mit Progress-Anzeige
Zitat:
Wie du schon sagtest Drag&Drop jetzt hier TTaskbar und bestimmt noch einige mehr. |
AW: TTaskbar mit Progress-Anzeige
Theoretisch würde es auch TTimer betreffen, aber weil man dort noch weitere Probleme hatte, erstellen die sich jeder sein eigenes (unsichtbares) Window.
Sowas geht aber nur bei Dingen, die eben nicht direkt an einem bestimmten Fenster/Control hängen müssen. |
AW: TTaskbar mit Progress-Anzeige
Zitat:
|
AW: TTaskbar mit Progress-Anzeige
Zitat:
Wie viele offene QP's gibt es noch mal? Und wie viele Jahre willst du dann darauf hoffen das etwas passiert? Erstell doch einfach die Anfrage und gut ist wenn du so heiß darauf bist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 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