Via Thread auf ein
VCL Objekt zugreifen geht nur über die Synchronize() Methode des Threads.
Eine Übergabe von Parametern von Functionen könnte so laufen:
Code:
type
TmyNewProc = procedure (max, position:Integer);
...
myThread= Class(TThread)
Proc: TmyNewProc; // nur Pointer !
constructor Create(.., varTmyNewProc: TmyNewProc,..)
...
im Hauptprogramm Thread.Create(..) mit Procedure übergeben
constructor myThread.Create;
begin
...
Proc:= varTmyNewProc;
...
end;
procedure myThread.Execute;
begin
...
Synchronize(test);
...
end;
procedure MyThread.Test;
...
Proc(80,8);
...
so aus'm Gedächtniss.
Übergebe dem Thread doch direkt die Progressbar. In der Execute() dass die Progressbar direkt aus dem Thread (Synchronize) aktualisieren.