Das Ding will nunmal nur eine Objekt-Methode, also mußt du auch Eine übergeben, so wie es dir die Fehlermeldung auch sagt.
Zitat:
Delphi-Quellcode:
procedure TIdThreadComponent.Synchronize(AMethod: TThreadMethod); // <<<<<< TThreadMethod !!!
begin
FThread.Synchronize(AMethod);
end;
PS:
Delphi-Quellcode:
TThread.Synchronize(nil, procedure
begin
...
end);
Falls die
Indy-Leute in neueren Versionen (nach XE3) es endlich geschafft haben auch die generischen Methoden durchzureichen, oder den interen TIdThreadEx zugänglich machen, dann kannst du natürlich auch diese verwenden.
Und statt IdThreadComponent1 solltest du im IdThreadComponent1Run auch besser den Sender verwenden. (aus dem Selben Grund, warum man nicht innerhalb von TForm1 das Form1 verwendet)