[/delphi]
Jede Interaktion mit dem Hauptthread muss mit synchronize erfolgen.
Und damit erst recht jeder Zugriff auf
VCL-Komponenten.
Am Besipiel progressbar (dies gilt für alle anderen Variablen, Komponenten aus dem Haptthread genauso):
Delphi-Quellcode:
type
tmythread = class(TThread)
private
{ Private-Deklarationen }
incProgressbar:integer;
protected
procedure Execute; override; //in Execute kommen nur Sachen rein, die definitv nie auf Komponenten oder Variablen anderer Threads zugreifen
procedure updateProgressbar; //immer eigene Methoden für solche "Querzugriffe"
public
end;
implementation
procedure tmyThread.UpdateProgressbar;
begin
//hier möglichst zeitsparend (wenig befehle) arbeiten, sonst bringt der ganze Thread nix
progressbar.stepby(incProgressbar);
end;
procedure tmythread.Execute;
begin
//...
incprogressbar:=5;
synchronize(updateprogressbar); //Variablen kannst du am einfachsten über die private Deklaration des ThreadObjektes übergeben
//...
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.