📄 unitfile.pas
字号:
unit Unitfile;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
Label1: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
INumberClass = Interface(IUnknown)
procedure SetValue(NewValue:Integer);
function GetValue:Integer;
function GetResult:Integer;
procedure Search;
end;
TNumberClass = class(TInterfacedObject,INumberClass)
public
Value:Integer;
PrimeNumber:Integer; //质数
procedure SetValue(NewValue:Integer);
function GetValue:Integer;
function GetResult:Integer;
procedure Search;
destructor Destroy;override;
end;
var
Form1: TForm1;
MyInterface:INumberClass;
implementation
{$R *.dfm}
{ TNumberClass }
destructor TNumberClass.Destroy;
begin
ShowMessage('资源已释放!');
inherited;
end;
function TNumberClass.GetValue: Integer;
begin
Result := Value;
end;
function TNumberClass.GetResult: Integer;
begin
Result := PrimeNumber;
end;
procedure TNumberClass.Search;
var
I: Integer; //循环变量
J: Integer; //测试值
Find: Boolean; //判断是否找到
begin
Find := False;
J := MyInterface.GetValue + 1; //初始值的下一个整数
while Find = False do
begin
Find :=TRUE;
for I := 2 to J - 1 do //约数从2到J - 1循环
begin
if (J mod I) = 0 then //能被整除则退出循环
begin
Find := False;
break;
end;
end;
if Find = TRUE then //不能整除则记录
PrimeNumber :=j;
J :=J + 1;
end;
end;
procedure TNumberClass.SetValue(NewValue: Integer);
begin
Value := NewValue;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MyInterface.SetValue(StrToInt(Edit1.Text));
Memo1.Lines.Append('初始数值设置!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MyInterface.Search; //查找
Memo1.Lines.Append('初始值为:'+IntToStr(MyInterface.GetValue));
Memo1.Lines.Append('最接近的质数为:'+IntToStr(MyInterface.GetResult)); //显示结果
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyInterface := TNumberClass.Create;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Application.Terminate;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -