Re: Delphi threading
- From: "DCoder_" <contact@xxxxxxxxxx>
- Date: 20 Aug 2006 17:21:05 -0700
To make things simpler, here's the form source:
unit PrimeForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls;
type
TPrimeFrm = class(TForm)
NumEdit: TEdit;
SpawnButton: TButton;
procedure SpawnButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PrimeFrm: TPrimeFrm;
implementation
uses PrimeThread;
{$R *.DFM}
procedure TPrimeFrm.SpawnButtonClick(Sender: TObject);
var
NewThread: TPrimeThrd;
begin
NewThread := TPrimeThrd.Create(True);
NewThread.FreeOnTerminate := True;
try
NewThread.TestNumber := StrToInt(NumEdit.Text);
NewThread.Resume;
except on EConvertError do
begin
NewThread.Free;
ShowMessage('That is not a valid number!');
end;
end;
end;
end.
//.................And here's the thread unit source..................:
unit PrimeThread;
interface
uses
Classes;
type
TPrimeThrd = class(TThread)
private
FTestNumber: integer;
protected
function IsPrime: boolean;
procedure Execute; override;
public
property TestNumber: integer write FTestNumber;
end;
implementation
uses SysUtils, Dialogs;
function TPrimeThrd.IsPrime: boolean;
var
iter: integer;
begin
result := true;
if FTestNumber < 0 then
begin
result := false;
exit;
end;
if FTestNumber <= 2 then
exit;
for iter := 2 to FTestNumber - 1 do
begin
if (FTestNumber mod iter) = 0 then
begin
result := false;
{exit;}
end;
end;
end;
procedure TPrimeThrd.Execute;
begin
if IsPrime then
ShowMessage(IntToStr(FTestNumber) + 'is prime.')
else
ShowMessage(IntToStr(FTestNumber) + 'is not prime.');
end;
end.
.
- References:
- Delphi threading
- From: DCoder_
- Re: Delphi threading
- From: DCoder_
- Re: Delphi threading
- From: DCoder_
- Re: Delphi threading
- From: DCoder_
- Delphi threading
- Prev by Date: Re: Delphi threading
- Next by Date: Re: Delphi threading
- Previous by thread: Re: Delphi threading
- Next by thread: Re: Delphi threading
- Index(es):