[url]http://www.77169.cn/more.asp?name=ALiWY&id=13380[/url]

来源:DIY地带
一、Thread类的创建:

unit Thread;
{             线程类的创建
 编译环境: Windows 2003 Sever  Delphi 7.0 Enterprise
}
interface
uses classes,sysutils,StdCtrls;
type
 TB = class(TThread)
 private
   i :integer;
   Fedt :TEdit;
   procedure Update ;
 public
   procedure execute;override;
   constructor create(IsSuspended :Boolean;edt :TEdit);
 end;
implementation
uses MainForm;

procedure TB.Update;
begin
 Fedt.Text :=inttostr(i);
end;

constructor TB.create(IsSuspended: Boolean; edt: TEdit);
begin
 inherited create(IsSuspended);
 Fedt := edt;
end;

procedure TB.execute;
begin
 i:=0;
 while(not Terminated) do
 begin
   Synchronize(Update);
   inc(i);
 end;
end;
end.

二、Thread类的使用:

unit MainForm;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls,Thread;

type
 TfrmMain = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Edit1: TEdit;
   Edit2: TEdit;
   procedure FormCreate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure ButtonClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;


var
 frmMain: TfrmMain;
 a,b:TB;
implementation

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
begin
 a:=TB.create(true,edit1);
 b:=TB.create(True,edit2);
end;

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 freeandnil(a);freeandnil(b);
end;

procedure TfrmMain.ButtonClick(Sender: TObject);
var c :TB;
begin
 if sender = Button1 then c :=a
 else c:=b;
 if c.Suspended then begin
   c.Resume ; (sender as TButton).Caption :='暂停';
 end else begin
   c.Suspend ;(Sender as TButton).Caption :='开始';
 end;
end;

end.