sheji.pas

来自「利用Delphi进行界面设计」· PAS 代码 · 共 114 行

PAS
114
字号
unit sheji;

interface

uses
  Math,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, Mask;

type
  TForm1 = class(TForm)
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    ListBox1: TListBox;
    ListBox2: TListBox;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Edit3: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    ListBox3: TListBox;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure MaskEdit1Change(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
    Edit1.Text:='';
    Edit2.Text:='';
    Edit3.Text:='';
end;

procedure TForm1.Button1Click(Sender: TObject);
var m,a,b,n,i,j,k,c:integer;
begin
    m:=strtoint(Edit1.Text);
    a:=trunc(log2(m));
    if (m mod 2 = 0) and (m mod strtoint(floattostr(power(2,a)))=0)
    then  begin
             b:=m;
             Edit2.Text:=inttostr(b);
          end
    else  begin
             b:=trunc(log2(m))+1;
             Edit2.Text:=floattostr(power(2,b));
          end;
    n:=strtoint(Edit2.Text);
    j:=256 div n;
    k:=256-j;
    edit3.Text:='255.'+'255.'+'255.'+inttostr(k);
    for i:=0 to n-1 do
    begin
       c:=j*i;
       ListBox1.Items[i]:=MaskEdit2.Text+ '.'+inttostr(c+1)+'~'+MaskEdit2.Text+'.'+inttostr(j*(i+1)-2);
       ListBox3.Items[i]:=MaskEdit2.Text+'.'+inttostr(j*(i+1)-1);
    end;

end;

procedure TForm1.MaskEdit1Change(Sender: TObject);
begin
    MaskEdit2.Text:=Maskedit1.Text;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
    ListBox2.Items.Add(ListBox1.Items[ListBox1.ItemIndex]);
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
var i:integer;
begin
    for i:=ListBox1.Items.Count-1 downto 0 do
       ListBox2.Items.Add(ListBox1.Items[i]);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    MaskEdit1.Text:='';
    MaskEdit2.Text:='';
    Edit1.Text:='';
    Edit2.Text:='';
    Edit3.Text:='';
    ListBox1.Items.Clear;
    ListBox2.Items.Clear;
    ListBox3.Items.Clear;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?