在Delphi中使用IP控件
西安交通大学
刘明华
----- 在网络程序中,我们常常碰到需要用户输入IP地址的情况。然而Delphi并没有为我们提供可以用于输入IP串的控件,于是我们只好用Tedit控件(单行文本框)来接受用户输入的IP串。但是,使用Tedit来输入IP串并不是一个好的主意,因为处理起来非常不方便。事实上,在我们的身旁有一个专门用来输入IP串的Windows控件,该控件如图所示。IP控件会拒绝非法的IP串(在每个部分只能输入0..255之间的数字);它让你可以轻松地获取控件中的IP串所对应的IP值(32位整数),这省去了IP串和IP值之间相互转换的麻烦;此外,你还能限制IP控件中所能输入的IP的范围。在本文中,我将向大家介绍如何在我们的Delphi程序中使用Windows的IP控件。
---- Windows中有两个非常重要的动态联结库:commctrl.dll和comctl32.dll,它们是Windows的自定义控制库(Windows Common Controls)。自定义控制库中包含了许多常用的Windows控件,如Statusbar,Coolbar,HotKey等;在Delphi中,这些控件大多数都已被包装成可视化控件了。在Microsoft推出Internet Explorer 3之后,自定义控制库中新增了一些控件,其中就包括Windows的IP控件(IP Address edit control)。
---- 初始化Windows自定义控制库
---- Windows提供了两个API函数,InitCommonControls和InitCommonControlsEx,用来初始化自定义控制库。从名字我们不难看出这两个API函数的关系:后者是前者的增强。如果你希望在程序中使用IP控件,你必须用InitCommonControlsEx来完成对自定义控制库以及类的初始化。函数InitCommonControlsEx的原型如下(Pascal语法):
---- ... ...
---- 创建IP控件
---- ... ...
---- 使用IP控件。 在程序中,我们通过向IP控件发送消息来与它通讯。IP控件可以响应的消息有以下6个,这些消息及它们的含义,见下表:
---- ... ...
---- 若想要获取IP控件中IP串所对应的IP值,你应该向IP控件发送IPM_GETADDRESS消息,并且需要把一个32位整数的地址作为SendMessage的最后一个参数。
---- ... ...
---- IP控件的通知消息
---- 当IP串被改动后或者输入焦点发生了转移,IP控件就会向它的父窗口发送通知消息IPN_FIELDCHANGED。在大多数情况下,我们都可以忽略此通知消息。以下是处理通知消息IPN_FIELDCHANGED的一个示例:
procedure Tform1.WndProc(var Msg: TMessage);
var p:PNMHDR;
begin
inherited;
if Msg.Msg=WM_NOTIFY
then begin
p:=Pointer(Msg.lParam);
if p^.code=IPN_FIELDCHANGED
then begin
{…
处理IP控件的IPN_FIELDCHANGED通知消息
…}
end;
end;
end;
分享到:
相关推荐
delphi 的IP输入控件,界面设计进行IP输入格式化限制处理
IP控件 类似Windows,控件, 输入IP
在已知时间服务器IP的情况下,想在我的软件里嵌入一个NTP客户端校时功能,折腾了好一阵之后发现delphi7的indy控件包里有一个IDSNTP控件其实就能实现我想要的校时功能,在网上查找该控件的用法少之又少,indyDemo里也...
delphi modbus tcp控件 支持Delphi11
1、自定义IP地址输入框控件,将IP用“.”分隔。满三位焦点自动移动到下一字段,可按...2、另一个是devEXpress的IP控件,如果打开后提示缺少dll,可重新引用DevExpress文件夹下面的dll 3、使用正则表达式判断IP的合法性
c++builder2007中ip地址控件(注:非原创,原本是Delphi的东西,我自己正在使用;若是你下载后不能正常使用,请来函:PengmingCN@msn.com)
用于DELPHI开发的控件,IP输入合法性检查
用delphi6编写,利用serversocket和clientsocket进行通信的程序
网络IP电话源码,及所用delphi控件(v1.4),仅供学习
Delphi 7第三方控件安装方法,用于安装DELPHI 7的各种类型控件,包括DCU,PAS文件等
IP地址控件 C# 源代码
MSDN中指出Netsh命令将在后续的版本中废止,今后对系统信息的操作将倾向于WMI...程序中使用了AlphaControls控件,如要编译运行,可到我的下载里去找,有最新源码版提供。 功能: 1、读取网卡信息 2、设置IP地址
一个IP地址控件,执行DPK文件,然后在Tools->Envir...->library->library path,添加路径即可。
在DELPHI程序中使用ADO对象存取ODBC数据库 轻轻松松在DELPHI3.0中实现三态按钮 Api函数列表【与文件有关】 Api函数列表【与打印有关】 Delphi中TApplication类的巧用 Delphi 中自做动态显示的控件 ...
Delphi FMX 获取安卓WIFI本机的IP信息 手机通过UDP与终端通信,实现发送数据(按协议发送,可以达到控制硬件产品的目的)
需要先安装“Indy控件”,才能正常打开程序。 窗体Form中只用到一个控件:控件栏Indy Misc——IdIPWatch(图标为眼睛)
获取外网的IP地址,出口地址 在有路由器或者交换机的情况 下,也可以正常获取
4.5.2 IE中使用代理服务器设置 4.5.3 建立工程项目 4.5.4 关键代码分析 第5章 Telnet高级编程 5.1 Telnet简介 5.2 使用Windows的Telnet程序登录远程服务器 5.3 深入Telnet协议 5.3.1 NVT ASCII字符集 5.3.2 ...
分析封包的代码,有能力的人拿来学学不错的。
delphi 显示多网卡ip代码 ,用到了控件,可以直接忽略。