Delphi 组件撰写常问问题(1)
日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]-
1 此份文件的目的为何?
这份文件的目的是为了解答有关撰写 Delphi组件时常见或文件上找不到的问题。我曾经花了一段很长的时间来了解探索 TDataLink 类别,这让我觉得应该将撰写组件时常遇到的问题及经验心得写下来,分享给大家。不过我并不能保证写在这份文件里头的解答完全正确。如果你对其中的任何问题有更好的解决方法,或认为有什么信息适合放在这份文件里的话,请告知作者。有任何错误或缺漏也欢迎指正。
除了再加上更多的问题及解答外,我试着再补充两个部分:进阶程序设计师喜爱的工具:这也许跟组件设计没有直接的关系但至少它们跟 Delphi有关系。
2 在整合环境中如何找出组件所产生的问题?
唯一能找出问题的方法只有:
在 Delphi 整合环境的 ToolsOptions 对话框的 Library 页中将『Compile with debug info』选项打勾。
选 ComponentRebuild Library 重新编译组件库。
从 Turbo Debugger 中执行 Delphi。
选FileChange Dir移至包含组件程序代码的目录下。
如果你的组件发生GPF时就可以检视堆栈然后得知到底是哪些发生问题了。2 如何检视 Delphi 所产生的汇编语言码?
的回答:
开启登录编辑程序(REGEDIT.EXE),接着到『HKEY_CURRENT_USER\Software\Borland\Delphi\2.0\Debugging』下新增一个字符串机码『EnableCPU』,将它的字符串值设为『1』。此后Delphi整合环境的View选单下就会多一个『CPU』选项,它会开启一个窗口来检视目前程序指令的内存及汇编语言。你可以在侦错时利用单步追踪或其它方法来观察它。3 我可以在执行时期动态建立组件,但在设计时期就会发生错误。为什么?
你的组件必须继承自TComponent类别或其衍生类别。
你的组件建构函式及灭构函式宣告必须看起来像这样:
constructor Create(AOwner: TComponent); override;
destructor Destroy; override ;所有在published区段宣告的字段型态必须是ordinal、single、double、extended 、comp、currency、string、small set(译注:指元素编号不超过0..31这个范围的集合;平常的集合可容许的范围为0..255)、method pointer或class其中一种。如果你宣告了其它型态的字段,Delphi编译器并不会检查出错误。然而当你使用这个组件时依然会得到一个GPF。
如果你想让TMyComponent组件可以在设计时期操作,注意下面的宣告会引发十分严重的问题:type TComplex = record
RealPart: Double;
ComplexPart: Double;
end;
class TMyComponent = Class(TComponent)
private
F1: TComplex;
published
property P1: TComplex read F1 write F1;
end;4 如何撰写一个无法放置到表格上的组件?
如果你不想让使用者将组件拉曳至表格上的话,使用 RegisterNoIcon 及 RegisterClass 程序来注册组件。
- [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] 下一页
-
- Delphi 组件撰写常问问题(1) 相关文章:
- ·Delphi 组件撰写常问问题(1)
- Delphi 组件撰写常问问题(1) 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:format常用用法
下一篇:在Delphi动态生成定义数据库
精品推荐
热点TOP10
- ·Delphi下的ADO使用方法!
- ·在Delphi中实现数据分析模块的动态报表
- ·在Delphi中控制扫描仪
- ·用拼音首字符来实现检索功能
- ·让Delphi的DBGrid支持鼠标轮
- ·自 动 隐 藏 的 声 象 按 钮
- ·OpenGL简介
- ·用Delphi制作动态有声标签
- ·从 实 例 看 Delphi 4 中 的 动 态
- ·Delphi中为DBGrid控件添加色彩
- ·常用的BCB & Delphi 函数
- ·产生不重复随机数的简便算法
- ·陈经韬2002原创资料
- ·Delphi2005试用版安装指南
- ·Delphi中ListBox控件的六种特效
- ·第三方控件使用方法
- ·关于SMTP和POP3使用及关于客户-服务端的自动连线问题
- ·关于MP3中的ID3V2格式探讨及我写的ID3V2读取源码
- ·监视打印机部分线程内容
- ·获取其他进程中ListView的文本
