Einzelnen Beitrag anzeigen

UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#1

TTaskBar Problem mit Initialize

  Alt 15. Mär 2018, 14:02
Ich möchte in einem vorhandenen größeren Projekt die TTaskBar Komponente verwenden und damit einen Progress im Taskbar-Icon darstellen.
Also eigentlich das übliche
Code:
Taskbar1.ProgressState := xxx
Nun, in diesem Projekt zeigt das Icon aber nichts an.
Erstelle ich ein neues Projekt und bau die TTaskbar ein, läuft es.

Bei der Suche bin ich nun darauf gestossen, dass beim einfachsten Testprojekt = eine leere Form, eine TTaskbar-Komponente und keine weitere Programmzeile, beim Programmaufruf in der Vcl.Taskbar.pas die Prozedur
Code:
procedure TCustomTaskbar.Initialize;
aufgerufen wird.
Was bei dem Zielprojekt aber nicht der Fall ist.
Das Initialize wird wiederum von der Prozedur procedure TCustomForm.WndProc(var Message: TMessage); in Vcl.Forms.pas angestossen mit
Code:
    else if Cardinal(Message.Msg) = RM_TaskBarButtonCreated then
      begin
        if FTaskbarHandler <> nil then
        begin
          TaskbarHandler.Initialize;
          TaskbarHandler.CheckApplyChanges;
        end;
Beim Debuggen kann ich feststellen, dass das nun nicht ausgeführt wird. Also kommt vermutlich keine entsprechende Message.
Ab da verliessen sie mich, ich weiss nicht, was die Ursache dafür sein könnte bzw. wie ich das herausfinden kann.

Der constructor TCustomTaskbar.Create(AOwner: TComponent); wird jedoch ausgeführt. Eine Zuweisung an ProgressState klappt auch, es passiert nur nichts.

Wenn ich nun selbst einen Aufruf Taskbar1.Initialize; starte (siehe dazu auch http://www.delphipraxis.net/193065-t...light=ttaskbar), dann gibt es eine Exception, weil dann die Initialize-Prozedure nun zweimal durchlaufen wird.

Kann mir da einer der Spezialisten weiterhelfen?

Grüsse
Uli
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat