Delphi
文章平均质量分 81
youxiazzz12
这个作者很懒,什么都没留下…
展开
-
什么是运行期包与设计期包 (同时解释了产生 DesignIntf 错误的原因)
运行期包,只能编译,不能安装的 本文以 CnPack.dpk (运行期包)、dclCnPack.dpk (设计期包)为例说明。这两个包,一个是运行期包,另一个是设计期包,设计期包包含有组件编辑器。 组件包通常按运行期包和设计期包两个包来发布,其中运行期包中包含了应用程序编译实际需要的单元,而组件编辑器、属性编辑器这些专门为 IDE 设计期编写的代码在应用程序的 exe 中转载 2012-02-09 17:11:41 · 1906 阅读 · 1 评论 -
delphi VC 变量对应关系
long longwordint integerunsigned char ucharunsigned int * pLongwordunsigned char* puchar原创 2013-08-28 11:08:28 · 513 阅读 · 0 评论 -
Delphi调试服务程序的两种方法
近日在做服务项目中总结了两种delphi service调试方法,供大家借鉴:一、编译指令这种方法原理就是让服务以普通程序的方式来运行。首先处理项目文件的单元头(RUNASAPP即为编译指令的条件):?123456uses{$IFDEF RUNASAPP}Forms, {$ELSE}SvcMgr,转载 2013-08-15 12:20:16 · 3010 阅读 · 0 评论 -
TSaveDialog怎么不自动关闭
在Option中有个ofOverwritePromt属性,设置成ture即可原创 2012-12-06 14:39:29 · 386 阅读 · 0 评论 -
获取CPU的ID号
program Project2;$APPTYPE CONSOLE}uses SysUtils, StrUtils, Windows; //注重,要加入这个文件type //CPUID 一共有4组,4组连接成串是世界唯一的,常用于软件注册 TCPUID = array[1..4] of Longint;function GetCPUID: TCPUID;转载 2012-11-21 17:07:31 · 674 阅读 · 0 评论 -
DELPHI中的消息处理机制
Delphi是Borland公司提供的一种全新的WINDOWS编程开发工具.由于它采用了具有弹性的和可重用的面向对象Pascal(object-orientedpascal)语言,并有强大的数据库引擎(BDE),快速的代码编译器,同时又提供了众多出色的构件.受到广大编程人员的青睐.在众多的编程语言(如VB,PowerBuilder,Powerpoint等)中脱颖而出.其中一个DELPHI强于其他编转载 2012-09-13 10:47:44 · 1090 阅读 · 0 评论 -
delphi自定义消息
假设你的消息这样定义: Const WM_YOURMSG=WM_USER+100; 你的过程定义可以这样: procedure YourProc(var MSG:TMsg);message WM_YOURMSG; 这样,当你的窗口收到该消息时,将调用这个过程。 例如:转载 2012-09-13 14:18:41 · 777 阅读 · 0 评论 -
深入理解Delphi的消息机制
永远记住,无论你是用 SDK 还是借用 VCL 来创建窗口,都要遵循 Windows 的游戏规则,即先注册窗口类,然后再创建窗口实例,在消息循环中写实现代码。你还要知道 Windows 已经为了我们预注册了多个窗口类,例如“Edit”、“ComboBox”,这时候我们要做的就是直接创建这些窗口,无需注册窗口类了;在 Delphi 中这一切更简单了,VCL 全部为你做好了,你只需简单地在设计窗体上拖转载 2012-09-12 17:10:11 · 761 阅读 · 0 评论 -
理解EnterCriticalSection 临界区
通俗解释就像上厕所: 门锁了,就等着,等到别人出来了,进去锁上,然后该干什么干什么,干完了,把门打开 门没锁,就进去,锁上,然后该干什么干什么,干完了,把门打开 -------------------------------------------------- 多线程中用来确保同一时刻只有一个线程操作被保护的数据 InitializeCriticalSection(&cs);转载 2012-09-07 10:20:57 · 2377 阅读 · 0 评论 -
delphi 中TObjectQueue使用注意点
TObjectQueue 开始使用的时候都要创建一个对象objQueue1,但是delphi中,对象其实都类似VC++中的指针,所以如果你来一个objQueue2 := objQueue1 这样的赋值操作,严格来讲,并不是赋值,而是把objQueue1的地址赋给了objQueue2所以如果程序退出,你分别尝试释放这两个对象时,就会报错,因为他们指向的是同一个地址。此外,pop操原创 2012-09-03 15:02:09 · 4188 阅读 · 1 评论 -
delphi一句话帮助
1. 如果想你的程序能够正确处理异常情况的话,请引用SysUtils.pas单元,否则即使程序使用了try。。。except。。。也不能正确捕获异常。2. 定义常量字符串的一种方式resourcestring aa='aaaa';raise Exception.CreateRes(@aa);3. 字符串常量数组的初始化const转载 2012-09-04 15:38:55 · 549 阅读 · 0 评论 -
Delphi的对象注销方法Destroy和free的区别
当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来。您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存。 Delphi的注销方法有两个:Destroy和Free。Delphi建议使用Free,因为它比Destroy更为安全,同时调用Free会生成效率更高的代码。 您可以用下列的语句释放用完的Employee对象:转载 2012-09-03 10:44:38 · 6906 阅读 · 0 评论 -
Delphi代码标准文档
Revision 1.0.0.5编者:Riceball(riceball@cq118.com) 本文主要基于“Delphi Development Guide”一书的代码标准部分而来,编者参考其它的Delphi代码标准规范,以及结合现目前Delphi社区中流行的程序书写惯例,作了一些修改和裁剪,你也可以根据自己的需要进行裁剪和修改。如果你有什么建议,或是希望编者加上你认为遗漏的东西转载 2012-08-23 10:18:35 · 688 阅读 · 0 评论 -
delphi中application.processmessages的作用
procedure TForm1.Button2Click(Sender: TObject);var I, J, X, Y: Word;begin I := 0; J := 0; while I begin Randomize; while J begin Y := Random(J);转载 2012-08-14 09:54:56 · 1754 阅读 · 0 评论 -
TApplication与主消息循环
Windows应用程序的每一个窗口都有一个大的消息循环以及一个窗口函数(WndProc)用以分发和处理消息。VCL作为一个Framework,当然会将这些东西隐藏起来,而重新提供一种易用的、易理解的虚拟机制给程序员。那么VCL是如何做到的呢?本节就来解答这个问题。只要代码单元中包含了Forms.pas,就会得到一个对象——Application。利用它可以帮助我们完成许多工作。例如要退转载 2012-06-13 23:28:08 · 1472 阅读 · 0 评论 -
Delphi 回调函数 线程
今天在DELPHI上随便编写了个回调函数的例子,怕以后忘了,赶紧给它给记下来,呵呵。觉的好简单,什么都没有,只是在同一个单元内,利用了DELPHI的多线程调用回调函数,高手别见笑哈!下次肯定要多加点东西完善滴,这次只是熟悉一下实现回调的整个过程。interfaceuses Windows, Messages, SysUtils, Variants, Classes, Grap转载 2012-03-26 14:48:51 · 3238 阅读 · 0 评论 -
Message 'You cannot use the EurekaLog package in other packages'.
Problem:When I add ExceptionExpertXXX.bpl to my package I get an error message 'You cannot use the EurekaLog package in other packages. Remove the "XXX" file from the "YYY" package and rebuild it.'转载 2012-02-16 10:41:52 · 742 阅读 · 0 评论 -
解决program or unit 'variants' recursively uses itself报错问题
今天遇到一个奇怪的问题,在编译项目时报program or unit 'variants' recursively uses itself,意思是递归调用Variants单元。转到Variants单元后查看,发现uses语句中没有递归调用,而其出错位置也始终在procedure VarCopyByRef(var Dest: TVarData; const Source: TVarData)过程中。转载 2012-02-09 15:01:18 · 2510 阅读 · 0 评论 -
在delphi线程中实现消息循环
Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供.花了两天的事件研究了一下win32的消息系统,写了一个线程内消息循环的测试.但是没有具体应用过,贴出来给有这方面需求的DFW参考一下.希望大家和我讨论.{--------------------------------------------------------------转载 2014-07-03 09:16:37 · 3958 阅读 · 0 评论