自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GuoGuoABC

成功其实很简单,在你无法坚持的时候再坚持一下。

  • 博客(410)
  • 资源 (9)
  • 收藏
  • 关注

原创 Delphi TDictionary字典类

ws2.range['E' + inttostr(k) + ':K' + inttostr(k)].value := VarArrayOf([temparr[0],temparr[5], temparr[1], temparr[2], '新刀具区', 0, temparr[4]]);上面的代码,把字典里的K,V用"@"符号拼接了起来,塞进一个TStringList类里.字典不可以排序,但是TStringList可以啊,只是在使用里,需要SPLIT一下元素才行。// 将字典的键(唯一元素)转换为数组并返回。

2024-09-14 19:46:08 485

原创 fdMemTable内存表进行SQL查询

fdLocalSql可以对fdMemTable内存表进行SQL查询(可以对多个fdMemTable内存表进行联表查询哦),fdLocalSql使用SQLITE引擎,而FIREDAC驱动SQLITE,连SQLITE驱动DLL都不需要附带的。2]可以设置多个内存表,FDMemTable1,FDMemTable2。

2024-08-27 09:40:21 786

原创 delphi fireDAC+SQLite 在多线程下笔记

实际测试,分别建立50个读和50个写线程,同时读写,Synchronous=off 的情况下,数据仍然是同步的,其他线程写的时候,读线程仍然可以立即得到最新的数据状态。仍然是接受sqlite的建议,在数据安全要求不太严的情况下,设置为off模式,网上有人测试,讲off比full模式,效率要高50倍以上。特别是主线程需要注意。开启 WAL后,在 Synchronous = Normal 下,速度仍然非常快,但是,会有一定概率,同一时间读写同一条数据时,读出来的是写入之前的数据。

2024-08-24 22:15:33 233

原创 sqlite3 多线程和锁 ,优化插入速度及性能优化

另一个要说明的是prepared statement,它是由数据库连接(的pager)来管理的,使用它也可看成使用这个数据库连接。当开启auto-vacuum,当提交一个从数据库中删除数据的事务时,数据库文件自动收缩, (VACUUM命令在auto-vacuum开启的数据库中不起作用)。sqlite在没有显式使用事务的时候会为每条insert都使用事务操作,而sqlite数据库是以文件的形式存在磁盘中,就相当于每次访问时都要打开一次文件,如果对数据进行大量的操作,时间都耗费在I/O操作上,所以很慢。

2024-08-24 22:04:32 1013

原创 sqlserver 消息 9420,级别 16,状态 1,第 7 行

感觉非常奇怪,这个程序在很多客户多运行.当时以为数据库的配置不对.我重启了数据服务,还是没有解决.于是就查了KIMI,他讲有转认字符。执行时报9420错误,sqlserver 消息 9420,级别 16,状态 1,第 7 行。

2024-08-18 23:35:51 208

原创 Delphi线程同步(临界区、互斥、信号量)

顺便总结Application.ProcessMessages的作用:运行一个非常耗时的循环,那么在这个循环结束前,程序可能不会响应任何事件,按钮没有反应,程序设置无法绘制窗体,看上去就如同死了一样,这有时不是很方便,例如于终止循环的机会都没有了,又不想使用多线程时,这时你就可以在循环中加上这么一句,每次程序运行到这句时,程序就会让系统响应一下消息,从而使你有机会按按钮,窗体有机会绘制。它是在互斥的基础上建立的,但是信号量增加了资源计数的功能,预定数目的线程允许同时进入要同步的代码。这两个过程的声明如下。

2024-08-17 23:38:54 959

原创 TStopwatch属性及方法

IsRunning: Boolean - 获取或设置一个值,表示Stopwatch是否正在运行。Elapsed: TTimeSpan - 返回已执行代码的时间,以秒为单位,具有微秒精度。ElapsedMilliseconds: Double - 返回已执行代码的总毫秒数。在这个例子中,我们在窗体创建时开始计时,销毁时停止计时,并输出总执行时间(毫秒)。Reset: 无 - 重置Stopwatch,将Elapsed属性设置为0。Start: 无 - 开始计时。Stop: 无 - 停止计时。

2024-08-09 18:03:09 342

原创 Oracle数据库字符集及修改方式详解

Oracle语言环境的描述包括三部分:language、territory、characterset(语言、地域、字符集)language:主要指定服务器消息的语言,提示信息显示中文还是英文territory:主要指定服务器的数字和日期的格式characterset:是指字符集,一般国内数据库实际使用的字符集主要是ZHS16GBK、AL32UTF8只要两个数据库的字符集(characterset)一样,就可以相互导入导出数据。

2024-07-28 07:40:35 450

原创 IdSchedulerOfThreadPool用法和想法

其实用起来也还比较简单,主要是实现了维护一个线程池的功能,功能不是很强。TIdYarnOfThread(in IdSchedulerOfThread.pas) 需要强制转换的类,只有强制转换后才能访问到线程Thread对象,使用Synchronize来访问VCL控件。TIdTask(in IdTask.pas) 需要用户继承实现的类,实现参数的传入,及具体的run、BeforeRun、AfterRun功能代码。操作你会发现,线程池是用抛出异常来实现,因此你需要捕获异常来进行线程池满的处理。

2024-07-24 07:43:27 267

原创 Delphi - Indy TIdThreadComponent 线程研究

StopMode:这里分为Terminate和Suspend两种,Terminate为强行终止,Suspend为延缓、等待终止。为了优化用户体验,采用了Indy 自带的IdThreadComponent控件,完美的解决了此问题。Active:默认False,当需要令IdThreadComponent控件生效时,置为True;前几天在开发数据实时解析功能模块的时候,发现解析数据量巨大,特别耗时,程序一跑起来界面假死。TIdThreadComponent用的是观察者模式,所有这里的事件都是回调事件。

2024-07-24 07:27:19 354

原创 Delphi开发 Android 程序启动画面简单完美解决方案

3、制作一个真实的 Splash 启动画面的图片,如果是分辨率真按1080的话,就是1080×1920,如果是按470画的话,就是470×836。1、先创建一个470×320像素的空白图片,保存到工程的某个目录下,如 Images,假设我们命名为 Splash470x320.png(其它分辨率类似,实际在720p(荣耀 4x )/1080p( Mate8 )/2K(小米Note Pro)屏下调用的都是它,别的好象没有用,所以随意放几个空白图片好了)。3、方案还不够完善,需要较多的步骤;

2024-07-21 06:50:49 165

原创 Delphi 11.2 配置Android SDK 环境

这里如果配置64位就选 Android 64-bit,如果配置32位就选 Android 32-bit。有警告图标的就是有问题的项,需要手动更新一下,点击每一行后面的…,仿照选择对应的路径。点击 Select an SDK version–Add New…然后稍等一下让他更新一会,等待警告符号都消失以后点击 Finish。然后点击 Deployment–SDK Manager–Add…点击 Tools–Options…手动修改完以后点击 Next。打开 Delphi 11。

2024-07-20 20:56:22 433

原创 在Delphi中使用ATTACH语句合并SQLite数据库

请注意,这个示例假设你已经安装了SQLite3库,并且在Delphi项目中正确引用了SQLite3单元。此外,确保在合并数据库之前备份原始数据,以防止数据丢失。在实际应用中,你可能需要根据具体的表结构和业务逻辑调整SQL语句。语句将源数据库中的表数据复制到主数据库的相应表中。对象,分别代表主数据库和要合并的数据库。语句将源数据库附加为主数据库的一个别名(例如。语句分离附加的数据库,并释放数据库连接对象。以下是一个Delphi示例,展示了如何使用。在这个示例中,我们首先创建并打开了两个。

2024-07-15 10:16:48 315

原创 Flexcel学习笔记

Felxcel笔记

2024-07-10 09:30:17 372

原创 cxGrid合计忽略重复记录

/cxGrid1DBBandedTableView1->DataController->Summary->FooterSummaryItems->OnSummary 事件。//重新打开数据集前清空lstCust。//存放不同的客户编号记录。//创建lstCust对象。//记下之前未出现过的客户编号。//释放lstCust对象。//lstCust.Count就是不同的客户数。//只对colaCustNo列的合计进行处理。//合计Item的OnGetText 事件。

2024-06-15 10:27:50 546

原创 MODBUS TCP协议实例数据帧详细分析

Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。MBAP 功能码 寄存器起始地址H 寄存器起始地址L 寄存器数H 寄存器数L 寄存器数据字节长度 寄存器数据。MBAP 功能码 寄存器起始地址H 寄存器起始地址L 寄存器数H 寄存器数L 寄存器数据字节长度 寄存器数据。MBAP 功能码 寄存器起始地址H 寄存器起始地址L 寄存器数H 寄存器数L。

2024-06-12 07:24:07 865

原创 delphi清理程序占用的内存,真的有效果.

找了二天没有处理好是什么没有释放.直接调用该函数.发现系统占用内存减少了.再也不怕占用内存太多,导致程序异常了.//DELPHI清理释放内存小代码。

2024-06-05 08:13:30 294

原创 Delphi10.2调用Windows 10 下的SAPI进行TTS开发

1、先导入COM组件sapi.dll,Component→Import Component,选择Import a Type Library,Delphi 10.2 在win10 64位下编译测试通过,win7下如不行,可使用网上的win7 TTS修复工具修复下即可。showmessage(inttostr(voice.speak('我们是中国人', 0)));点击“Finish”,生成单元文件:SpeechLib_TLB。选择第一个,点击“Next”

2024-06-04 23:18:17 285

原创 调用WINDOWS的TTS接口,将你的文字变成Wav文件

【代码】调用WINDOWS的TTS接口,将你的文字变成Wav文件。

2024-06-04 23:14:58 220

原创 通过ffmpeg 将wav格式转为mp3格式.

通过ffmpeg实现将wav转为mp3格式.需要下载一个ffmpeg放到执行文件所在目录.是一个功能强大的多媒体处理工具,它支持大量的输入和输出格式,以及多种编解码器。由于其功能的多样性,ffmpeg的参数列表也非常丰富。以下是一些常用的ffmpeg。

2024-06-04 23:05:18 997

原创 通过lame_enc.dll实现将Wav转为mp3格式.wav要求是16bit

【代码】通过lame_enc.dll实现将Wav转为mp3格式.wav要求是16bit。

2024-06-04 22:38:10 843

原创 SQLserver条件发现半角与全角他不分.处理的时候要修改原有的排序规则

【代码】SQLserver条件发现半角与全角他不分.处理的时候要修改原有的排序规则。

2024-05-24 14:14:40 180

原创 FireDAC与ADO读写数据的性能测试

数据库连接组件,支持三种连接方式:1.持久定义(有一个唯一名称和一个配置文件,可以由FDManager管理)3.临时定义(没有名称和配置文件,不能由FDManager管理,运行时将参数写入params属性)发现它完全可以同UNIDAC相媲美,但UNIDAC购买费用是几万美刀,而FIREDAC是免费的。fd读取数据用时2438毫秒,ado用时5590毫秒。fd读取数据用时1988毫秒,ado用时5548毫秒。fd读取数据用时363毫秒,ado用时783毫秒。fd读取数据用时10毫秒,ado用时553毫秒。

2024-05-23 07:10:04 650

原创 用TIDTcpClient发送以及接收信息

【代码】用TIDTcpClient发送以及接收信息。

2024-04-23 12:25:40 661

原创 Delphi Xe 10.3 钉钉SDK开发——审批流接口(获取表单ProcessCode)

Log.Debug(dk.GetProcessCode('ERP客户订单'),'debug');dk.Getappsecret := '你企业钉钉的Appsecret';dk.Getappid := '你企业钉钉的APPID';二、接口获取:今天的重点,不说了,直接上代码。ProcessCode后面就是了!中年大叔学Delphi。

2024-04-16 21:17:05 563

原创 Delphi TDictionary字典类

ws2.range['E' + inttostr(k) + ':K' + inttostr(k)].value := VarArrayOf([temparr[0],temparr[5], temparr[1], temparr[2], '新刀具区', 0, temparr[4]]);上面的代码,把字典里的K,V用"@"符号拼接了起来,塞进一个TStringList类里.字典不可以排序,但是TStringList可以啊,只是在使用里,需要SPLIT一下元素才行。Add:向字典中添加一个键和其对应的值。

2024-04-07 06:36:38 1158

原创 delphi 设置win10 dpi 缩放规则

假设现在有一个软件界面(宽为950像素,高为700像素),该软件在24寸、分辨率为1900*1400的显示器上显示正常,但放到高dpi显示器(同样是24寸,但分辨率为3800*2800)上显示效果会如何?比如一个32寸的显示,但分辨率只有1920*1440,而一个24寸的显示器,分辨率却达到3840*2160,很明显后面这个显示器的每英寸的像素点的个数多,显示的画面更加细腻。同样,在系统dpi缩放改变时,系统也不会将软件进行缩放拉伸,但软件会收到WM_DPICHAN。所以:高分辨率不等于高dpi。

2024-04-04 06:08:00 609

原创 delphi windows 程序DPI缩放设置

win10,win7系统里 程序经常变形,很可能是 windows 缩放比例大于100%,设置windows缩放比例比较麻烦,可以通过注册表设置程序的DPI缩放比例。

2024-04-04 06:06:38 392

原创 TMS FlexCel VCL & FMX v7.8学习汇总

https://www.cnblogs.com/txgh/category/2172481.html?page=105]ApiMateRadStudio.exe上传xls,自动生成pacsal代码04]FlexCel之预览Excel03]FlexCel将DBGrid1导出为Excel02]FlexCel的Demo和帮助CHM01]TMS FlexCel VCL & FMX v7.8的下载和安装

2024-04-01 07:16:14 313

原创 uniGUI之主窗口折叠UI之UniTreeMenu(32-2)

目前发现菜单太多时右侧不能自动出现垂直滚动条,即太多的子菜单将超出屏幕范围,鼠标滚轮不能翻动菜单项,不太方便。在UniTreeMenu的clientEvents属性里的UniEvents里,左侧顶部选择Ext.list.Tree,然后在treeMenu.afterCreate里面添加代码如下,即可解决,效果还不错。[info]和[search],[home],[download],[trash],[refresh],[reply],[star],[user]有用,不是所有的都会显示出来。

2024-04-01 07:14:11 864

原创 Flexcel笔记

1.引入:2.

2024-03-26 07:58:26 279

原创 颜色表及html代码

颜色名称及色样表(HTML版)

2024-03-09 19:58:04 3822

原创 TStopwatch属性及方法

在这个例子中,我们在窗体创建时开始计时,销毁时停止计时,并输出总执行时间(毫秒)。

2024-03-04 08:49:43 287

原创 delphi android打开pdf

另外,如果您需要更强大的PDF编辑和显示功能,可以考虑使用其他第三方组件,如SynPDF或VCL for PDF。在Delphi开发的Android应用程序中打开PDF文件,您可以使用第三方组件,如TeePDF、SynPDF或VCL for PDF等。另外,如果您希望在Android设备上直接打开PDF文件,而不需要在应用程序中显示,可以使用Intent来启动系统的PDF查看器。在这个示例中,我们创建一个Intent来启动系统的PDF查看器,并传递PDF文件的路径。首先,您需要下载并安装TeePDF组件。

2024-03-01 09:25:29 297

原创 Delphi在App中打开Android文件

这一句搞出来的 URI 会导致异常。这里对于文件的描述,是一个 URI,因此,理论上,是一个网络文件,比如 http://xxx.xxx.xx/abc.mp4 也是能打开的。最近要播放 MP4,再次把这段代码拿来测试了一下。不过根据我的经验,如果你的手机安装了多个播放器,这时候系统会问你用哪个播放器。有了这几行代码,任何安卓系统支持的文件,都可以打开。

2024-01-12 14:36:17 577

原创 UniGUI中-UniTreeMenu1常见技巧

目前发现菜单太多时右侧不能自动出现滚动条,即太多的子菜单将超出屏幕范围,鼠标滚轮不能翻动菜单项,不太方便。在UniTreeMenu的clientEvents属性里的UniEvents里,左侧顶部选择Ext.list.Tree,然后在treeMenu.afterCreate里面添加代码如下,即可解决,效果还不错。[info]和[search],[home],[download],[trash],[refresh],[reply],[star],[user]有用,不是所有的都会显示出来。

2023-12-17 17:34:56 1297

原创 在unigui中为组件添加hint

'closable:false,draggable:false,target:"' + jsname + '_id",html:"'+hint+'",title:"提示"});//改变hint的样式。

2023-12-17 10:28:46 500

原创 UniGuiApplication的客户端信息包括以下内容:

这些信息可以帮助开发人员根据客户端的特性来进行相应的适配和处理。

2023-12-17 08:57:46 607

原创 TUniGUISession属性及方法

这些方法允许开发人员管理会话的生命周期,存储和检索与会话相关的数据,并执行其他与会话相关的操作。请注意,具体的属性和方法可能会因UniGUI的不同版本而有所变化。为了获得最准确的信息,建议查阅适用于你所使用的UniGUI版本的官方文档或源代码。TUniGUISession类是UniGUI框架中用于管理用户会话的类,主要用于存储和管理用户的会话信息。以上是TUniGUISession类常用的方法和属性,通过这些方法和属性可以实现对用户会话的管理和控制。的属性,具体可能会因版本和框架的具体实现而有所不同。

2023-12-17 08:28:44 1206

原创 unigui-透明-登录界面

透明窗体

2023-12-17 08:28:11 504

javav如何连接SQL2008

java如何连接到SQL2008,在以前的开发中不能正常连接。

2013-04-25

通用车缝数据Doc文档

制衣企业IE专用通用车缝数据,专利数据库很详细的。

2010-04-16

delphi代码标准文档

本文档主要是为Delphi开发人员提供一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致格式可遵循。这样,每个编程人员编写的代码能够被其他人理解

2010-04-16

OD入门教程(软件破解)

OD入门教程(软件破解),专门的软件破解的东东

2010-04-06

设计模式可复用面向对象软件的基础100406_1

设计模式可复用面向对象软件的基础100406_1

2010-04-06

Scott Mitchell 的ASP.NET 2.0数据教程

Scott Mitchell 的ASP.NET 2.0数据教程(1-8)

2007-09-13

.net AJAx程序设计

.net ajax程序设计

2007-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除