Einzelnen Beitrag anzeigen

Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#1

Mein TThread blockiert die Anwendung

  Alt 3. Okt 2005, 18:16
Hallo,
ich möchte eine von mir geschriebenen Klasse im Hintergrund meiner Applikation laufen lassen.
Ich möchte diese Klasse aber über Buttons "bedienen" können.
Diese Klasse soll dann z.B. einen Labeltext oder andere Dinge verändern.

Hier mein Beispielcode, der eigentlich nur dauern den Labeltext von 1 bis 100 ändern soll:

Delphi-Quellcode:
unit UnitThread;

interface

uses Classes, ExtCtrls, Windows, StdCtrls;

type
  TMeinThread = class(TThread)
  private
    { Private-Deklarationen }
    Text: TLabel;
    procedure machen;
  protected
    procedure Execute; override;
  public
    { Public-Deklarationen }
    constructor Create(_Text: TLabel);
  end;

implementation

uses SysUtils;

constructor TMeinThread.Create(_Text: TLabel);
begin
  inherited Create(false);
  Priority := tpNormal;
  Text := _Text;
end;

procedure TMeinThread.Execute;
begin
  while not Terminated do begin
    Synchronize(machen);
  end;
end;

procedure TMeinThread.machen;
var
  i: integer;
begin
  for i := 1 to 100 do begin
    Text.Caption := IntToStr(i);
  end;
end;

end.
Wenn ich davon in meinem Createereignis des Formulars ein Objekt erzeuge, dann steht die Anwendung - hat jemand einen Tip für mich???

Gruß und danke,
Poolspieler
Andreas
  Mit Zitat antworten Zitat