摘要:每隔10年Borland都要经过一个生死劫?!1985年Borland 发布了Turb Pascal,Borland进入了10年辉煌期。1995年Borland 成功开发了Delphi 1.0 Borland起死回生,从死亡的边缘获得了新生!2005年Borland 又一次面临生死关口:连续两季度亏损,JBuilder战线失守,Kylix出师不利!总裁被迫下课!这一次Delphi 2005还能帮助...
阅读全文
07 2005 档案
摘要:DFM File(main.dfm): object MainForm: TMainForm Left = 301 Top = 163 Width = 696 Height = 480 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -16 Font.Name = 'T...
阅读全文
摘要:unit uMainFrm;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask;type TMainForm = class(TForm) btnPkgForm: TButton; medtOp1: TMaskEdit; me...
阅读全文
摘要:unit FunkFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFunkForm = class(TForm) Button1: TButton; procedure Button1Cli...
阅读全文
摘要:“类引用”不过是内存中的某个区域,其中包含了相关类的信息,这和类的类型定义是一回事。当用VCL流系统或RegisterClass()函数注册这个类时,类引用就会进入内存。FindClass()函数查找内存区域,定位某个指定类名的类,并返回一个指向那个位置的指针,这不同于类实例。类实例通常是创建于调用构造函数时。例如:TChildFormClass = class of TChild...
阅读全文
摘要:在创建包之前,需要就一些事情做出决策。首先,需要知道将要创建的包的类型(运行期包、设计期包等)。需要根据不同的情况选择包的类型,这一点我们马上就会说明。第二,要知道给新创建的包取个什么样的名字,以及把这个包项目存放在什么地方。记住存放配置好的包的目录也许并不是创建包的目录。最后,需要知道这个包包含哪些单元以及它还需要哪些其他的包。 1. 包编辑器 最常见...
阅读全文
摘要:使用DLL来为它们的服务器应用程序存放管理窗体会导致DLL拥有自己的Forms.pas文件副本。将将会引起一个不可思议的错误,该错误与Windows的窗口句柄处理有关。Windows窗口句柄处理产生于DLL中——当DLL被卸载时,窗口句柄却不能被操作系统解除参照。下一个穿过队列被发往顶层窗口的消息会导致应用程序出错,这样操作系统就会因为应用程序处于非法状态而将它关闭。使用包代替DL...
阅读全文
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public de...
阅读全文
摘要:unit UfrmMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TfrmMain = class(TForm) btn1: TButton; btn2: TButton; btn3:...
阅读全文
摘要:No.1 Delphi中的Include文件 begin ShowMessage({$I File1.txt}; //有错吗? ShowMessage(UpperCase({$I File1.txt}); end; //新建一个文本文件“File1.txt”、内容填写为:“'Hello Word')”看看 No.2 可爱的强制转换 var B: Byte begin Char(B) ...
阅读全文
摘要:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码18位:由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。生日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。...
阅读全文
摘要:1.数论算法 求两数的最大公约数 function gcd(a,b:integer):integer; begin if b=0 then gcd:=a else gcd:=gcd (b,a mod B); end; 求两数的最小公倍数 function lcm(a,b:integer):integer; begin if a0 do inc(lcm,a); end; 素数的求法 A.小范围内判断...
阅读全文
摘要:使用方法, uses 本单元——>使用如:Pub.MsgBox('你好,欢迎使用本公用函数!');ShowMessage(Pub.PathExeDir); //////////////////////以下源码开始{$DEFINE Delphi6}//D5下不要此句unit PubFuncUnit;interfaceuses Windows, SysUtils, ShellAPI, Messages...
阅读全文
摘要:在DLL中使用ADO数据库组件时,调用程序调用该DLL时会出现"尚未调用CoInitialize"错误,解决的办法是在程序初始化时调用CoInitialize(nil)方法,就可以了。
阅读全文
摘要:防止用户误输入是软件开发的一项必不可少的工作,除才之外,还要为用户的使用提供最大方便。当然,我们可以利用或开发新的组件,以完成这些功能。但是,在团队开发中,每个成员都用自己认为不错的组件开发自己所承担的模块,会给软件的后期维护带来麻烦。交工的时候,项目负责人可不买你的帐。如果你用函数调用来完成这些功能,老盖也管不着。下面就是针对常用delphi组件的限制用户输入函数,但愿网友们能用的上。(...
阅读全文
摘要:1-1 多线程的基本概念 WIN 98/NT/2000/XP 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者说,把CPU 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感觉是同时运行的。 多线程带来如下好处:(自己阅读) 1)避免瓶颈; 2)并行操作; 3)提高效率...
阅读全文
摘要:一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,emailFROM testtableWHERE name='张三'(一)选择列表 选择列表(select_list)指出所...
阅读全文
摘要:字符 十进制数 十六进制数 注解 NUL 0 00 Null SOH 1 01 Start of Heading STX 2 02 Start of Text ETX 3 03 End of Text EOT 4 04 End of Transmission ENQ 5 05 Enquiry ACK 6 06 ...
阅读全文
摘要:DELPHI中的消息处理机制 Delphi是Borland公司提供的一种全新的WINDOWS编程开发工具.由于它采用了具有弹性的和可重用的面向对象Pascal(object-oriented pascal)语言,并有强大的数据库引擎(BDE),快速的代码编译器,同时又提供了众多出色的构件.受到广大编程人员的青睐.在众多的编程语言(如VB,PowerBuilder,Powerpoint等)中脱颖而出...
阅读全文
解决“Row cannot be located for updating. Some values may have been changed since it was last read.”的问题
摘要:在数据库编程中经常会出现这种问题。出现这种问题的原因是:ADO组件在update的时候是用主键与所有修改的字段的原值作为where条件的(可以通过事件跟踪看到)。解决办法:在程序中提供所有字段的值,而不是利用SQLServer的缺省值。或者ADODataset|Properties['Update Criteria'].Value :=adCriteriakey;注意在程序单元中要引用ADOInt...
阅读全文
摘要:要想使实数类型字段的显示不是一堆有效数字的话,可以修改字段的“displayformat”属性。假设使用TADOQuery类型的数据集,可以这样在运行时修改:(ADOQuery.Field[0] as TFloatField).DisplayFormat :='0.00'。这样的话,小数就显示成两位有效数字,但不会影响数字的实际存储。
阅读全文
摘要:性能分析工具GpProfile 作者 陈省 简介 两年前在我的机器还是AMD K6 233和128M内存的时候,我曾经尝试用JBuilder和JDK 1.2编译运行过的最复杂的Java程序是Hello World,当时Java程序给的印象就是每次编译运行的间歇我可以煮一杯咖啡,这使得我在当时非常羡慕那些工作悠闲成天喝咖啡的Java程序员。 在将我的古董电脑升级为AMD Athlon XP 170...
阅读全文
摘要:大多数过程和函数的声明头里都包括参数列表,如: function Sum(X : Integer; Y : Integer) : Integer; 其参数列表是(X : Integer; Y : Integer),参数又可以分为形参和实参。形参是在过程和函数声明时参数列表中的参数,而实参是函数调用时参数列表中的参数。需要注意的是,在过程和函数声明的时候,...
阅读全文
摘要:高级停靠(Dock)技术的实现 介绍 所谓停靠就是可以用鼠标拖动窗体或者控件,并将其从一个父窗体移出或者移动到另一个父窗体上,可以按水平,垂直方向整齐排列, 并且可以停靠在分页控制组件上。下面的示意图是一个Delphi IDE的窗口停靠示意图: 考察一些常用的软件如Office等大型软件,会发现大多提供窗体停靠的功能。微软的MFC很早就引入了工具条的拖放功能,可以将工具条上窗口上边拖放到窗...
阅读全文
摘要:Action高级开发 Action开发篇 在讨论Action的开发前,我想先讨论一下为什么要使用TActionList及TAction。从Delphi 4开始Borland提供了TActionList控件,ActionList提供了一种全新的设计用户界面交互模式的方法。传统的事件模式无法解决命令状态更新的问题,因为任何情况下命令都是有效的。Delphi 4通过使用ActionList及Ac...
阅读全文
摘要:极限编程的集成测试工具-Dunit 作者 陈省(hubdog) 简介 极限编程(Xtreme Program)的测试理念是,在开发程序的之前或者同时就要编写出相应的测试程序,而不是象通常那样等到测试阶段再来编写测试程序。 当程序完成时,它的测试程序也应该已经完成。从软件工程的普遍规律来看,每修正一个bug的同时会以20%的几率引入新的bug。而XP的测试方式是, 每当修改Bug或者重构代码后...
阅读全文
摘要:一、Dll的制作一般分为以下几步: 1 在一个DLL工程里写一个过程或函数 2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。 二、参数传递 1 参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。 2 最好有返回值[即使是一个过程],来报出调用成功或失败,或状态。成功或失败的返回值最好为1[成功]或0[失败].一句话,与windows c++兼...
阅读全文
摘要:一、VBA代码含义Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word功能的扩展。Microsoft Visual Basic在word中的代码即Word的宏,通过编写Word宏,可实现一些文档处理的自动化,如实现文档的自动备份、存盘等,可扩展Word文档的功能,...
阅读全文
摘要:从Dll中导出类,想必大家首先想到的是使用bpl包。这种方式有一个不好,那就是使用者必须清楚这个包中含有那些类,也就是说必须知道类的名字——这在一定意义上是个限制,试想一种情况,使用者定义了一个底层的抽象类(abstract class),然后在此基础上定义了许多应用类(concrete class),那么,对于使用者来说,他希望在不知道具体有哪些类的情况下能使用这些类——这么说似乎有...
阅读全文
摘要:32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。一、创建和释放TRegistry对象1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry:=TRegistry.Create;2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。 二、指定要操作的键...
阅读全文
浙公网安备 33010602011771号