und wie bekomme ich den Prozess zum Laufen und zur Anzeige des Hochzählens bzw. der Synchronisation?
muß ich ggf. mit dem FormCreate arbeiten und das Label zur Anzeige bringen oder mit dem StartButton?
Noch passiert überhaupt nichts.
folgender Quelltext liegt nun vor:
Delphi-Quellcode:
type
TheThread =
class(TThread)
private
fLabel : TLabel;
public
constructor Create(aLabel: TLabel);
overload;
procedure Execute;
override;
end;
type
TForm1 =
class(TForm)
CounterLabel: TLabel;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TheThread.Create(aLabel: TLabel);
begin
fLabel := aLabel;
inherited Create(False);
end;
procedure TheThread.Execute;
var
I1, I2: Cardinal;
begin
I1 := 0;
I2 := 0;
try
while (
not Terminated)
do
begin
Inc(I1);
if (I1 >= 1000000)
then
begin
Inc(I2);
Synchronize(
procedure
begin
FLabel.caption := I2.ToString;
end);
I1 := 0;
end;
end;
except
raise;
// on e: exception do begin
// mache hier irgendetwas mit dem Fehler.
end;
end;
end.