unit1.pas

来自「Delphi7应用编程150例附书源码.rar」· PAS 代码 · 共 69 行

PAS
69
字号
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Winsock;

type
  TfrmMain = class(TForm)
    Label1: TLabel;
    btnConversion: TButton;
    edtName: TEdit;
    Label2: TLabel;
    edtAddress: TEdit;
    procedure btnConversionClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure edtAddressChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.btnConversionClick(Sender: TObject);
var
  WSAData: TWSAData;
  HostEnt: PHostEnt;
  IPAddress: string;
  addr: dword;
begin
    edtName.Clear;
    WSAStartup(2, WSAData);
    IPAddress:=edtAddress.Text;
    try
        addr := inet_addr(PChar(IPAddress));
        HostEnt:= GetHostByAddr(@addr, Length(IPAddress), PF_INET);
        edtName.Text:=HostEnt.h_name;
    except
        ShowMessage('无效的IP地址');
    end;
    WSACleanup;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
    edtAddress.Clear;
    edtName.Clear;
    btnConversion.Enabled:=False;
end;

procedure TfrmMain.edtAddressChange(Sender: TObject);
begin
    btnConversion.Enabled:=True;
    if edtAddress.Text='' then
    begin
        btnConversion.Enabled:=False;
    end;
end;

end.

⌨️ 快捷键说明

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