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 ...