Thema: Delphi Threads erstellen

Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Threads erstellen

  Alt 15. Aug 2006, 20:07
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat