Delphi学习
文章平均质量分 52
北环阳光
这个作者很懒,什么都没留下…
展开
-
如何使用 Ehlib 实现自动排序(转)
在 Ehlib 的 DataService 文件夹下提供了一些可以使数据集实现自动排序的文件。TDBGridEh 使用这些文件中的相关对象可以实现当排序标记发生变化时实现自动排序。 如果你改变了数据网格及标题的排序标记而没有书写 OnSortMarkingChanged 事件,数据网格将尝试自动进行数据排序。DBGridEhDataService 尝试通过 GetDatasetFeaturesForDataSet 查找 TDataSet 中可以排序的特定的对象。正如你所知道的,TDataSet 不支持数转载 2010-12-13 12:59:00 · 1205 阅读 · 0 评论 -
Delphi 编译错误信息表
; not allowed before ELSEElSE前不允许有“;” clause not allowed in OLE automation section在OLE自动区段不允许“”子句 is not a type identifier不是类型标识符 not previously declared as a PROPERTY前面没有说明P原创 2013-01-18 16:21:05 · 7418 阅读 · 0 评论 -
在Delphi的属性 property中使用数组
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TGCNodeRec = record QVehicleArrayID:Integer;原创 2013-01-19 11:01:40 · 6740 阅读 · 0 评论 -
打开delphi 2010,提示"displayNotification: 内存不够"的解决
今天打开delphi 2010,提示"displayNotification: 内存不够",以前从来没碰到,经过研究发现时welcome page 产生的问题,正好对这个 welcome page页很反感,每次启动都出现。这次就干脆干掉它,禁止这个页面的办法如下:打开桌面或启动组中的 delphi2010图标的属性,在命令行后面加一个 -np"C:/Program Files/Embarc转载 2013-03-12 11:21:39 · 1435 阅读 · 0 评论 -
Delphi2007升级到Delphi 2010总结
http://www.cnblogs.com/MaxWoods/archive/2011/03/03/1970038.html这两天把一个使用Delphi2007成功升级到了Delphi2010。升级途中很艰辛,总结了 以下经验与大家分享。另外,D7使用的第三方组件,由于官方没有发布For Delphi2010的更新,修改的第三 方组件列表见文章尾部。1,PChar因为转载 2013-11-05 10:51:26 · 1269 阅读 · 0 评论 -
Delphi 2010 串口控件TComPort(可替代使用SPComm2010)
最近一个项目从Delphi 7 升级到Delphi 2010,项目中需使用串口通信,之前在Delphi 7中使用的串口控件为Spcomm,后来网上找到适用于Delphi2010版本的SPComm2010,安装过程还算顺利。使用串口调试助手接收,传输英文、数字等字符时,接收到的文本不完整,例如发送“test”,仅收到"te";原创 2013-11-05 14:46:44 · 10757 阅读 · 1 评论 -
Delphi中ComPort串口控件通信中的数据处理
http://www.cnblogs.com/gaiyang/archive/2011/09/02/2163265.html1.串口通信的基本原理:一般计算机与外部设备通讯有两种方式:并行传送(Parallel ):一次的传输量为8个位(1字节),通过并行端口,如打印机串行传送(Serial ):一次只传输1个位,通过串行端口,如RS-232位与字节的概念:二进制中转载 2013-11-06 21:57:49 · 14504 阅读 · 0 评论 -
Delphi 实现文件从Oralce数据库 Blob 字段的读写
首先:先了解一下Oracle中的clob与blob字段Oracle将LOB分为两种:内部LOB和外部LOB。内部LOB包括CLOB,BLOB和NCLOB三种类型,它们的数据存储在数据库中,并且支持事务操作(提交,回滚,保存点);外部LOB只有BFILE一种类型,该类型的数据被存储在操作系统(OS)文件中,并且不支持事务操作。其中,CLOB/NCLOB用于存储大批量字符数据,BLOB用于存储原创 2013-12-21 13:25:25 · 2205 阅读 · 0 评论 -
delphi 递归实现从m 个集合中 任取一个元素 生成组合
主要思想:求从n个数组任意选取一个元素的所有组合,对于这个问题,我们在直观上感觉很容易,但是用程序实现时则发现用for循环解决不了问题,因为n是随意的。在这里,我们用递归的思想,对于数据[1, 3, 4]; [2, 5]; [6, 7];我们可以1.将1,2,6压入栈中,然后输出栈中所有元素,之后弹出62.压入7,输出栈中所有元素,之后弹出73.弹出2,压入5,再压入6,然后输出原创 2014-06-27 10:41:33 · 1903 阅读 · 0 评论 -
项目从Delphi 7 升级到Delphi2010过程中遇到的有关FormPaint的问题
最近在将项目从Delphi 7升级到Delphi 2010的后,发现原来在Delphi下运行的一个类似StringGrid的第三方控件,在2010中运行时,当窗体被其它窗体覆盖,或者将窗体拖动到屏幕四周(窗体被屏幕覆盖一部分),然后再将窗体拖出时,第三方控件上有拖尾、黑影等出现(如下图所示),疑似没有自动调用Paint方法重绘。经多次测试,在Delphi 2010中,打开原De原创 2014-12-19 10:00:13 · 1492 阅读 · 0 评论 -
Delphi 2010 报 stack overflow的错误解决方法
近期在用Delphi 2010调试代码时,莫名其妙,总是报“stack overflow”的错误, 报错时光标停留在begin的位置,也就是说还没执行到函数体。 主函数中调用了两个子函数,注释掉其中的一个子函数,另一个单独运行时正常,每一个子函数中使用到了静态结构数组,经参考网上的帖子,在点击 Project 菜单中 -> Options -> Linking -> Maximum Stack原创 2015-07-06 16:08:40 · 3050 阅读 · 0 评论 -
DbgridEh数据导出到Excel的方法(Delphi)--适用Ehlib7.0+D7
uses DBGridEhImpExp;procedure TFrm_func.DbGridEhToExcel(ADgEh: TDBGridEh);var ExpClass: TDBGridEhExportclass; Ext: string; FSaveDialog: TSaveDialog;begin try if ADgEh.DataSo转载 2016-06-13 15:34:21 · 5112 阅读 · 0 评论 -
EhLib 7.0.133,有关DbGridEh的使用的一些细节
一、运行测试环境:D7+Ehlib 7.0.133二、1、连接:DBGridEh-->DataSource-->TMemTableEh-->TADODataDriverEh2、据网上说使用TMemTableEh才可以实现单元格内容自动换行,另外需设置 OptionEh中的 dghFitRowHeightToText=True; dghAutoFitRowHeig原创 2016-06-14 14:11:18 · 2665 阅读 · 2 评论 -
从 Delphi 7 升级到 Delphi 2010 基本数据类型的变化
-----------------------------------------------------------------------------------------------------------Delphi 7 字节数 Delphi 2010原创 2013-01-15 14:10:47 · 3384 阅读 · 0 评论 -
.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
转自:http://guanyue7613.blog.163.com/blog/static/885147420120404747235/ 这两天把一个使用Delphi2007成功升级到了Delphi2010。升级途中很艰辛,总结了 以下经验与大家分享。另外,D7使用的第三方组件,由于官方没有发布For Delphi2010的更新,修改的第三 方组件列表见文章尾部。1,PCha转载 2013-01-14 17:06:41 · 8213 阅读 · 0 评论 -
delphi 2010 新特性
转自:http://www.php100.com/html/open-php/qitaruanjian/2009/0912/3293.htmlDelphi 2010 的新功能其实并不是很多,并没有那么“惊艳”,主要都集中在“细节”改进。首先来张 About,版本号是:Delphi 2010 version 14.0.3391.20582:目前发现有以下 5 点改进:1、Obje转载 2013-01-15 09:42:04 · 3594 阅读 · 0 评论 -
点击Ehlib列标题的快速排序方法---最新(转帖)
Ehlib3.0以后的版本虽然支持排序功能,但不支持带有Order By的SQL语句,而且排序很慢;我写的这个排序函数,利用ADO的sort方法,排序很快,几万条数据也是很快。该函数支持Lookup字段排序,不支持计算字段排序,因为计算字段值在内存里高速运算。排序分为:升序、降序和默认三种,支持排序图标。procedure SortDBGridEh(Sender: TObject; ACol: Integer; Column: TColumnEh); var FieldNam转载 2010-12-13 14:14:00 · 1024 阅读 · 0 评论 -
Delphi编译指令说明
<br />《Delphi下深入Windows核心编程》(附录A Delphi编译指令说明)<br />Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有<br />时也需要对编译器进行必要的设置。<br />**********************************************************************************************<br />A转载 2010-12-21 16:20:00 · 641 阅读 · 0 评论 -
《Delphi下深入Windows核心编程》(附录A Delphi编译指令说明)
<br />《Delphi下深入Windows核心编程》(附录A Delphi编译指令说明)<br />Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有<br />时也需要对编译器进行必要的设置。<br />**********************************************************************************************<br />A转载 2010-12-28 09:25:00 · 646 阅读 · 0 评论 -
delphi arc 绘制弧线 抛物线
//声明: Arc( DC: HDC; {设备环境句柄} X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer {四个坐标点} ): BOOL; //举例: procedure TForm1.FormPaint(Sender: TObject); const x1 = 10; y1 = 10; x2 = 200; y2 = 200; x3 = 130; y3 = 200; x4 = 160; y4 = 10; begin Canvas.TextOut(x1,y1, '1'); Ca转载 2011-01-07 13:01:00 · 4432 阅读 · 0 评论 -
Delphi 7 下读取Oracle中值为null的字段的处理
<br />环境:Delphi 7 + Oracle 11g<br />Oracle中的字段值''就等同于null,这点和Sql Server不同,Sql Server中''(两个单引号的空字符)和null是两个值。<br />在Delphi 7中使用ADOQuery读取Oracle中的null字段时可用如下方式:<br /> <br />1、如果读取的字段是number数字型<br />aa := ADOQuery1.FieldByName('traincount').AsInteger;<br />注:原创 2011-02-10 11:51:00 · 3081 阅读 · 0 评论 -
delphi 中实现当期日期 减去 若干小时的方法
假定当期日期为:2011-08-01 15:00:00 now - 1 :代表前一天的日期 返回值:2011-07-31 15:00:00 now - 1/3 :代表8小时前 返回值:2011-08-01 07:00:00 now -原创 2011-08-01 15:28:09 · 3909 阅读 · 0 评论 -
Delphi启动/停止Windows服务,启动类型修改为"自动"
Delphi启动/停止Windows服务,启动类型修改为"自动"unit U_StartServices;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, WinSVC, StdCtrls;type TFor转载 2012-10-17 10:06:02 · 1441 阅读 · 0 评论 -
Delphi异常处理总结
Delphi异常处理总结http://www.cnblogs.com/doit8791/archive/2012/05/08/2489471.html 以前写delphi程序一直不注意异常处理,对其异常处理机制总是一知半解,昨天程序中的一个bug,让我对异常有了更深入的认识,必须要对可能产生异常的地方进行异常处理,否则可能给程序造成灾难,就像昨天,因为写的filecopy函数没有转载 2012-11-19 17:20:26 · 1009 阅读 · 0 评论 -
Delphi Setlength 内存释放总结
一、在Setlength 被调用次数不多时,可直接使用以下代码进行释放var aa: array of integer;procedure TForm1.Button1Click(Sender: TObject);var I: Integer;begin SetLength(aa, 1000); for I := 0 to 999 do begin原创 2012-11-20 14:07:19 · 14196 阅读 · 0 评论 -
delphi 中使用WaitForMultipleObjects等待线程执行,再执行后续代码
unit1unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) btn1: TButton; mm原创 2012-12-05 11:19:50 · 7350 阅读 · 0 评论 -
delphi Createthread的线程传参数(小熊论坛的)
转自:http://www.delphitop.com/html/xiancheng/1746.html unit1unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;转载 2012-12-05 11:14:40 · 3980 阅读 · 0 评论 -
Delphi多线程实例解析
转自:http://www.enet.com.cn/article/2007/0924/A20070924841584.shtml 我们都知道当前的Windows操作系统是一个“多线程”操作系统。那么什么是线程呢?线程就是进程中的一个实体,它和进程一样能够独立的执行控制,由操作系统负责调度,其区别就在于线程没有独立的存储空间,而是与同属于一个进程的其他线程共享一个存储空间,这使得多线转载 2012-12-09 20:35:39 · 1915 阅读 · 0 评论 -
检测delphi的程序的内存泄漏
Delphi 2007 下面,在主窗口的 FormCreate 加一条 ReportMemoryLeaksOnShutdown:=true; 有内存泄漏,会弹出一个对话框. CheckMem检测程序的内存泄漏 ,使用方法很简单,把 CHECKMem.pas 加到工程代码的第一行,重新编译程序. 再运行exe文件 . 有内存泄漏在本目录下 生成 CheckMemory.Log文件.转载 2012-12-10 11:09:09 · 6885 阅读 · 0 评论 -
Delphi下几种线程同步
转自:http://blog.csdn.net/xiaowei_001/article/details/4638789 总结一下Windows常用的几种线程同步技术。1.Critical Sections(临界段),源代码中如果有不能由两个或两个以上线程同时执行的部分,可以用临界段来使这部分的代码执行串行化。它只能在一个独立的进程或一个独立的应用程序中使用。使用方法如下://在窗体转载 2012-12-09 21:15:37 · 1162 阅读 · 0 评论 -
D7+Ehlib 7.0.133 DBGridEh,点击列标题排序属性设置好之后,有时无法排序的解决办法
如题,Delphi 7下安装了Ehlib 7.0.133 版本,使用DBGridEh-->DataSource-->TMemTableEh-->TADODataDriverEh连接这些控件,设置了DBGridEh的各个属性如下:设置 DBGridEh.OptionsEh.dghmultisortmarking := true; DBGridEh.sortloc原创 2016-06-15 10:41:06 · 2633 阅读 · 0 评论