Ich habe es jetzt endlich geschafft, auf die idFTP-Komponenten in den (OnWorkBegin, OnWork und OnWorkEnd)-Events zuzugreifen. Thx, jfheins, du hast mir nen guten Ansatz gegeben. Hier meine Lösung:
Delphi-Quellcode:
type
TidFTP_Thread = class(TidFTP)
private
{ Private declarations }
P_Thread : TPanel;
L_Thread : TLabel;
PB_Thread : TProgressbar;
procedure Thread_Disconnected(Sender: TObject);
procedure Thread_WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
procedure Thread_Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
procedure Thread_WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
end;
procedure TidFTP_Thread.Thread_Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
self.PB_Thread.Position:=AWorkCount;
end;
Zuweisung:
idFTP_Thread.OnWorkBegin:=idFTP_Thread.Thread_WorkBegin;
Ich habe jetzt einfach die Procedures in die idFTP-Klasse eingefügt anstatt in die Form-Klasse. Schließlich brauche ich nur noch
self auszuführen und schon habe ich die idFTP-Komponente, die dieses Event gerade ausführt. Ich muss also gar nicht
override benutzen und so die Procedures verändern.