Delphi-Quellcode:
//Threadklasse deklarieren und Execute überschreiben
type
TSelfThread = class(TThread)
procedure Execute; override;
end;
//Threadvariable deklarieren
var
SelfThread: TSelfThread;
[..]
procedure TSelfThread.Execute;
begin
Sleep(10);
end;
procedure Form1Create(Sender: TObject);
begin
SelfThread := TSelfThread.Create(true); //Thread inaktiv erzeugen
SelfThread.FreeOnTerminate := true; //Thread nach dem Beenden freigeben
SelfThread.Resume; //Thread aktivieren
end;
soll der Thread eventuell mit übergeben Werten arbeiten und etwas zurückgeben:
Delphi-Quellcode:
//Threadklasse deklarieren und Execute überschreiben
type
TSelfThread = class(TThread)
Value: integer;
InternI: integer;
procedure Execute; override;
procedure UpdateProgress;
end;
//Threadvariable deklarieren
var
SelfThread: TSelfThread;
[..]
procedure TSelfThread.UpdateProgress;
begin
Form1.ProgressBar1.Position := InternI;
end;
procedure TSelfThread.Execute;
var
i,
int: integer;
begin
for i := 0 to Value do
begin
int := int + 20;
InternI := i;
Synchronize(UpdateProgress);
end;
end;
procedure Form1Create(Sender: TObject);
begin
//Der Fortschrittsanzeige die Max und Min Werte zuweisen
ProgressBar1.Min := 0;
ProgressBar1.Max := 50;
ProgressBar1.Position := 0;
SelfThread := TSelfThread.Create(true); //Thread inaktiv erzeugen
SelfThread.FreeOnTerminate := true; //Thread nach dem Beenden freigeben
SelfThread.Value := 50; //Werte übergeben
SelfThread.Resume; //Thread aktivieren
end;
Das wars eigentlich schon.
Florian