为了排查一个Bug今天无意看了看Indy源码,结果吓了一跳。TIdIOHandler.ReadLongWord函数用于读取通讯数据并转换成LongWord类型返回,它做用了一种危险的做法可能会导致数据传输不正确。 函数源码如下: function TIdIOHandler.ReadLongWord( Read More
posted @ 2016-04-15 00:02 findumars Views(530) Comments(0) Diggs(0)
虽然现在一机多网卡已经很普遍(像Notebook带有线、无线、蓝芽等),但是找一个现成的能够一次过读出所有网卡IP地址的函数实在是难,无奈自己写了一个,好东西谁用谁知道。 [c-sharp] view plain copy //uses WinSock; type PAddrInfoW = ^ADD Read More
posted @ 2016-04-15 00:01 findumars Views(470) Comments(0) Diggs(0)
在DLL动态链接库中封装VCL的MDI子窗体不多说了,看代码就应该明白了,曾经我遇到的问题,现在放出来大家共享! 这里是工程文件的部分: 在DLL中封装MDI子窗体需要重写DLL入口函数,具体代码如下: var DllApp: TApplication;//定义保存原DLL的TApplication Read More
posted @ 2016-04-14 23:58 findumars Views(381) Comments(0) Diggs(0)
在DLL中的子窗体不会响应Tab按键的,这个时候就需要手动去指定Tab键的操作,但是前提是主窗体要向这个窗体发送一个消息,一个Tab键按下的消息。基本顺序是这样的: 1. 主窗体用Hook技术捕获Tab按键并向活动子窗体发送一个Tab键按下的消息 2. 子窗体手动定义一个Tab键被按下的处理(需要用 Read More
posted @ 2016-04-14 23:57 findumars Views(497) Comments(0) Diggs(0)
●function MonthsBetween(const ANow, AThen: TDateTime): Integer; 描述: 根据两个给定的TDateTime类型的参数ANow和AThen,MonthsBetween函数能得到两个日期在月份 上差距数。因为月份的天数是不同的,所以 Mont Read More
posted @ 2016-04-14 23:55 findumars Views(917) Comments(0) Diggs(0)