DELPHI抽奖程序
?òµ?µÄ?éÉÜÁËÒ?ÏÂDelphiÆô??Ïß?̺?ÊýµÄÓ?ÓÃ!
?ÌÐòÔÚ???þÀï??Çë?é??!!
?úÂëÈçÏÂ:
unit frm_BeginThread;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFrmBeginThread = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
LbCount: TLabel;
Button1: TButton;
Bevel1: TBevel;
Button2: TButton;
Label2: TLabel;
LbCount1: TLabel;
LbCount2: TLabel;
LbCount3: TLabel;
Lbcount4: TLabel;
LbCount5: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
ID:cardinal;
//function ThreadRun(Parameter: Pointer): Integer;
{ Private declarations }
public
Running:Boolean;
{ Public declarations }
end;
var
FrmBeginThread: TFrmBeginThread;
implementation
{$R *.dfm}
function ThreadRun(Parameter: Pointer): Integer;
var
MyForm:TFrmBeginThread;
i:integer; //?ÆÊýÆ?
begin
MyForm:=FrmBeginThread;
i := 0; //?Ó0?ªÊ? while i < 11 do
begin
i:=i+1;
begin
if i = 9 then
i := 0;
FrmBeginThread.LbCount.Caption:=inttostr(i); //?Ñi??Öµ?ø?êÇ?
sleep(12); //Ë?Ãß12ºÁÃë
if not MyForm.Running then
EndThread(0);
end;
end;
end;
function ThreadRun1(Parameter: Pointer): Integer; //Æô??Ïß?Ì1
var
MyForm:TFrmBeginThread;
i:integer;
begin
MyForm:=FrmBeginThread;
i := 0;
while i < 11 do
begin
i:=i+1;
begin
if i = 10 then
i := 0;
FrmBeginThread.LbCount1.Caption:=inttostr(i);
sleep(8);
if not MyForm.Running then
EndThread(0);
end;
end;
end;
function ThreadRun2(Parameter: Pointer): Integer; //Æô??Ïß?Ì2
var
MyForm:TFrmBeginThread;
i:integer;
begin
MyForm:=FrmBeginThread;
i := 0;
while i < 11 do
begin
i:=i+1;
begin
if i = 7 then
i := 0;
FrmBeginThread.LbCount2.Caption:=inttostr(i);
sleep(5);
if not MyForm.Running then
EndThread(0);
end;
end;
end;
function ThreadRun3(Parameter: Pointer): Integer; //Æô??Ïß?Ì3
var
MyForm:TFrmBeginThread;
i:integer;
begin
MyForm:=FrmBeginThread;
i := 0;
while i < 11 do
begin
i:=i+1;
begin
if i = 9 then
i := 0;
FrmBeginThread.LbCount3.Caption:=inttostr(i);
sleep(7);
if not MyForm.Running then
EndThread(0);
end;
end;
end;
function ThreadRun4(Parameter: Pointer): Integer; //Æô??Ïß?Ì4
var
MyForm:TFrmBeginThread;
i:integer;
begin
MyForm:=FrmBeginThread;
i := 0;
while i < 11 do
begin
i:=i+1;
begin
if i = 10 then
i := 0;
FrmBeginThread.LbCount4.Caption:=inttostr(i);
sleep(6);
if not MyForm.Running then
EndThread(0);
end;
end;
end;
function ThreadRun5(Parameter: Pointer): Integer; //Æô??Ïß?Ì5
var
MyForm:TFrmBeginThread;
i:integer;
begin
MyForm:=FrmBeginThread;
i := 0;
while i < 11 do
begin
i:=i+1;
begin
if i = 9 then
i := 0;
FrmBeginThread.LbCount5.Caption:=inttostr(i);
sleep(10);
if not MyForm.Running then
EndThread(0);
end;
end;
end;
//ÀûÓÃBeginThreadº?ÊýÆô??Ïß?Ì
procedure TFrmBeginThread.Button1Click(Sender: TObject);
var
s:TThreadFunc;
ID:cardinal;
begin
running:=true;
BeginThread(nil,0,ThreadRun,nil,1002,ID); //Ô?À?ºÅµÄÒâË??Ö?ð?íÊ?:??È?ÌØÕ?Ö?Õë??Õ-?óÐ???Ïß?ÌÖ?Ðк?Êý???ÎÊý???????êÊ?,Ïß?ÌID
BeginThread(nil,0,ThreadRun1,nil,1002,ID);
BeginThread(nil,0,ThreadRun2,nil,1002,ID);
BeginThread(nil,0,ThreadRun3,nil,1002,ID);
BeginThread(nil,0,ThreadRun4,nil,1002,ID);
BeginThread(nil,0,ThreadRun5,nil,1002,ID);
end;
//Í?Ö?º?Êý
procedure TFrmBeginThread.Button2Click(Sender: TObject);
begin
Running:=false;
end;
end.