unit PrimeThread;
interface
uses
Classes;
type
TPrimeThrd = class(TThread)
private
FTestNumber: integer;
FResultString: string;
protected
function IsPrime: boolean;
procedure UpdateResults;
procedure Execute; override;
public
property TestNumber: integer write FTestNumber;
end;
implementation
uses SysUtils, Dialogs, PrimeForm;
procedure TPrimeThrd.UpdateResults;
begin
PrimeFrm.ResultsMemo.Lines.Add(FResultString);
end;
function TPrimeThrd.IsPrime: boolean; {omitted for brevity}
procedure TPrimeThrd.Execute;
begin
if IsPrime then
FResultString := IntToStr(FTestNumber) + ' is prime.'
else
FResultString := IntToStr(FTestNumber) + ' is not prime.';
Synchronize(UpdateResults);
end;
end.