
Delphi类
文章平均质量分 55
胡伟峰
这个作者很懒,什么都没留下…
展开
-
修复DBGrideh编辑界面,当字段为datetime、smalldatetime数据格式的时候,下拉报除数为0的bug
在一个项目中,偶尔接到客户的反馈,当新增单据的时候DBGrideh涉及到日期格式选择的时候,偶尔会报除数为0(Division by zero)错误,一开始没有头绪,以为是操作系统兼容性问题,因为客户在操作步骤发生时没有涉及到任何数据的操作终于实在受不了类似情况发生,跟踪了一把项目运行,发现DBGrideh源码文件GridsEH.pas中有这么一段procedure TPopupListboxEh.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);原创 2021-04-09 20:32:21 · 351 阅读 · 0 评论 -
FDAC总结数据链接
项目需要,FDAC一般链接用到MSSQL、MySQL1.MSSQL链接 官网翻译:大多数应用要求指定如下参数: DriverID, eg. "Driver=MSSQL" Server, eg."127.0.0.1\SQLEXPRESS", "SrvHost,4000" Database, eg. "Mast" OSAuthent, 控制认证模式,...原创 2020-02-10 23:00:59 · 469 阅读 · 0 评论 -
多线程总结 - 陆续整理
做项目再次涉及到多线程的操作,曾经分时段研究了下多线程,每隔一段时间研究,总会多一点新的感悟和理解。整理下,后续随时总结记录吧1. 先谈谈两个命令,引出TEvent Suspend 和 Resume 两个命令,一个是暂停,一个是恢复继续执行 因为两个命令自XE开始被标识为 deprecated, 而且不符合多线程安全(看了下TEvent说明,大致是因为TEven更适合T...原创 2020-02-10 10:20:14 · 211 阅读 · 0 评论 -
关于指针操作及内存影响的陆续总结
1. 对象赋值TTest = class(TObject) ...end; var Test1,Test2: TTest; //情景一:共享内存 //Test2变动将影响Test1值,Test2与Test1指向同一内存空间,Test2指针指向Test1 Test2 := Test1;//情景二:独立内存//Test2变动不会影响Test1,Te...原创 2020-02-01 11:45:54 · 160 阅读 · 0 评论 -
Delphi CxGrid 汇总(3)
列 解决: .GroupIndex := -1; .Visible := True;****************************************************************************39 保存修改到数据库解决:procedure .FormClose(Sender:转载 2013-11-28 10:19:11 · 1207 阅读 · 0 评论 -
Dll学习二_Dll 窗体中动态创建数据并使用Demo
沿用上一篇Demo环境:DelphiXE,XP,SQL2005贴出改动过的单元代码:unit SubMain_Unit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, FyDataConn_Unit, ActiveX原创 2013-11-28 10:09:21 · 1118 阅读 · 0 评论 -
Dll学习三_Dll 相互间以及主程序间的数据共享——测试未通过,应该用内存映射
测试环境:XP,DELPHI XE验证通过结构:主程序+一个Dll窗体共享方式原理:通过主程序与各Dll定义相同的参数结构体,由主程序实例化该结构体,对于各Dll间的共享,通过传主程序实例化的结构体指针达到各Dll与主程序相互间的数据共享。且Dll释放不影响主程序实例化结构体时获得的内存空间主程序代码:unit Main_Unit;interfaceuses W原创 2013-11-28 16:20:00 · 1175 阅读 · 0 评论 -
Delphi中SOAP组件原生的EncdDecd单元,作用于流Base64编码转换
{*******************************************************}{ }{ Delphi Runtime Library }{原创 2014-11-12 20:51:24 · 2368 阅读 · 0 评论 -
RemObjects SDK Source For Delphi XE7
根据网上RemObjects SDK for Delphi - 7.0.63.1055 retail FullSource源码版本修改,支持Delphi XE7。下载地址: http://www.colafile.com/file/2119539http://yunpan.cn/cAvwhZ6Cii55E 提取码 ae0b原创 2014-11-23 22:21:36 · 1327 阅读 · 0 评论 -
使用Indy解决Could not load SSL Library错误
今天花了1天时间终于搞明白了在使用Indy时如何解决Could not load SSL Library。 测试平台:DelphiXE7 + Indy 10.6.0.5169 + Win7 64bit步骤:1. SSL下载版本:openssl-1.0.1j-i386-win32 可去http://yunpan.cn/cAWTYZ3VMHv36 提取码 3551进行下载 ...原创 2014-11-25 22:17:40 · 21384 阅读 · 1 评论 -
CoInitialize错误引起的错误症状整理
虽然知道这个问题应该怎么去解决,但是真要用时,竟然想不起来那个引用的Unit以及函数名,留此仅做记号使用“尚未调用CoInitialize错误” 多见于Dll内使用数据操作,所以需要在Unit创建时初始化initialization CoInitialize(nil);finalization CoUninitialize;要想以上代码生效,必须先引用单元Ac原创 2014-12-02 08:35:24 · 2559 阅读 · 0 评论 -
Delphi的正则官方单元
uses System.RegularExpressions教材可参考万一博客:http://www.cnblogs.com/del/category/113551.htmlhttp://www.cnblogs.com/freespider/archive/2009/12/24/1631404.html原创 2014-12-02 14:45:43 · 575 阅读 · 0 评论 -
修复DBGrideh使用TMemTableEh在Footers求平均值为0的Bug
在一个项目中,使用DBGrideh,当使用自带的内存数据集时,对于Footers添加的求平均值,一直显示为0,其他汇总数据都是可以的,而切换使用TClientDataSet或者TADODataSet,所有汇总数据包括平均值都有值。打开相关部分源码查看了下,发现DBGrideh自带的内存数据集关于汇总平均数这块,竟然没有处理……,什么情况?原始相关函数:procedure TCustom原创 2015-01-28 10:11:53 · 1599 阅读 · 0 评论 -
【跟随万一老师的足迹】查找目录下文件,在万一老师的基础上升级下,支持多文件查找 - 文件操作(一)
看了万一老师的“遍历某个文件的文件及子文件“,经过层层优化,结合实际需要,在万一老师代码的基础上,增加了多文件查找的功能//sysGetFileList(List,'c:\','*.doc,*.exe'); List通过查找添加多文件//sysGetFileList(List,'c:\','*.doc'); List通过查找添加单文件原创 2015-02-07 09:36:09 · 773 阅读 · 1 评论 -
【跟随万一老师的足迹】引用即可解决互斥问题的单元
//工程引用此单元就能防止同时出现多个实例unit MultInst_Unit;interfaceuses Windows ,Messages, SysUtils, Classes, Forms;implementationconst STR_UNIQUE = '{2BE6D96E-827F-4BF9-B33E-8740412CDE96}'; MI_ACTIV原创 2015-02-06 23:07:16 · 594 阅读 · 0 评论 -
文件查找记录类型 - TSearchRec - 文件操作(二)
SysUtils单元下的TSearchRec是一个记录类型,主要通过FindFirst, FindNext, and FindClose使用。接上一篇举例说明TSearchRec常用成员//sysGetFileList(List,'c:\','*.doc,*.exe'); List通过查找添加多文件//sysGetFileList(List,'c:\','*.doc');原创 2015-02-07 11:25:03 · 1452 阅读 · 0 评论 -
cxGrid使用汇总(一)
1. 去掉cxGrid中台头的Box解决:在tableview1的ptionsview的groupbybox=false; 2.统计功能解决:(1) tableview1. tableview1的optionsviewfooter=ture2.然后在cxGRid1的customize..中的summary 的footer.add需要合计的列kind= skSum转载 2013-11-28 10:17:14 · 878 阅读 · 0 评论 -
Dll学习一_Dll 创建并动态引用窗体且释放窗体Demo
1、新建Dll工程2、Dll工程全部代码library SubMain;{ Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source原创 2013-11-22 15:10:56 · 3199 阅读 · 0 评论 -
Delphi CxGrid 汇总(4)
1. CxGrid汇总功能① OptionsView-Footer设置为True,显示页脚 ② CxGrid的Summary选项卡定义要汇总的列和字段名及汇总方式,Footer选项卡定义单个汇总,Default For Groups定义按组汇总。OptionsView-GroupFooters设置为gfAlwaysVisible则显示按组汇总。设置后界面如图。转载 2013-11-28 10:20:16 · 2340 阅读 · 0 评论 -
调用DLL窗体-Delphi实例
<br />(一)通过向导DLL Wizard新建一个动态链接库,取名为:DLLPro.dpr。说明:当在DLL工程文件中使用了String类型时,要有 uses ShareMem ,不过建议使用PChar类型。其代码如下:<br />libraryDLLPro; //编译生成DLLPro.dll文件。<br />uses<br />ActiveX,<br />Forms,<br />Windows,<br />SysUtils,<br />Classes,<br />DLLUnt i原创 2010-10-12 20:25:00 · 1570 阅读 · 0 评论 -
record not found or changed by another user 解决方法
在写项目时,碰到随机产生如上错误,后仔细检查发现,客户端主从表分别更新时,过程为当从表更新,先更新主表,然后再次打开主表获得关键ID作为从表的关联数据值,再更新从表。当主表ID为自动增量时,此时,就会产生客户端与服务端ID不同步,更新从表时无法获取新增主表ID。 更改方法原创 2011-10-11 21:09:25 · 1141 阅读 · 0 评论 -
delphi xe编译报Unit not found: 'System.pas' or binary equivalents 的解决办法
这个是因为Library Path 中缺少 $(BDSLIB)/$(Platform)/release添加上就没问题了。转载 2011-10-11 21:03:26 · 899 阅读 · 0 评论 -
ClientDataSet使用心得和技巧
影响ClientDataSet处理速度的一个因素TClientDataSet是Delphi开发数据库时一个非常好的控件。有很强大的功能。我常常用ClientDataSet做MemoryDataSet来使用。还可以将ClientDataSet的数据保存为XML,这样就可以做转载 2011-10-15 15:30:48 · 710 阅读 · 0 评论 -
更改Delphi新建窗体系统的默认字体
每新建一个窗件都要改默认字体,不方便.通过添加注册值可更改Delphi系统的默认字体修改注册表:HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\FormDesign Delphi 5:HKEY_CURRENT_USER\Software\Borland\Delphi\5.0Delphi 6:HKEY_CURRENT_USER\原创 2011-10-24 23:44:31 · 1017 阅读 · 0 评论 -
获取系统字体列表
Uses Forms,........implementation{$R *.dfm}procedure TForm1.Btn_1Click(Sender: TObject);begin Mmo_1.Clear; Mmo_1.Lines := Screen.Fonts;end;原创 2011-10-25 12:27:57 · 1562 阅读 · 0 评论 -
改变标题字体,菜单字体(未测试)
varncm: TNonClientMetrics;beginncm.cbSize := SizeOf(TNonClientMetrics);{get old non client metrics}SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(TNonClientMetrics), @ncm, 0);{lfCa转载 2011-10-25 12:51:23 · 457 阅读 · 0 评论 -
ClientDataSet 心得
1. 与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。很多数据库应用程序都用了BDE,BDE往往给发布带来很大的不便,因而TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不转载 2011-11-02 11:23:21 · 1355 阅读 · 0 评论 -
DevExpress12.2.6 安装顺序记录
环境DelphiXE,实测DevExpress手工安装顺序:1、ExpressCore Library2、XP Theme Manager3、ExpressGDI+ Library4、ExpressLibrary5、ExpressCommon Library6、ExpressDataController7、ExpressEditors Library 58、原创 2013-11-20 21:32:45 · 2435 阅读 · 0 评论 -
字符串函数_比较字符串与字符串集合
引用StrUntil.pas单元里面有两个函数可以比较字符串与字符串集合,判断是否字符串在字符串集合中。函数 function AnsiMatchStr(const AText: string; const AValues: array of string): Boolean; $[StrUtils.pas功能 返回字符串数组AValues中是否包含字符串AText原创 2013-11-27 23:52:38 · 845 阅读 · 0 评论 -
TClientDataSet中关于TField、TFieldDef动态创立字段的应用
//使用 TFieldDef 建表: begin with ClientDataSet1.FieldDefs do begin Add('Name' , ftString, 12, True); { True 表示是必填字段 } Add('Age', ftInteger); end; ClientDataSet1.CreateDataSet; end; //转载 2013-11-27 22:12:44 · 3329 阅读 · 0 评论 -
Delphi CxGrid 汇总(2)
17. 怎样设计多表头的cxGrid?解决:cxGrid可以解决如下的表头:---------------------------------| 说明1 | 说明2 |---------------------------------| 字段1 | 字段2 | 字段3 | 字段4 || 字段5 | 字段6 || 字段7 | 字段8 | 字段9 |实现这个很简单,你可转载 2013-11-28 10:18:28 · 953 阅读 · 0 评论 -
TiniFile成员函数说明
TiniFile类不是一个Delphi的部件,因此不能在Delphi的VCL模板中找到,它在Delphi 系统中的inifiles单元中定义,因此要使用TiniFile类,必须在使用该类的单元文件中用Uses inifiles指令明确地说明。 TiniFile类中定义了许多成员函数,这里介绍几个使用频率较高的成员函数:⑴ Create() 函数定义为: constructor原创 2008-09-11 14:59:00 · 967 阅读 · 0 评论