一、Thread類的創(chuàng)建:
unit Thread;
{             線程類的創(chuàng)建
  編譯環(huán)境: 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.
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注