![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Delphi
疯流人物
我是一个爱代码疯狂,为软件消得人憔悴的疯流人物
展开
-
Delphi中ClientDataSet的用法小结
Delphi TClientDataSet控件中的ClientDataSet用法摘要继承自TDDataSet,其数据存储文件格式扩展名为Cds。它是一个基于文件数据存储和操作的控件。通过在Delphi中使用TClientDataSet控件,可以将应用程序与数据库驱动程序完全分离,并实现了传统数据集控件简单使用的特点,这为编写“精简”数据库应用程序提供了技术方法和手段。原创 2023-09-27 15:01:34 · 1301 阅读 · 0 评论 -
delphi 连接轻量级数据库 sqlite3
sqlite 很小巧,delphi 7 连接sqlite 我用的是 ASQLite 控件。一个ASQLite 控件 和一个 sqlite3.dll 就可以操作 .db 格式的文件,关于 sqlite3.dll 我发现有多个版本,某些版本delphi7是连接不到的。用上面代码初始化后,就可以用我们熟悉的 ClientDataSet 操作db数据库了。以前小型数据库是用mdb的,但连接mdb 需要odbc的支持。至于连接的数据库db文件,这个就交给代码完成,发现若是在属性上指定,会有错误。转载 2023-09-27 14:00:04 · 1004 阅读 · 0 评论 -
DELPHI 中的Delay函数,利用GetTickCount和Application.ProcessMessages构建
【代码】DELPHI 中的Delay函数,利用GetTickCount和Application.ProcessMessages构建。转载 2023-09-12 17:57:45 · 370 阅读 · 0 评论 -
Chart、DBChart控件使用总结
Chart、DBChart控件使用总结。1、如何生成一个简单图表。原创 2023-07-21 15:06:09 · 209 阅读 · 1 评论 -
delphi的DateUtils时间单元时间日期处理函数说明
MilliSecondOfTheYear 返回指定日期时间值的那年1月1日0时0分0秒0毫秒到其指定时间的毫秒数。MilliSecondOfTheWeek 返回指定日期时间值的那周星期一0时0分0秒0毫秒到其指定时间的毫秒数。MilliSecondOfTheDay 返回指定日期时间值的那天0时0分0秒0毫秒开始到其指定时间的毫秒数。StartOfTheYear 返回指定日期时间值那年开始(1月1日0时0分0秒0毫秒)的日期时间值。原创 2023-07-20 09:57:49 · 406 阅读 · 0 评论 -
ADOConnection连接SQLServer自动断网问题解决
后来网上查了很多材料,有人提出捕获OleException的方法,既不创建线程和定时器判断数据库是否断开,而是当用户执行操作。发生Ole异常时捕获它,如果是数据库连接错误,那么恢复数据库连接即可,我在他们代码基础上完善了一下,以下是实现代码。Win7上ADO连接SQLServer过几十分钟后自动断网(被防火墙拦截等)问题终于解决了,困惑了很久。问题现象:ADO连接SQLServer过几十分钟后(有的过几周)数据库连接无缘无故断开,就这个ADO不行了。多用户同时不断连接数据库对服务器压力太大了,不可取。转载 2023-06-21 09:35:32 · 472 阅读 · 0 评论 -
获取应用程序图标的代码
获取应用程序图标的代码。原创 2023-06-16 15:46:40 · 208 阅读 · 0 评论 -
delphi多线程TThread详解
你的程序就必须等10秒以后才能关闭,受得了吗。VCL中,工作线程执行在Execute方法中,你必须从TThread继承一个类并覆盖Execute方法,在这个方法中,所有代码都是在另一个 线程中执行的,除此之外,你的线程类的其他方法都在主线程执行,包括构造方法,析构方法,Resume等,很多人常常忽略了这一点。在CSDN论坛上看到一些人问,我的窗口在线程中调用为什么出错,主线程怎么向其他线程发送消息等等,其实,我们在抱怨线程难用时,也要想想我们使用的方法对不对,只要遵循一些正确的使用规则,线程其实很简单。转载 2023-05-24 11:22:00 · 1562 阅读 · 0 评论 -
DIOCP 运作核心探密
再调用IocpCore.Bind将当前连接的SocketHandle绑定到IOCP端口,如果成功会调用Context的DoConnected方法,在DoConnected里面会为当前连接分配一个标识句柄(实际上是一个计数器),设置Active状态为True,添加到在线列表,然后产生OnContextConnected事件,并调用OnConnected方法(你可以在子类中在这个地方做额外的处理),Context将状态设置为连接成功状态,并请求接收数据。Send函数同样也是异步的,会立即返回。转载 2023-04-25 10:29:55 · 289 阅读 · 0 评论 -
一个守护进程范例
【代码】一个守护进程范例。原创 2023-04-24 17:02:20 · 198 阅读 · 0 评论 -
Delphi 中Format的字符串格式化使用说明
和上面一样Format参数为格式化指令字符,Value为Extended类型为什么是这个类型,因为它是所有浮点值中表示范围最大的,如果传入该方法的参数比如Double或者其他,则可以保存不会超出范围。对于字符型,刚好和整型值相反,如果prec比字符串型的长度大则没有效果,反之比字符串型的长度小,则会截断尾部的字符。u 和d一样是整型值,但它是无符号的,而如果它对应的值是负的,则返回时是一个2的32次方减去这个绝对值的数。注意一点,如果整数部分的0的个数小于Value参数中整数的位数,则没有效果。转载 2023-03-22 17:19:47 · 654 阅读 · 0 评论 -
FastReport报表制作方法总结
1、fastreport报表。原创 2023-02-22 09:56:41 · 593 阅读 · 0 评论 -
delphi 7常用快捷键总结
4.Ctrl+O+U 切换选择块的大小写(注意松开O后再按U,Ctrl保持按下)5.Ctrl+K+O 切换选择块为小写(注意松开K后再按O,Ctrl保持按下)6.Ctrl+K+N 切换选择块为大写(注意松开K后再按N,Ctrl保持按下)2.Ctrl+Shift+Y 删除光标之后至本行末尾之间的文本。3.Ctrl+T删除光标右边的一个单词。1.Ctrl + Y 删除光标所在行。原创 2022-11-29 10:05:08 · 1422 阅读 · 0 评论 -
程序设计相关原则总结
迪米特法则(Law of Demeter)又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。英文简写为: LOD。1、单一职责原则(SRP)3、S.O.L.I.D原则。2、开闭原则(OCP)原创 2022-11-22 10:17:50 · 98 阅读 · 0 评论 -
程序设计中和数学相关一些函数原型说明
并且0的阶乘为1。自然数n的阶乘写作n!1808年,基斯顿·卡曼(Christian Kramp,1760~1826)引进这个表示法。例如:0 1 1 2 3 5 8 13 21 34。)是所有小于及等于该数的。2、阶乘:一个正整数的。原创 2022-11-10 16:38:54 · 99 阅读 · 0 评论 -
IDUdpServer研究心得
绑定线程外接收数据报如接收到不是自己所需数据时,很难把此次数据拷挂到绑定线程内激发OnUDPRead,使得OnUDPRead事件只能响应在绑定线程外,这样给程序设计和跟踪都带来了不小的麻烦,因此如在绑定线程外实现接收数据报效果最好建立自己的接收队列,使用轮训接收数据报队列的方式实现。上面我们也说到了每个绑定套接字(Binding:TIdSocketHandle)绑定创建后都会开启一个线程,这样就是说这两个参数是一一对应,每个AThread的线程工作期间只处理当前的绑定套接字的收发。转载 2022-11-04 14:01:28 · 643 阅读 · 0 评论 -
线程池实现范例
【代码】线程池实现范例。原创 2022-10-20 15:41:11 · 140 阅读 · 0 评论 -
线程池实现总结及需要注意的地方
线程池实现总结及需要注意的地方。原创 2022-10-20 14:51:53 · 362 阅读 · 0 评论 -
cxGrid表头动态赋值标题
【代码】cxGrid表头动态赋值标题。原创 2022-10-10 11:17:19 · 243 阅读 · 0 评论 -
Delphi2010启动报错:Cannot create file “C:\Users\asun\AppData\Local\Temp\EditorLineEnds.ttr“. 另一个程序正在使用此文
这个问题的产生根据网上搜集的资料是因为微软的新补丁KB2970228和KB2982791限制了字体文件的使用机制, 而EditorLineEnds.ttr是delphi字体临时文件, 这就导致了delphi启动时无法访问这个文件,启动失败。Delphi2010启动报错:Cannot create file "C:\Users\asun\AppData\Local\Temp\EditorLineEnds.ttr". 另一个程序正在使用此文。原创 2022-10-09 15:04:47 · 128 阅读 · 0 评论 -
Delphi多线程数据库查询(ADO)
测试程序流程大致是这样的:在主窗体上放TADOConnection和TQuery控件,启动时这个TQuery从Customer表中查出客户编码CustNo和公司名称Company,放到三个Combox框中,分别在三个列表框中选定客户公司名称,按照公司名称所对应的客户代码建立三个线程同时在orders表中查询销售日期SaleDate分别填入ListBox中。所以,线程中不能使用主线程中TADOConnection对象,每个线程必须创建自己的数据库连接。第一第三两个线程条件一样,查询的结果也一样。原创 2022-09-23 13:41:23 · 624 阅读 · 0 评论 -
fastReport 中显示金额大写
2. --- dConnector.frxReport 控件的onUserFunction事件中加入以下代码。1. --- dConnector的 DataModuleCreate 中加入以下代码。3. --- 要显示大写金额的字段 双击 Text 录入以下代码。frxReport 控件加入自定义函数并显示金额大写。原创 2022-09-21 16:29:26 · 476 阅读 · 0 评论 -
FastReport中怎么定义报表大写金额
我们在设计FastReport报表时,遇到客户有可能需要显示的是大写金额,可以用如下方法设计报表解决.else if qianwei=2 then qianwei1:='佰'else if qianwei=3 then qianwei1:='千'else if i='0' then wei1:='零';else if i='2' then wei1:='贰'else if i='3' then wei1:='叁'else if i='4' then wei1:='肆'原创 2022-09-21 15:28:27 · 959 阅读 · 0 评论 -
delphi中常见错误提示说明总结
Only register calling convention allowed in OLE automation section 在OLE自动区段中只允许。Redeclaration of property not allowed in OLE automation section 在OLE自动区段中不允许属性。Dispid clause only allowed in OLE automation section DISPID子句只能在OLE自动区段中使用。原创 2022-09-21 11:29:11 · 2351 阅读 · 0 评论 -
开机自启动简易实现函数
开机自启动简易实现函数。原创 2022-09-01 17:06:00 · 64 阅读 · 0 评论 -
Delphi如何处理大量数据
好奇怪的问题,假定你是放在s:array[0..100000] of string里了,比如有个计数器count,无非就是。1、分段处理,不要一次全部读入,或者将数据存入数据库(sql server /mysql/oracle)再做处理。if count>0 then 处理这些留下的s[0]至s[count-1]的数据。5、合理的设计表,建索引,用存储过程。如果觉的慢,那你要研究一下多线程了。将数据存入s[count];6、分时间段,做索引、存贮过程。7、索引技术,数据库分割。循环开始,直至读取完成。...原创 2022-08-29 09:15:18 · 272 阅读 · 0 评论 -
利用INDY的TIDHASHMESSAGEDIGEST5类计算MD5(INDY10.6)
代码很简单,其中需要注意的是,Indy9中 Md5Encode.AsHex(Md5Encode.HashValue(S)) 这种写法在Indy10里已经不能用了,之前就是因为这个卡了好久。Indy自带TIdHashMessageDigest*类,可以方便的计算MD2、MD4和。转载 2022-08-19 14:56:49 · 241 阅读 · 0 评论 -
Delphi在win7/vista下写注册表等需要管理员权限的解决方案
可人家MS也知道自己家的东西烂,编了庞大的MSDN让它的程序员模仿,有如老师亲临,大大给他的用户壮了胆,也给了他们创造了更广阔的想象空间... 扯远了,大家见笑了!以上解决方法并非是非完美的,UAC的提示或多或少给用户带来了不安全的感觉,最好的方法应该由程序本身和用户交互说明需要使用管理员权限运行,或者自己你像在xp以下系统上一样,自己提高权运行权限,实现一些操作,但这样做并非现实,MS能会让它的辛苦研发出的UAC项目形同虚设?关于UAC的利弊,网络上的说法褒贬不一,在这里就不具体讨论了。转载 2022-08-19 10:46:42 · 583 阅读 · 0 评论 -
delphi中Message消息的使用方法
/自定义消息处理过程,专门处理WM_ME消息;//处理系统性消息;ifmessage.Msg=MyMessagethen//第3步重载Windows消息处理过程,处理接收到的MyMessage消息;//发送消息WM_ME;原文链接https//blog.csdn.net/qq_33728871/article/details/120654380。//第一种消息处理方式。///消息广播只能将消息传递到接收消息的主程序中,MDIChild窗体不能接收到广播消息;...原创 2022-08-01 17:18:59 · 1089 阅读 · 0 评论 -
SqlServer给表增加多个字段的语法
SqlServer给表增加多个字段的语法。原创 2022-07-30 10:40:32 · 3474 阅读 · 0 评论 -
Indy相关应用知识总结
/第一个参数,就是那个TMemoryStream,第二个参数是一个TIdBytes类型,第三个是你需要取多少字节,返回值是实际取得的字节数。1、Indy10Stream转Bytes。Indy相关应用知识总结。原创 2022-07-28 15:49:25 · 57 阅读 · 0 评论 -
MLSKIN V2.1.1控件的使用总结
MLSKIN V2.1.1的使用总结原创 2022-07-28 11:14:39 · 621 阅读 · 0 评论 -
Delphi2010Excel导入数据库
Delphi2010Excel导入数据库。原创 2022-07-27 16:48:08 · 768 阅读 · 0 评论 -
Delphi 7将excel导入数据库
Delphi7将excel导入数据库。原创 2022-07-26 09:37:58 · 1025 阅读 · 0 评论 -
Delphi2010 cxGrid显示数据导出到excel
Delphi2010cxGrid显示数据导出到excel。原创 2022-07-26 09:36:23 · 700 阅读 · 0 评论 -
Delphi - 如何调试 DLL
完整的调试 DLL方法如下:1)新建一个 DLL 工程,名字就叫 MyDll 吧,编译后生成 MyDll.dll,我们要调试的就是它了。2)新建一个用来调试 MyDll 的 Application 工程,名字就叫 MyDllTest 吧,编译后生成的可执行性文件为 MyDllTest.exe,这就是我们用来调试 MyDll.dll 的宿主程序...原创 2022-07-22 14:06:56 · 1307 阅读 · 0 评论 -
TObject接收windows消息(Classes.AllocateHWnd)
在delphi中,有时候我们希望对象可以接收windows消息,怎么办呢?因为要接收windows消息起码要有windows Handle,难道要建立的一个可见窗口?那样似乎太差强人意了。delphi提供了一个函数Classes.AllocateHWnd......原创 2022-07-19 19:29:56 · 117 阅读 · 0 评论 -
Delphi中destroy, free, freeAndNil, release用法和区别
destroy, free, freeAndNil, release用法和区别原创 2022-07-07 09:14:38 · 871 阅读 · 0 评论 -
各种输入控件输入校验总结
各种输入控件输入校验总结原创 2022-07-06 17:47:07 · 161 阅读 · 0 评论 -
算法与数据结构及其用途方面札记
一些算法与数据结构及其用途方面札记,以供自己编程参考或供有缘人分享原创 2022-06-28 10:06:52 · 112 阅读 · 0 评论