
delphi
yuehaiyang
这个作者很懒,什么都没留下…
展开
-
拦截窗口的最大、最小事件
private procedure WMSysCommand(var Msg:TMessage);message WM_SYSCOMMAND;procedure TForm1.WMSysCommand(var Msg: TMessage);begin case Msg.WParam of SC_MINIMIZE : ShowMessage(最小化); SC_MAXIMI转载 2006-09-05 21:16:00 · 1192 阅读 · 0 评论 -
Application.Terminate关不掉程序。
程序要求运行时需要狗,如果运行时狗被拔掉,则程序退出。本来这也没什么,我的处理方法是:程序接收WM_DEVICECHANGE系统消息,然后判断狗是否存在,不存在则退出。代码: irtn := fIsUkeyExist; if irtn 1 then Application.Terminate;但是今天,测试人员发现,如果拔出狗时,鼠标正在浏览菜单(停留在程序原创 2008-11-18 17:20:00 · 1973 阅读 · 0 评论 -
用代码安全移除u盘
最近做的一个优盘项目中需要用到,因此在网上找的例子,然后从里面摘出来的。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,SetupApi;const CfgMgr32原创 2009-01-17 17:19:00 · 2098 阅读 · 0 评论 -
获取网卡的mac地址
下面这段代码是网上找到的,不过由于业务需要,我改了下:原来返回值是字符串,我现在改为返回int64类型了 function fGetMac(adapterNum :integer):Int64;//adapter00为指定的网卡适配器var NCB :TNCB; // NetBios控制块 ADAPTER :TADAPTERSTATUS; // 获取网卡状态 LANAENU原创 2009-04-15 16:53:00 · 592 阅读 · 0 评论 -
delphi使用sqlite数据库时的中文路径问题
写程序的时候,还没有发现。等到使用的时候,才发现这个问题。如果数据库所在的路径是中文路径的话,根本运行不起来,会报错,因为sqlite用的是utf8编码。 解决办法:AnsiToUtf8() 例如: DBPath := ExtractFilepath(application.exename)+ MyInfo.db; gdb := TSQLiteDatabase.C原创 2009-05-14 17:25:00 · 1793 阅读 · 1 评论 -
缺少关键字Stdcall会是什么样子?
要写个dll给同事调用,一时疏忽,忘了写stdcall了,结果造成的结果是,传进来的结构指针,我改了,传不出去。最后释放时还报错。原创 2009-06-15 16:28:00 · 620 阅读 · 0 评论 -
应用程序发生异常 未知的软件异常(0x0eedfade),位置为0x7c812a5b
最近我们一个客户打电话说,我们的客户端程序在他们的XP系统上经常出现此错误。但是我们的客户端已经装了了很多台了,是第一次碰到此问题,因此断定可能是他系统的问题,于是我就在google里搜索0x0eedfade这个地址,一搜还真不少,看来这个肯定是系统问题了。于是慢慢找解决方法,最后找到了一篇博文,说是在DOS窗口中执行一些命令可以解决此问题。于是我就把这个命令发给了客户,还真解决了问题原创 2009-09-27 16:04:00 · 7246 阅读 · 1 评论 -
解决 ModName: unknown ModVer: 0.0.0.0 Offset: 00000000 问题
最近一个优盘上的程序,在退出的时候偶尔会“.........ModName: unknown ModVer: 0.0.0.0 Offset: 00000000 ”这个错误,在我自己开发的机器上,反而没有这个情况;凭经验判断,出现这样的错误应该是窗口关闭时内存没有释放或者已经释放了额,而再次释放造成的,可是我仔细检查了代码,也没有发现问题。 实在是没有办法,偶尔出错,况且自原创 2009-11-27 15:42:00 · 2953 阅读 · 0 评论 -
两种拷贝文件方式的速度比较。
//方式1,用文件流的方式Procedure TForm1.fFileCopy( Const sourcefilename, targetfilename: String );Var S, T: TFileStream;Begin S := TFileStream.Create( sourcefilename, fmOpenRead ); try T := TFileStream原创 2010-01-04 17:12:00 · 1254 阅读 · 0 评论 -
pchar手动分配内存的疑惑
pchar ,GetMem原创 2010-06-02 11:48:00 · 759 阅读 · 0 评论 -
关于CreateProcess的使用
CreateProcess,句柄原创 2010-12-25 17:10:00 · 1072 阅读 · 1 评论 -
解决Raize日历控件显示的问题
Raize,TRzDateTimeEdit,显示原创 2010-12-28 22:49:00 · 1064 阅读 · 0 评论 -
Ehlib导出至excel时的问题
ehlib,SaveDBGridEhToExportFile,显示原创 2010-12-28 23:05:00 · 1309 阅读 · 0 评论 -
TreeView的Data的内存泄漏问题
经常使用TreeView控件,一直都没有注意到结点的DATA的内存释放问题,因为虽然经常用,但是有时候data就是一个ID值,有时候是一个结构指针,而用指针是需要new的,想着delphi会自动释放的(好像也有人这么说)。 其实,一直以来都是错误的呀,因我最近用了检测内存泄漏的工具才发现,真笨呀。释放此指针也很简单,在TreeView的OnDelction事件中写代码:原创 2008-11-07 16:36:00 · 1125 阅读 · 1 评论 -
delphi Ado的一个bug
在delphi中,Tadoquery在传参数时,如果传递的参数为中文,则有可能会被截断。例如:qry.close;qry.sql.clear;qry.sql.add(insert into t(a) values(:aa));qry.Parameters.ParamByName("aa").value := 中华人民共和国;qry.executesql;原创 2020-02-20 09:44:18 · 937 阅读 · 0 评论 -
delphi程序不能最小化
csdn的博客系统真是垃圾,我刚才写了很多结果没有保存上。郁闷死了。算了,只贴一段代码吧。解决在某种情况下窗口不能最小化的问题。 if IsIconic(Application.Handle) then begin DefWindowProc(Application.Handle, WM_SYSCOMMAND, SC_RESTORE, 0); end原创 2008-06-19 13:03:00 · 1479 阅读 · 0 评论 -
DELPHI存取JPEG、BMP图像到数据库完整解决方案
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DB, ExtDlgs, StdCtrls, ADODB, Grids, DBGrids, ExtCtrls,jpeg,DBCtrls;typeTForm1 = class(TForm)转载 2006-09-09 10:40:00 · 1355 阅读 · 0 评论 -
fastreport固定行分页
var PageLine: integer; PageMaxRow: integer=10; procedure MasterData1OnBeforePrint(Sender: TfrxComponent);begin PageLine := mod PageMaxRow; if (PageLine = 1) and ( > 1) then Engine.ne转载 2006-09-15 23:34:00 · 2011 阅读 · 0 评论 -
delphi中解压缩流的应用
最近在写TCP程序,要用到压缩传输,因此写了两个函数。用到了zlib库{------------------------------------------------------------------------------}{压缩流}function CommpressStream(Source :TFileStream):TMemoryStream;var dest,SMemory,r原创 2007-08-28 17:54:00 · 1090 阅读 · 0 评论 -
delphi开发activex控件的心得
用Delphi开发OCX的心得最近在做的一个B/S系统要在客户端读取USB锁的要求,所以就需要写一个OCX来验证。原来也没有做过,所以折腾了好几天,总算有点眉目了,所以把心得写下,交流下。 首先要弄明白你要写的OCX是用在客户端还是用在服务器端 假如用在客户端: 1、创建 打开delphi 7,选择菜单“new”->“other”->“activex”->“active form”原创 2007-09-29 15:58:00 · 2656 阅读 · 1 评论 -
delphi利用Window API编写基于socket的tcp程序
客户机和服务器可用互相通讯。 直接贴出代码吧,没有优化,代码可能有些冗余,只是实现了互相发送字符串的功能。仅供参考。服务器端:unit untserver;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,Winso原创 2007-11-09 12:58:00 · 4526 阅读 · 0 评论 -
用delphi7编写windows服务程序总结
本来是没有打算把软件写成服务形式的。起因是因为,我原来写的一个TCP通讯程序的客户端,客户在使用时,因为经常断电,所以服务器有时候会重启,因为原来的程序不是服务形式的,在没有登陆windows界面的情况下,不能够自动运行。因此,才决定把现有的程序改为服务形式。 一、服务程序的创建 delphi编写服务程序非常简单,点击菜单 File->New->原创 2007-12-11 16:47:00 · 4081 阅读 · 3 评论 -
EHLIB使用经验(一)
Ehlib这个表格组件真的不错,比delphi自带的DBgrid强太多了。下面说下里面的三个具体功能!1、自动排序(无代码) 不用写代码,只要选择相应的属性就可以了。 A、将该组件的[OptionsEn]中的 dgAutoSortMarking 属性设置为 True B、将要排序的字段的属性列表的 [Title]的 TitleButton 属性设置为 True C、uses 子句中原创 2008-03-24 12:06:00 · 2716 阅读 · 1 评论 -
将Rtf转换为Html格式
工作需要,并且以前也没有做过,所以就在网上搜索有关方面的资料。还好,找到了一些,有现成的程序,也有提供动态库的,大多是国外的。我下载了几个,试了试,还是有点问题的。原来的纯文本、带一些格式并且为中文的rtf转为html后,都变成乱码了,全英文的就不会,也不知道是怎么回事?从网上下载的动态库也是如此,并且,动态库还有版权限制。 偶然的机会,发现网上有RtfToHtm原创 2008-01-03 17:02:00 · 4219 阅读 · 4 评论 -
delphi的指针
delphi中的指针确实很方便也很强大。现在将网络上关于指针的一篇文章转载如下:正文如下:====================大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人 产生误解,似乎只有C语言的指针才能算指针。Basic不支持指针,在此不论。其实,Pascal语言本身也是支持指针转载 2008-07-06 20:11:00 · 1356 阅读 · 2 评论 -
项目总结
从北京回来有一个星期了,想想刚刚做完的这个项目,其实也有很多东西要总结的。 1、作为一个安全类的软件系统,有几种功能是不能缺少的。其实这几个功能也不算很难,但是如果没有,就很难通过测评中心(国家级)的评测。 a、超时认证保护功能 在系统间隔某端时间,无人使用,系统将自动切换至登陆界面。 function fGetKXTime //得到当前空闲的时间,ms原创 2008-05-21 10:51:00 · 588 阅读 · 0 评论 -
Delphi7做WebService应用pb调用
最近要帮朋友做一个软件在线注册的程序,考虑到pb11支持WebService,并且就在一个月前我还试验成功的, 但是当真正使用时,却怎么也弄不成。发布的时候出现“pbwsemit 遇到问题需要关闭”发布失败,我的计算机系统也没有什么变化,.net 的frmework也没有动,系统安装的是pb11.2,也一直没有动,这次就不行了,真是晕死了,在网上也没有找到什么原因,最后还是放弃了用pb11做原创 2008-08-20 11:15:00 · 992 阅读 · 0 评论 -
在delphi中操作ms sql的varbinary类型数据
在项目中要将一个结构加密,加密后的数据都是二进制,而要将这些二进制结果存储到数据库中,等用到时再从数据库中读出,然后根据解密算法,获取结果。希望能对大家有所帮助。sql server中用到的数据类型是varbinary,可变长的二进制。delphi中主要用到variant类型1、写//根据密文,生成数据库能存储的格式,其中二进制长度为32字节function fGetVar原创 2008-06-16 15:53:00 · 2554 阅读 · 0 评论 -
ehlib使用内存表的方法
delphi ehlib TMemTableEh 内存表原创 2011-03-08 17:49:00 · 2612 阅读 · 0 评论