7月 102016
 

  Java、Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即IsuperObject。如果还没有这个组件的请在网上搜索下载或者在下面留言处留下你的邮箱向本人索取。   下面先说一下ISuperObject中几个常用的函数 function SO(const s: SOString = ‘{}’): ISuperObject; overload; 此函数传入json数据字符串,并返回一个ISuperObject对象,这一般是我们解析json时

阅读全文
7月 092014
 

  对于一些非多文档类的程序,我们只想让用户打开一个程序的实例,当用户再次点击图标的时候只需将原来运行的程序界面打开即可。那么如何实现这种功能呢?首先,要实现进程的单实例运行,我们可以用互斥对象实现,互斥对象即在系统层上只能创建一个这样标识的对象,当第二个此标识的互斥对象创建时将会返回一个已存在的标志。   单实例运行实现后,我们还要通过消息实现打开前面已经打开的窗口,我们可以用EnumWindows函数来遍例所有窗口以找到已打开窗口的句柄,并通过ShowWindow函数或者自定义消息来激活那个窗口。具体的代码如下:

&nbsp

阅读全文
6月 092014
 

Windows服务作为Windows提供的一种特殊应用程序,拥有下面优点: 1. 随系统启动而启动,不需要用户手动执行,适合做后台检测程序等 2. 不用登录系统即可运行 3. 在后台运行,不与Windows桌面相互影响 4. 拥有System权限,在任务管理器中无法结束运行 Windows不建议在服务程序中与桌面有交互,在Windows Xp及以前的版本Windows服务和用户桌面还运行在一个session下,所以服务程序还可以比较轻松的与桌面进行交互。但是自Windows Vista及以后的系统中,服务程序是运行于session0中,而第一个启动的用户则运行于session1中,要想在服务中

阅读全文
5月 142014
 

当我们需要响应鼠标滚轮效果的时候,我们需要在Form的FormMouseWheel、FormMouseWheelDown、FormMouseWheelUp事件中进行处理。如下面的代码:

但是在实际运行中我们发现,每次滚轮后Edit1的顶部位置往上或下移动了两次,这是因为TControl的DoMouseWheel调用了该事件,如果该事件中Handled返回值为true,则DoMouseWheel将认为该事件处理完毕,不在执行后边的代码,如果返回false则继续执行后面的代码。 所以如果要避免这几个事件执行多次,在执行完你要执行的操

阅读全文
11月 232013
 

  在Windows Vista、 Windows7以上Windows系统中可以支持大图标显示了,但是Delphi编译出来的程序却只能显示32×32的图标,这使Delphi编译的程序看起来很不专业。下面就把Delphi编译大图标程序的方法分享一下。   要想使用大图标编译,首先要准备一个256×256的图标图片。   使用图标编辑软件,如IconWorkshop打开你的 ico文件,新建一个256×256的真彩色图标,将你的图片文件导入到该图标中。保存图标后,将图标文件拷贝到你的工程目录下,假设为mainico.ico,然后在你的工程下面建一个mainico.rc

阅读全文
11月 062013
 

  在Delphi中下拉框条目的宽度总是和下拉框的宽度一样,当里面的项目太长时就不能显示全了。其实Windows提供了一个CB_SETDROPPEDWIDTH消息可能定义下拉框窗口的宽度,不知道为什么Delphi一直没有添加这个功能。使用方法很简单,如下:   SendMessage(cboIndustry.Handle, CB_SETDROPPEDWIDTH, 200, 0); 第一个参数是下拉框组件的句柄 第二个参数是要发送的消息 第三个参数是要设定的宽度 第四个参数未使用

阅读全文
9月 172013
 

Delphi中读取Outlook的数据,代码如下:

 Form代码:

相关链接:  Microsoft Outlook Constants AppointmentItem Object Members Items Members (Outlook) Folders Property Attachment Object Members Application Object Members ContactItem Object Members

阅读全文
10月 032012
 

 

阅读全文
10月 032012
 

1、通过IP取MAC地址 uses WinSock; Function sendarp(ipaddr:ulong; temp:dword; ulmacaddr:pointer; ulmacaddrleng:pointer) : DWord; StdCall; External ‘Iphlpapi.dll’ Name ‘SendARP’; procedure TForm1.Button1Click(Sender: TObject); var myip:ulong; mymac:array[0..5] of byte; mymaclength:ulo

阅读全文