16,748
社区成员
发帖
与我相关
我的任务
分享
procedure TForm6.Button1Click(Sender: TObject);
var
T: TMyUpdateThread;
I: Integer;
begin
T := TMyUpdateThread.Create(Edit1);
try
I := 60 * 1000;
while I > 0 do begin
Application.ProcessMessages;
Sleep(1);
Dec(I);
if Application.Terminated then break;
end;
T.Terminate;
Sleep(1);
finally
T.Free;
end;
end;
type
TMyUpdateThread = class(TThread)
private
FUpdateEdit: TEdit;
Counter: Integer;
protected
procedure Execute;override;
procedure Update;
public
constructor Create(const AUpdateEdit: TEdit);
end;
implementation
constructor TMyUpdateThread.Create(const AUpdateEdit: TEdit);
begin
Inherited Create(true);
FUpdateEdit := AUpdateEdit;
Resume;
end;
procedure TMyUpdateThread.Update;
begin
FUpdateEdit.Text := IntToStr(Counter);
end;
procedure TMyUpdateThread.Execute;
begin
Counter := 0;
while Not Terminated do begin
Synchronize(Update);
Sleep(1000);
Inc(Counter);
end;
end;