在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里也...
1、自定义IP地址输入框控件,将IP用“.”分隔。满三位焦点自动移动到下一字段,可按...2、另一个是devEXpress的IP控件,如果打开后提示缺少dll,可重新引用DevExpress文件夹下面的dll 3、使用正则表达式判断IP的合法性
c++builder2007中ip地址控件(注:非原创,原本是Delphi的东西,我自己正在使用;若是你下载后不能正常使用,请来函:PengmingCN@msn.com)
delphi modbus tcp控件 支持Delphi11
用于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,添加路径即可。
需要先安装“Indy控件”,才能正常打开程序。 窗体Form中只用到一个控件:控件栏Indy Misc——IdIPWatch(图标为眼睛)
在DELPHI程序中使用ADO对象存取ODBC数据库 轻轻松松在DELPHI3.0中实现三态按钮 Api函数列表【与文件有关】 Api函数列表【与打印有关】 Delphi中TApplication类的巧用 Delphi 中自做动态显示的控件 ...
Delphi FMX 获取安卓WIFI本机的IP信息 手机通过UDP与终端通信,实现发送数据(按协议发送,可以达到控制硬件产品的目的)
获取外网的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代码 ,用到了控件,可以直接忽略。