⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitfile.pas

📁 Delphi 7组件与分布式应用开发源码,介绍了基础的组件应用实例
💻 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 + -