
06.06.2011, 14:32
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyThread = class(TThread)
private
i: Integer;
procedure Updt;
protected
procedure Execute; override;
end;
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FMyThread: TMyThread;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyThread }
procedure TMyThread.Execute;
begin
i:=0;
while not Terminated do
begin
Synchronize(Updt);
Inc(i);
if i>100 then Break;
Sleep(50);
end;
end;
procedure TMyThread.Updt;
begin
Form1.Label1.Caption:=IntToStr(i);
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
FormDestroy(Sender);
FMyThread:=TMyThread.Create(True);
FMyThread.FreeOnTerminate:=False;
FMyThread.Resume;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if FMyThread<>nil then
begin
FMyThread.Terminate;
FMyThread.WaitFor;
FreeAndNil(FMyThread);
end;
end;
end.
обработчики:
Button1.OnClick:=Button1Click;
OnDestroy:=FormDestroy;
__________________
Пишу программы за еду.
__________________
|