一、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.