![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
delphi
文章平均质量分 61
khzide
这个作者很懒,什么都没留下…
展开
-
Delphi TFDCustomSchemaAdapter TFDTableAdapter 主从表 集中式更新总结
DBMS identifier. So, if the application is connected to this DBMS, then the Y text will be substituted into command. 因此,如果应用程序连接到这个 DBMS,那么 Y 文本将被替换为命令。Time constant. must be specified in 'hh24:mi:ss' format. 时间常数。在某些情况下,应用程序需要指定另一个 DB 表名,更新将发布到该表。原创 2022-10-24 18:28:20 · 1589 阅读 · 0 评论 -
delphi dxBarManager的dxBarEdit输入问题
我试过sendmessage,但cxBarEditItem控件没有handle, 消息类型也找不到对应的。问题:dxBarManager1 里面添加了cxBarEditItem1 这是个文本框,的 AlwaysSaveText 属性为 True,就会自动保存你所输入的文本。这里面所有能改变值的控件都是这样子的,有没有什么办法可以在控件去焦点时,运行可以输入内容,但是当焦点失去时,刚刚输入的内容没了.只能每次输完内容后一定要按回车才能保存内容.自动保存刚刚的更改?原创 2022-09-29 18:16:15 · 522 阅读 · 1 评论 -
Delphi Edit Memo 右键系统菜单加自定义菜单项
Delphi Edit Memo 右键系统菜单加自定义菜单项原创 2022-09-21 22:52:53 · 483 阅读 · 0 评论 -
【翻译】在GitHub上通过星级评估排名前10的最受欢迎的开源Delphi项目
【翻译】在GitHub上通过星级评估排名前10的最受欢迎的开源Delphi项目原创 2022-09-06 11:42:31 · 765 阅读 · 0 评论 -
ISAPI在IIS7上的配置
缩写词=Internet Server Application Programming Interface为Microsoft所提的Internet server的API 。ISAPI分为两种:ISAPI extension (ISAPI扩展)和 ISAPI filter (ISAPI筛选器)。1、ISAPI 服务器扩展是可以被 HTTP 服务器加载和调用的 DLL。ISAPI扩展(extension)也称为 Internet 服务器应用程序 (ISA),用于增强符合 Internet 服务器 API (I原创 2022-06-11 17:12:16 · 675 阅读 · 0 评论 -
delphi 接口说明 及FindControl
type IShape=interfaceend; ICircle = Interface(IShape)end;TBoll = class(TInterfaceObject, ICircle)end;1. 接口继承只是输入上的便利,不必再重复录入。并没有继承关系。 TBoll实现了ICirle,但并没有实现 IShape. 要实现IShape,则需要显示 TBoll=class(..,ICirle, IShaple).2.通过as可以进行接口与类型之间的互相转换。...原创 2022-04-17 18:16:12 · 421 阅读 · 0 评论 -
firedac 连接sqlite date,datetime,time类型注意事项
TFDconnection:参数:stringformat:unicode datetimeformat: string或datetime .在这种原创 2022-02-25 16:05:45 · 133 阅读 · 0 评论 -
IdThreadSafe.pas 中 TIdCriticalSection.Create 的内存泄漏
在 Delphi 11 64 位应用程序中使用 TIdHttpServer 和MadExcept时,每次我关闭应用程序时,将 MadExcept 设置为报告“资源泄漏”,我都会得到两个泄漏,分别是 IdThreadSafe.pas 中的 TIdCriticalSection 和 SyncObjs.pas 中的 TCriticalSection。这具有“错误标志”泄漏的所有特征——即 MadExcept 报告的泄漏实际上并不存在。但我必须确定。使用旧的“ReportMemoryLeaksOnShutd原创 2022-02-25 16:05:19 · 241 阅读 · 0 评论 -
delphi madExcept使用指南
最新madExcept,支持delphi11.并且是会对个人免费的。这是我能找到最好的delphi内存泄漏检测及异常处理的工具。以下记录学习测试过程。安装后,在delphi菜单工程中有madExcept设置,打开,就可以将madExcept加入到工程中.加入工程中后,工程中原来的TApplication.onExcept事件就无效了。遇到异常会报madExcept自已的对话框。madExcept设置中可以支持内存泄漏检测。将以下单元或函数加到工程中,可以自定义处理过程,h...原创 2022-02-25 16:04:24 · 1169 阅读 · 0 评论 -
详解delphi 内部数据格式,包括字符串及类等具体存储方式
原文:https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Internal_Data_Formats_(Delphi)Internal Data Formats (Delphi)Contents[hide]1Integer Types 1.1Platform-Independent Unsigned Integer Types 1.1.1Byte, UInt8 1.1.2Word and UInt16 ...转载 2022-02-23 21:00:22 · 563 阅读 · 0 评论 -
Using SQLite with FireDAC
This reference article has several sections:Introduction to SQLite: reviews SQLite features, missed features, possible applications, and applications not for SQLite. Using SQLite Database: explains how to create, connect to, and manage the SQLite dat...原创 2022-02-18 09:47:47 · 816 阅读 · 0 评论 -
Delphi FireDAC SQLite “database is locked“ 解决办法
为了解决多线程,多进程操作sqlite。进行了一些实测。以下为个人实测得出结论,非官方文档:sqlite锁定方式为文件锁,即当一个进程begin transaction,并执行了写操作,但未commit时,其它进程因参数设置不现会出现不同处理方式。 此时其它进程进行读操作无影响。相关参数说明:UpdateOptions.lockwait : 遇到其它进程处于写锁时,是否等待,等待时间为BusyTimeout,如果超时,会报dataset is locked错误。BusyTimeout:...原创 2022-02-17 14:57:59 · 1717 阅读 · 0 评论 -
delphi 获取打印机默认纸张_Delphi 动态调整打印机纸张大小weixin_39830906 2020-12-21 15:28:27 179 收藏文章标签: delphi 获取打印机
delphi 获取打印机默认纸张_Delphi 动态调整打印机纸张大小weixin_39830906 2020-12-21 15:28:27 179 收藏文章标签: delphi 获取打印机默认纸张版权Delphi 动态调整打印机纸张大小信息管理系统中经常要提供各种打印功能,例如报表打印、凭证打印以及发票打印。在这些打印过程中所需要纸张的大小往往是不一致的,例如,打印报表有可能使用A4 纸或A3 纸,打印凭证或发票可能需要将打印纸张设置成自定义大小。如果在同一台打印机上打印这些内容,那么就..原创 2021-12-22 16:23:41 · 265 阅读 · 0 评论 -
Delphi 动态调整打印机纸张大小
信息管理系统中经常要提供各种打印功能,例如报表打印、凭证打印以及发票打印。在这些打印过程中所需要纸张的大小往往是不一致的,例如,打印报表有可能使用A4 纸或A3 纸,打印凭证或发票可能需要将打印纸张设置成自定义大小。如果在同一台打印机上打印这些内容,那么就应该针对不同的打印内容设置不同的纸张尺寸。显然如果用手动的方法来设置打印机的纸张尺寸是件很麻烦的事,最好的方法是让程序动态地修改打印机的纸张尺寸。 解决问题的思路 通过查阅API 函数技术文档可知,每个打印机都拥有唯一的一个叫做DevMode.原创 2021-12-03 13:13:46 · 915 阅读 · 0 评论 -
delphi 新版内存表 FDMemTable
c++builder XE官方demo最全60多个http://community.embarcadero.com/blogs?view=entry&id=8761FireDAC.Comp.Client用好FDMemTable代替之前的ClientDataSet,以前ClientDataSet内存表转换太繁琐了步骤。TClientDataSet *cds = new TClientDataSet(this);DataSetProvider1->DataSet = dm..原创 2021-11-17 22:58:10 · 1941 阅读 · 0 评论 -
ShareMem和SimpleShareMem
本节介绍如何使用内存管理器共享内存。在Win32和Win64 上,如果 DLL 导出将长字符串或动态数组作为参数或函数结果传递的例程(直接或嵌套在记录或对象中),则 DLL 及其客户端应用程序(或 DLL)必须共享相同的内存经理。如果一个应用程序或 DLL 使用System.New或System.GetMem分配内存,则通过调用另一个模块中的System.Dispose或System.FreeMem释放内存,情况也是如此。有两种互斥的方法可以在应用程序及其库之间共享内存管理器:ShareMem和Simp原创 2021-11-08 19:45:15 · 626 阅读 · 0 评论 -
枚举进程的函数ToolHelp32、EnumProcesses
ToolHelp32、EnumProcesses 摘要 我们在编写程序时,常常遇到的一件事情就是要准确列出系统中所有正在运行的程序或者进程。Windows 任务管理器就是这样的一个程序。它既能列出运行的桌面应用程序,又能列出系统中所有运行的进程。那么,我们在程序中如何实现这样的任务呢?本文下面将详细 讨论这个问题。枚举顶层(top-level)窗口...原创 2021-11-07 19:50:42 · 681 阅读 · 0 评论 -
delphi CloneCursor的强大及坑
CloneCursor不光可用于clientdataset,fdmemtable,还可用于TFDDataSet。也就是TFdQuery也可以使用。procedure CloneCursor(ASource: TFDDataSet; AReset: Boolean = False; AKeepSettings: Boolean = False); virtual;描述共享属于另一个数据集的数据。使用CloneCursor将属于另一个数据集的数据与此数据集共享。调用CloneCursor .原创 2021-10-15 16:31:03 · 672 阅读 · 0 评论 -
Datasnap http 方法中获取Request,Response信息
unit Datasnap.DSHTTPWebBroker;/// <summary>Get the Web Module currently processing a DataSnap HTTP request./// </summary>function GetDataSnapWebModule: TWebModule;这在需要更多用户上传信息时非常有用,比如说获取head信息,自解压body等。...原创 2021-10-10 11:01:43 · 187 阅读 · 0 评论 -
delphi RTTI 反射技术
unitUnit_main; interface uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls,TypInfo; type TForm_main=class(TForm) Button1:TButton; Memo1:TMemo; Me...原创 2021-10-10 10:25:31 · 659 阅读 · 0 评论 -
delphi10.3 DataSnap+FireDAC+FDSchemaAdapter主明细数据表加载更新遇到的一些坑
项目需要,做http+rest服务以及三层数据库程序。使用了DataSnap+FireDAC.主要问题集中在主明细多表联动更新上。两种实现方式,一种是单表方式。主表明细表都单独更新,可以将主明细表一个函数都发服务端。服务端创建事务,先更新主表,再更新子表。同时查找自更新字段,及子表的外键,在提交前记录,提交后记录,并返回客户端相应新值。这种方式简单可靠。就是代码多些。但稳定。另一种方式是采用FDSchemaAdapter关联FDMemTable + FDTableAdapter + FD..原创 2021-10-09 22:16:41 · 926 阅读 · 0 评论 -
如何解决dxBarManager上面编辑框录入内容不能立刻生效的问题(光标移开,而不是tab,会导致内容revert)
dxBarManager1.AlwaysSaveText = true就可以解决.转载 2021-08-29 17:26:14 · 187 阅读 · 0 评论 -
http://docwiki.embarcadero.com/RADStudio/Rio/en/FAQ_(FireDAC)
http://docwiki.embarcadero.com/RADStudio/Rio/en/FAQ_(FireDAC)原创 2021-06-27 09:42:48 · 106 阅读 · 0 评论 -
Fetching and Populating Questions (FireDAC)Go Up to FAQ (FireDAC)This topic contains a list of qu
Fetching and Populating Questions (FireDAC)Go Up toFAQ (FireDAC)This topic contains a list of questions and answers related to fetching records and populating datasets.Q1: Does FireDAC provide fast forward-only, read-only access to the result datase.原创 2021-06-27 09:41:48 · 117 阅读 · 0 评论 -
TVirtualMethodInterceptor 虚方法拦截
在delphi xe的rtti.pas中TVirtualMethodInterceptor .可以在程序运行时,动态创建一个派生的元类,该类通过创建一个新的虚拟方法表并将其填充以拦截调用和参数的存根(stub)来覆盖祖先中的每个虚拟方法。当用这个新的元类替换“祖先”的任何实例的元类引用时,用户可以随后拦截虚拟函数调用,即时更改参数,更改返回值,拦截和抑制异常或引发新异常,或者完全替换调用基础方法。从概念上讲,它有点类似于.NET和Java中的动态代理。这就像能够在运行时从类派生,重写方法(但不添加新的实..原创 2020-11-14 08:23:01 · 176 阅读 · 0 评论 -
Delphi FireDAC 获取 INSERT 记录的自增 ID
将数据插入具有自动增量字段的数据库表中时的常见模式是使用 SQL 查询来选择新创建的记录的最后插入ID。使用 TFDQuery 运行 INSERT 查询后,您可以运行第二个查询来获取新插入的自动增量 ID。例如,MySQL 具有一个 SELECT 查询函数,您可以运行该函数,称为 LAST_INSERT_ID(),比如:SELECT LAST_INSERT_ID() ,但是,这种方法耦合度太高,不同的数据库,使用的函数也不一样。 FireDAC 提供了一个函数,您可以通过 TFDConnec...原创 2020-11-09 09:42:35 · 1048 阅读 · 0 评论 -
Delphi Math单元函数
这个单元包含高性能的算术、三角、对数、统计和金融方面的计算及FPU程序函数用于补充Delphi语言System.pas 单元中的数学常规程序函数注意1) 对于有些函数,这个单元中涉及的概念或常数由Earl F. Glynn (www.efg2.com) 和 Ray Lischner (www.tempest-sw.com)提供。2) 所有的角度参数三角函数的结果都用弧度表示3) 下列大部分的三角和对数程序直接的映射到Intel 80387 FPU4) 浮点机指令、输入域、输出范围和错误处理主...原创 2020-10-31 17:03:02 · 1210 阅读 · 0 评论 -
EUREKALOG 源码版手动安装方法
Navigation: Troubleshooting > Installation problems >Manual installation Previous pageReturn to chapter overviewNext page Sometimes there is need to install EurekaLog manually. You may need manual installation to use EurekaLog on build server ...原创 2020-10-12 18:13:57 · 895 阅读 · 0 评论 -
切换窗口
SetForegroundWindow函数将创建指定的窗口,并激活到前台窗口的线程 。键盘输入窗口,并为用户更改不同的视觉线索。该系统分配一个优先略高前景的窗口,比它其他线程创建的线程。语法 BOOL SetForegroundWindow( HWNDHWND);参数HWND [in]应该被激活,并带到前景的窗口句柄。返回值 如果窗口被带到前台,返回值为非零。 如果窗口不带到前景,返回值是零。 self.soft...原创 2020-09-14 15:56:46 · 161 阅读 · 0 评论 -
Delphi XE中String、ANSIString、TBytes之间的转换
Delphi XE中String、ANSIString、TBytes之间的转换一、string转为ansistring1、直接赋值 (有警告)2、ansistring()类型强制转换。(无警告)二、ansistring 转为string1、直接赋值 (有警告)2、string()类型强制转换。(无警告)三、string 转为Tbytes1、bytes:= bytesof(str) 已转为ansi编码2、bytes:= widebytesof(str) UNICODE 编码四、原创 2020-09-02 20:31:44 · 488 阅读 · 0 评论 -
windowsAPI
分类专栏:visual c++需要重点阐述的内容包括:1、窗体的结构(边框、客户区、非客户区……)2、窗体的状态(最小化、最大化、正常、激活……)3、窗体的分类(普通窗体、分层窗体、弹出窗体……)4、不同窗体间的关系(父子、拥有与被拥有、Z轴顺序……)5、窗体的位置与大小6、实用功能:窗体搜索7、窗体与线程、进程8、窗体中的坐标系9、其他窗体特性(DPI敏感、内容保护)10、消息机制、链条、钩子窗体/客户区大小GetWindowRectGetClientRectAdj...原创 2020-08-28 16:57:55 · 279 阅读 · 0 评论 -
delphi 通过 TXMLTransformProvider 或 TXMLTransform 都可以让 TClientDataSet 读写此 XML
TClientDataSet 可以直接存取的 XML 有自己的格式规范, 存取其他格式 XML 需要相应的映射文件(*.xtr).这种 *.xtr 文件是用 XML Mapper(Delphi 自带, 可从开始菜单或 IDE -> Tools 启动)制作的.一般会需要两个 *.xtr 文件, 一个用于读取(例子中是: ToDp.xtr), 一个用于写入(例子中是: ToXml.xtr).可以通过 *.xtr 文件只读写源 XML 中的部分数据, 如果读取过于复杂的 XML 会生成嵌套的 DataSet原创 2020-08-01 00:06:59 · 638 阅读 · 0 评论 -
TFdLocalSQL 测试结果及注意事项
TFdLocalSQL测试结果及注意事项*本文中本地表指的是fdlocalsql维护的内存表。经测试发现fdlocalsql使用过程中有以下特性要注意:1.对fdlocalsql的属性修改一定要在connection关闭的情况下进行。否则不起作用。主要测试了UseTransaction, MultipleCursors.UseTransation:所有对本地表的修改操作都会自动启动事务,所以当进入事务后,连接所有修改全在事务中。实际使用中可能就会造成困惑。最佳作法是对本地表修改操作后,事务.原创 2020-07-10 11:49:42 · 495 阅读 · 0 评论 -
delphi 根据接口获取对象实例
obj=TObject(intf);即可。然后就可以obj.classname得知实例类名。进而可以得知实例所拥有的所有接口名。原创 2020-05-08 12:53:16 · 481 阅读 · 0 评论 -
Delphi编译、调试的路径搜索方案
Delphi编译、调试的路径搜索方案 现在还经常有同事和朋友问我怎么编译不了程序,或断点不起作用等等问题,今天索性就把我知道的东西整理出来供需要的朋友参考参考。由于这部分东西没发现有正式文档说明,只是本人靠经验摸索出来的,所以不能保证肯定正确无误,讲的不对的地方就请指出来。 1. Delphi编译的时候,对于需要用到的单元文件是按着先搜索.pas文件后搜索.dcu文件的顺序进行。...转载 2020-04-21 11:36:30 · 603 阅读 · 0 评论 -
DevExpress VCL 19.2.3 Skin找不到皮肤
The location where the DX Designtime Loader is looking for the skin packages has changed again !For Delphi DX10.3 Rio now all skin packages (=dxSkin*.bpl) must be located inCode:<installdir&...原创 2020-04-10 15:00:09 · 635 阅读 · 0 评论 -
firedac 连接sqlite date,datetime类型问题
TDFConnection: stringformat:unicode datetimeformat:datetime sqlite中datetime类型会存储为字符串类型,读取时,数据库中是数字型或浮点型式或字符串型式都可以正确读出。TDFConnection: stringformat:ansi datet...原创 2020-03-18 22:12:01 · 213 阅读 · 0 评论 -
Fetching and Populating Questions (FireDAC)
Q1: Does FireDAC provide fast forward-only, read-only access to the result dataset?A: Set FDQuery.FetchOptions:CursorKind = ckDefault or ckForwardOnly Mode = fmOnDemand RowsetSize = 1000 Unidir...转载 2018-10-31 23:46:27 · 267 阅读 · 0 评论 -
delphi.memory.分配及释放---New/Dispose, GetMem/FreeMem及其它函数的区别与相同
我估摸着内存分配+释放是个基础函数,有些人可能没注意此类函数或细究,但我觉得还是弄明白的好。 介绍下面内存函数前,先说一下MM的一些过程,如不关心可忽略: 1 TMemoryManager = record 2 GetMem: function(Size: Integer): Pointer; 3 FreeMem: function(P: Pointer): I...转载 2018-12-29 11:46:10 · 787 阅读 · 0 评论 -
Delphi 使用 Datasnap 进行三层应用开发
Delphi 使用 Datasnap 进行三层应用开发,积累了几种技术,总结如下:1、(推荐!)在 Datasnap 服务端 使用 TDatasetProvider,客户端 使用 TDSProviderConnection 1)采用 Datasnap Server ,可以使用TCP/IP、Http 通信。TDatasetProvider 能够提供 “元数据与业务数据”。 ...转载 2019-01-20 23:10:55 · 2327 阅读 · 1 评论