
Delphi
king_xing
这个作者很懒,什么都没留下…
展开
-
Delphi中须注意的二个对象(TStreamAdapter、TObjectList)的释放问题
TObjectList对象的创建方法有一个参数:constructor TObjectList.Create(AOwnsObjects: Boolean);从字面就可理解其意义:拥有对象集与否。帮助文档:If the OwnsObjects property is set to true (the default), TObjectList controls the memory of its原创 2008-03-07 06:32:00 · 5323 阅读 · 0 评论 -
delphi拖放编程的要素、事件流程和可能的陷阱
一、拖放的要素鼠标拖放的二个操作对象:源对象(source)和目标对象(Target)。鼠标左键在源控件(source)上按下拖动,直至可接收目标控件(Target)上放下,即完成一次拖放操作。有四个事件拖放事件依序发生:OnStartDrag,OnDragOver,OnDragDrop,OnEndDrag。按事件名的字义理解这四个事件就对了,OnDragOver和OnDragDrop由目标对原创 2013-06-17 00:31:01 · 3857 阅读 · 0 评论 -
一次按键,触发二次OnKeyPress事件!
OnKeyPress事件中有释放动作,二次触发,使得产生AV错误!!这是个偶发性的BUG,改为onKeyDown事件!原创 2013-01-21 22:47:45 · 3332 阅读 · 0 评论 -
loopup、计算字段如果是汉字字段,不能用TWideStringField!
编程环境:D7、用ADO连接DB,ClientDataSet作内存表!BUG:直接从ADOQuery字段中拷贝到ClientDataSet,loopup汉字字段显示不完整!改回TStringField字段就OK了!原创 2013-01-21 22:44:20 · 1228 阅读 · 0 评论 -
谨用OnChange事件!
一、不要在OnChange事件中作释放动作!这个就不多说了,有实际项目经验的人都知道啦! 二、对设置了OnChange事件的控件赋值时,触发该事件,但因为赋值语句还有后续,OnChange事件暂时得不到执行,这时就要注意了,此时(赋值语句后续命令)不能再访问该控件了,对该控件的访问被锁定!!这时不论对控件的读或写属性操作都会引起AV错误!! 三、存在第一种的例外情况时,最好动态设置原创 2013-01-21 22:32:36 · 1680 阅读 · 0 评论 -
WM_Char消息和WM_KeyDown消息!
在Application.OnMessage事件中处理一些全局按键,如WM_KeyDown消息将回车键转换为TAB键,但单引号则在此消息中不好处理。用WM_Char消息则方便很多!!一个符号按键(包括数字字母)会产生WM_KeyDown消息,也会产生WM_Char消息原创 2013-01-21 22:55:17 · 2168 阅读 · 0 评论 -
Delphi IDE向导代码竟然有二套TDataSource的ClassType!
PDMtoGUI运行“选择字段”对话框时,需要枚举窗体设计器中已存在的数据源组件,可是它竟然不能枚举出来,检查代码都没问题,跟踪进去,发现窗体设计器上的TDataSource类和向导“内部”的TDataSource类,其ClassName一样,ClassType也一样,可Is运算符就是不能识别出来,强制用ClassName来判断,却不能将该TDataSource赋予相应控件的属性,出错:类型原创 2009-03-25 23:18:00 · 1229 阅读 · 0 评论 -
今天终于发布PDMtoGUI V1.5稳定版
PDMtoGUI是Delphi IDE数据字典向导,用于将PowerDesigner数据字典文件PDM,导出到GUI界面设计中,并按PDM中的数据设计设置控件的属性,并进行自动排版。它是软件工程设计到编码、GUI设计的一个衔接,可极大的降低开发人员的重复劳动,提高效率降低失误。注:PDM文件必须是XML格式的!已知对PowerDesigner PDM文件的支持为V9-V12版,因手头无更高版本原创 2009-03-25 23:10:00 · 1224 阅读 · 0 评论 -
向Delphi IDE菜单中插入项,必须用Insert方法,用Add无效
最近升级一数据字典工具向导PDMtoGUI,须向IDE中插入菜单项,调试好后,安装完向导运行,怎么样都无法向IDE中插入菜单项。将主要代码片段拷贝到一个普通Exe工程中测试能够插入菜单项。昨晚试了一二个小时,无果。 代码段如下 FAddMenuItem := TMenuItem.Create(nil); FAddMenuItem.Name := miPDMtoGUIz原创 2009-03-13 15:57:00 · 1193 阅读 · 0 评论 -
如何遍历网页内图片
以前做邮件客户端时,收发Html邮件情况下需要将内嵌图片枚举,当时Google了一遍,没有找到可用的资料,都是些不全或错误代码。为了赶工,只有采用笨办法:通过查找网页源码的办法枚举内嵌图片。 后来,查了一阵MSDN啃了其中干巴巴的英文,并度了N次,找到了想要的方法。在窗体上放WebBrowser、Memo、按钮,下面是源码,如果有什么疑问请查阅MSDN。var doc: IHt原创 2008-05-27 23:27:00 · 1721 阅读 · 0 评论 -
用Indy 10发送Smtp邮件突破163的反垃圾邮件机制
前些日子 搞了一个完整功能的,而且与数据库相结合的邮件客户端应用系统,支持发送带内嵌图片的Html邮件~且附件也是正常的! 回想那些日子,网上可供查阅的资料少得可怜,辛苦的技术攻关,不断的分析邮件数据及测试。本文只讨论突破反垃圾邮件机制,其它技术细节恕不奉上,这可向同道指一条明路:1、用FoxMail查看正常邮件的原始数据;2、阅读Indy源码中几个关键单元的说明,及实现代码,相信你会有原创 2008-03-13 02:02:00 · 4574 阅读 · 3 评论 -
我出的几道OO面试题
1、谈谈你对类的封装性和抽象性的理解,及OOP中开闭原则?请以OO的角度解释一下“白马非马”这话。(15分)2、简述接口与虚方法的区别和优缺点?程序设计中怎么做取长补短?(15分)3、述说一下你所知的代码重用的技术?请说明如何在Delphi调用Dll的模式与非模式窗体?(20分)4、(可选题)谈谈Web Services,和SOA(20分)就这么简单的几题,公司用了半年,面试答得让我满意的只一二原创 2008-03-07 06:14:00 · 2740 阅读 · 4 评论 -
Delphi中模块句柄管理,及FindClassHInstance详解
第一部分、问题的提出:GetModuleHandle()和全局变量HInstance都只能得到Exe的模块句柄。 在设计企业开发框架时,因为采用的是Exe,BPL,DLL的结构:一个Exe和Bpl类库,及多个Dll窗口模块。在Bpl开发框架中设计了基类窗口、单表、主从表、多平行表、对话框、数据编辑对话框等等模板,而这些窗口统一由窗口类工厂创建释放,并由主窗口模板创建类工厂接口实例进行原创 2008-03-07 04:54:00 · 2925 阅读 · 0 评论 -
Delphi中的压缩单元ZLib.pas中二个鲜为人知的二个“指针”全局函数CompressBuf()和DeCompressBuf()
相信很多人都用过ZLib.pas中加解压功能,一般都是用其中的压缩流TCompressionStream和解压流对象TDecompressionStream。但在很多应用,如网络传输中须对数据加压解压,WinSock传递的数据都是内存块指针,因此很需要一套直接基于指针的函数。这时CompressBuf()和DeCompressBuf()就派上用场了,它们的声明如下:procedure Compr原创 2008-03-07 05:04:00 · 3898 阅读 · 1 评论 -
升级旧Delphi应用转向支持手机的一个思路
系统架构改为B/S。业务规则全部在服务端实现,使用REST服务器封装旧有系统,这样可最大程度的利用原有代码。客户端全部用HTML5+javascript。数据交换用JSON原创 2015-06-26 21:42:08 · 1106 阅读 · 0 评论