AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TTaskbar mit Progress-Anzeige

Ein Thema von Gausi · begonnen am 10. Nov 2020 · letzter Beitrag vom 12. Nov 2020
Antwort Antwort
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#1

TTaskbar mit Progress-Anzeige

  Alt 10. Nov 2020, 18:55
Ich versuche gerade, meine bisher benutzte Taskbar-Komponente durch die seit einiger Zeit mitgelieferte TTaskbar zu ersetzen, um die Anzahl der verwendeten 3rd-Party-Komponenten zu reduzieren. Selbst gemaltes Vorschaubild und Taskbar-Buttons funktionieren nach ein paar kleinen Änderungen einwandfrei, aber die Fortschritts-Anzeige will nicht. Zumindest dann nicht, wenn ich zur Laufzeit den VCL-Style wechsle.

Interessanterweise bleibt die Fortschrittsanzeige erhalten, wenn ich entgegen der Anleitung Application.MainFormOnTaskbar := False; setze - nur sind dann nach einem Style-Wechsel die Buttons in der Vorschau weg.

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.
Angehängte Dateien
Dateityp: zip TTaskBar_Styles.zip (125,6 KB, 8x aufgerufen)
The angels have the phone box.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#2

AW: TTaskbar mit Progress-Anzeige

  Alt 10. Nov 2020, 23:08
Zitat:
oder ist das ein Bug in der Delphi-Komponente?
Nö. Wenn überhaupt dann in den VCL-Styles
Lass sie weg dann geht's doch. Oder?

Geändert von venice2 (10. Nov 2020 um 23:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TTaskbar mit Progress-Anzeige

  Alt 11. Nov 2020, 05:19
Nö. Wenn überhaupt dann in den VCL-Styles
Kannst du das irgendwie belegen oder näher erläutern, damit ich Ansätze habe, um den Fehler zu beheben oder zu umgehen? Knackpunkt an der Geschichte sind die Fensterhandles, wenn ich das richtig sehe. Bei einer Änderung des Styles werden (müssen?) die Fenster neu erstellt werden. Damit ändern sich auch die Handles, und das scheint Probleme zu machen. Die TTaskbar-Komponente bekommt diese Änderung nicht mit. Ich habe im Code leider noch nicht herausgefunden, warum der eine Teil funktioniert, und der andere nicht, und mit Änderung von MainFormOnTaskbar ist es genau andersrum.

Lass sie weg dann geht's doch. Oder?
Das ist keine Option.
The angels have the phone box.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#4

AW: TTaskbar mit Progress-Anzeige

  Alt 11. Nov 2020, 08:28
Zitat:
Kannst du das irgendwie belegen oder näher erläutern, damit ich Ansätze habe, um den Fehler zu beheben oder zu umgehen?
Wenn die Taskbar Komponente innerhalb der IDE (von Delphi selbst) ohne den VCL-Styles funktioniert wie sie soll dann ist sie doch in Ordnung oder nicht?
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:
Forces a top-level window onto the taskbar when the window is visible.
WS_EX_TOOLWINDOW
Zitat:
A tool window does not appear in the taskbar
WS_EX_NOACTIVATE
Zitat:
The window does not appear on the taskbar by default. To force the window to appear on the taskbar, use the WS_EX_APPWINDOW style.
Schaue also was von den VCL-Styles hier verbogen wird.
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.

Lass sie weg dann geht's doch. Oder?
Das ist keine Option.
Habe nicht gesagt du sollst sie weglassen sondern in deinem Example mal ausschalten ob die TaskBar (Progressbar\Buttons) ohne funktioniert.
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))

Geändert von venice2 (11. Nov 2020 um 09:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.203 Beiträge
 
Delphi 12 Athens
 
#5

AW: TTaskbar mit Progress-Anzeige

  Alt 11. Nov 2020, 09:33
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.
https://www.delphipraxis.net/205177-...rt-10-4-a.html

Und ich hatte auch die TJumpList nicht zusammen mit TTaskbar zum Laufen bekommen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Nov 2020 um 09:43 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: TTaskbar mit Progress-Anzeige

  Alt 11. Nov 2020, 09:37
Jupp, beim Wechsel des VCL-Styles wird das HWND des Fensters neu generiert und dabei gehen dannderartige Registrierungen verloren.

Versuch mal probehalber nach dem Umstellen die TTaskbar-Komponente zu löschen und neu zu erstellen ... geht es dann wieder?



Und bezüglich dem MainFormOnTaskbar, da stimmt auch irgendwie garnichts mehr.
https://www.delphipraxis.net/205177-...rt-10-4-a.html
Sagte ich schon!
Ja! das Fenster Handle wird jedesmal neu generiert.
Dynamisches erstellen der Kompo sollte das Problem eigentlich beheben.

Zitat:
Und ich hatte auch die TJumpList nicht zusammen mit TTaskbar zum Laufen bekommen.
Prüfe mal ob du die Freigabe dafür erstellt hast. (Win10) (Personalisieren\Taskleiste)

Geändert von venice2 ( 1. Dez 2020 um 15:05 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.856 Beiträge
 
Delphi 12 Athens
 
#7

AW: TTaskbar mit Progress-Anzeige

  Alt 11. Nov 2020, 18:12
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.
Ist das schon in QP gemeldet, damit es Mal hoffentlich
eine Lösung gibt?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz