- 博客(297)
- 资源 (21)
- 收藏
- 关注
原创 关于本博客:Delphi 的点滴经验
用 Delphi 很多年,平时有些经验,随便写写。之前没有发在 csdn。现在发现 csdn 的博客,比较适合贴代码,版面比较干净,方便阅读。经常网上搜关于 Delphi 的技术问题时,搜到的文章,出现得最多的是 csdn 和另外一家博客。所以,干脆开通 csdn 博客,专发关于 Delphi 编程的问题。各位同好,如果有什么问题,也可以在这里交流。最近几年,D
2017-04-06 11:19:10
1489
原创 ChromeTabs 控件
通过引入开源的 ChromeTabs 控件并配置编译指令,可实现类似 Chrome 浏览器的标签式界面。只需在 Form 中使用 TChromeTabsGlassForm 替代普通 TForm,绑定 ChromeTabs 组件,并在 OnCreate 事件中设置 Self.ChromeTabs := ChromeTabs1,即可让标签页占据窗体标题栏区域,实现现代化、美观的 UI 效果。
2026-09-09 15:30:03
191
原创 Delphi WebService 使用 HTTP Header 管理 Session
使用 Delphi 的 WebBroker 框架可以开发标准的 Web Server 程序。使用 Delphi 的 SOAP 框架,可以开发支持 SOAP 标准的 WebService 服务端程序。此框架建立的 WebBroker 框架之上。使用 Delphi 可以开发客户端程序,去调用 WebService 服务器提供的 SOAP 函数。同时也可以去调用 WebBroker 开发的 Web Server 提供的 RESTfull 的 URL 接口。
2026-08-14 08:20:48
275
原创 调试 Delphi 的 Service 工程
本文介绍了在Delphi中调试Windows Service工程的解决方案。通过在工程源代码中添加编译器指令,将调试模式下的程序作为控制台应用运行,并使用Readln阻塞防止退出,从而实现断点调试。关键代码展示了如何使用{$IFDEF DEBUG}条件编译区分调试和发布模式。文章还特别指出,当服务程序中集成WebServer时,为避免Winsock异常,需要延迟启动WebServer(如使用Sleep(1000))。这种方案解决了Delphi IDE无法直接调试Windows服务的难题,同时处理了WebSe
2026-07-29 02:18:30
276
原创 读主板 BIOS 的 UUID
这段Delphi代码演示了如何通过WMI查询获取主板BIOS信息。核心功能由GetWMIPropertySafe函数实现,它通过WbemScripting.SWbemLocator连接WMI服务,查询Win32_BIOS和Win32_ComputerSystemProduct类,获取序列号、制造商、出厂日期和UUID等关键信息。代码特别优化了错误处理,通过检查Enum.Next返回值确保成功获取第一条记录,并使用VarIs系列函数进行数据类型验证。相比网上原始版本,AI识别并修复了未检查读取状态的潜在BUG
2026-07-24 21:13:59
200
原创 使用 Delphi 代码访问阿里千问大模型API
首先,去阿里百炼官网,去申请一个 API KEY。然后,在 Delphi 里面创建一个新的 VCL 工程。拖一个 TNetHTTPClient 控件到页面上,用它来执行 http post 去访问阿里大模型。
2026-06-23 23:58:02
279
原创 Delphi 源代码的 MCP Server
Agent 这个中文单词的意思就是代理。把它翻译为【智能体】的人,真是个人才,严重误导观众。Agent 仅仅是一个【代理】,它代理人去和 LLM 大模型打交道。同时,它也代理 LLM 大模型,去和现实世界打交道。
2026-05-31 11:57:16
267
原创 非常好用的 Excel 读写控件
本文介绍了Delphi处理Excel表格的几种方法对比。ADO方式简单但存在连接关闭耗时问题;收费控件成本高;Python方案需额外安装环境。重点推荐开源免费的Office4D库,它采用接口编程方式,自动管理内存,处理大文件效率高且无等待问题。文中提供了Office4D的示例代码,展示了如何读取Excel单元格数据,并指出该库同时支持Word文件处理。相比其他方案,Office4D在易用性、性能和成本方面具有综合优势。
2026-04-28 04:49:25
382
原创 WebBroker 的 PathInfo
本文介绍了Delphi的WebBroker框架开发Web服务器后端的方法。重点讲解了PathInfo路径分派规则,指出路径后需加""号以避免斜杠问题,并演示了WebActionItem的事件处理。同时说明WebServices服务可以同时支持SOAP接口和浏览器访问,通过WebModule添加ActionItem实现。文章还分析了WebServices自动分派机制,强调TWebDispatch对象对PathInfo路径的自动处理功能。最后总结了两个关键点:WebBroker路径需加&qu
2026-04-19 09:12:32
376
原创 TEdgeBrowser 逐个字符动态显示
本文介绍了如何使用Delphi的TEdgeBrowser控件实现类似AI聊天界面的动态文字显示效果。主要内容包括:1) TEdgeBrowser的基本使用方法,包括加载WebView2Loader.dll和创建WebView;2) 三种页面加载方式:从Web服务器、本地HTML文件和直接字符串;3) 关键实现方案:通过预加载包含JavaScript函数的HTML页面,利用ExecuteScript方法调用appendText函数实现逐字显示效果。文章提供了完整的HTML示例代码和Delphi调用方法,展示了
2026-03-02 10:25:14
562
原创 用Delphi写和本机大模型聊天的流式HTTP程序
本文介绍了如何在Delphi中使用TNetHTTPClient实现AI聊天的流式响应处理。与传统的TIdHTTP不同,TNetHTTPClient通过OnReceiveDataEx事件可以实时接收分段数据,无需等待完整响应。文章详细展示了如何设置HTTP请求、处理分块JSON数据并实时更新UI界面,实现了类似主流AI服务的逐字显示效果。该方法避免了阻塞式通讯的等待问题,为开发Delphi版AI客户端提供了实用解决方案。
2026-02-27 20:57:48
494
1
原创 本机安装大模型
摘要 本文介绍了如何在个人电脑上本地安装和运行AI大模型,避免依赖云服务的高额费用。作者详细说明了使用Ollama框架的安装步骤:下载Windows安装程序,选择适合硬件配置的模型(如Gemma3 12b),并通过命令行和Delphi程序测试API接口。重点解决了Windows环境下curl命令的格式问题,并提供了成功的Delphi调用代码示例。这种方法让用户可以在本地运行AI,无需网络连接,特别适合学习和开发用途。文章为想要在本地部署AI的开发者提供了实用指南。
2026-02-27 14:01:34
874
原创 Delphi程序和大模型交互之二
我只是测试了 AI 能否理解并且能否创建 SOAP 的调用协议对应的 XML;我是在AI的浏览器聊天页面里面测试的,AI 的输出是聊天文本,我复制粘贴到我的 Delphi 代码里面去执行的。如果要完整的自动化跑,应该是调用 AI 的 API。但我目前没有调用 API 的免费账户,就没有做这个工作。哪天搞到个账号再试试能否完全自动化地跑起来,不需要人肉在中间复制粘贴文本来回传。
2026-02-24 10:47:31
728
原创 Delphi程序和AI大模型交互
本文探讨了使用Delphi开发AI大模型Agent的方法。通过构建WebService服务器端程序,演示了如何让AI模型调用本地函数(如XPlusY加法函数),并解析返回结果。作者详细记录了SOAP调用的XML格式,展示了如何通过HTTP直接发送XML请求获取服务端响应。实验证明,AI模型(如DeepSeek)能够理解SOAP协议规范,并根据WSDL生成正确的客户端调用XML代码。这种方法为AI模型与本地程序交互提供了可行方案,通过标准化的SOAP/XML接口实现功能扩展。
2026-02-24 00:03:02
1353
原创 本人的 Markdown 编辑和预览程序源代码发布
GitHub开源项目:Markdown编辑器 项目地址:https://github.com/pcplayer/Markdown_Editor/tree/master 这是一个开源的Markdown编辑器项目,托管在GitHub平台上。项目采用树状目录结构管理,目前处于master主分支。该编辑器支持Markdown语法,适合开发者和内容创作者使用。用户可以通过GitHub获取源代码,并根据需要进行二次开发或直接使用。项目遵循开源协议,欢迎开发者参与贡献。
2026-02-20 16:58:49
91
原创 双击打开文件和单进程模式以及文件拖放
本文介绍了Windows桌面程序中实现双击打开文件和单进程模式的解决方案。通过Delphi的JVCL控件(JvAppInstances1)可轻松实现单进程模式,设置MaxInstances为1即可。对于文件打开功能,程序需处理两种情况:首次启动时通过ParamStr读取命令行参数获取文件名;已有实例运行时通过OnCmdLineReceived事件接收新文件名。此外,还讲解了文件拖放功能的实现方法:调用DragAcceptFiles启用拖放支持,并处理WM_DROPFILES消息来获取拖放的文件路径。这些技术
2026-02-06 23:58:16
361
原创 把图片文件转化为 ICON 文件
本文介绍了如何将图片文件转换为ICO格式图标的方法。通过Delphi VCL编程实现,支持BMP、JPG、PNG、GIF等多种图片格式转换。核心代码使用CreateIconIndirect函数创建图标,并处理掩码位图实现透明效果。测试环境为Delphi 12 CE版本,转换后的图标可应用于程序发布。该方法解决了Paint.net等图片编辑器无法直接保存为ICO格式的问题,为Delphi开发者提供了一种便捷的图标生成方案。
2026-01-17 00:47:15
257
原创 还是 Markdown 的预览和编辑
上一篇文章里面,我把从 Markdown 转换来的 html 字符串,直接写入浏览器。因为还需要加载文章里面引用的图片,以及为了代码高亮而引用的 CSS / JS 而带来一些程序的复杂性。比如,CSS / JS 就引用了 CDN 的地址,导致文章打开时间比较长。又没办法让浏览器从本地硬盘文件夹里面加载 CSS / JS 文件(现代浏览器因为安全问题,不支持,虽然有 file:/// 协议,也不行)。
2025-11-14 17:06:38
560
原创 显示 Markdown 的文件
varbegintry// UTF8 内容的文本文件,加载后使用 UTF8Decode(SL.Text) 获得的字符串会有乱码;使用 TEncoding.UTF8 参数则不会。end;try//UImageHandle.pas 单元的函数finallyend;end;//复杂内容使用 JavaScript 写入页面会出问题。干脆直接用 Delphi 代码组装页面。end;
2025-11-13 20:59:28
585
原创 Delphi 结构体序列化为二进制串
摘要:本文介绍了Delphi中将结构体与二进制数据转换的两种方法。传统方法是使用Move函数复制内存数据,但会消耗CPU资源。优化方案是直接使用类型指针进行转换:定义记录类型和字节数组类型及其指针类型,通过指针类型转换实现内存共享,避免数据复制。测试代码验证了指针方法的可行性,通过类型转换和指针操作,不同数据类型的变量可以指向同一内存块,既保证了类型安全,又提高了执行效率。这种方法特别适用于需要频繁处理大量数据转换的场景。
2025-10-18 17:03:11
284
原创 Indy HTTP Server 使用 OpenSSL 3.0
使用 Indy HTTP Server 做一个 Web Server 或者一个 WebService Server,如果使用 Delphi 默认的 TIdServerIOHandlerSSLOpenSSL,只能加载 OpenSSL 1.0 的 DLL 库。现如今 OpenSSL 已经是 3.0 了。还好网上有开源的 TTaurusTLSServerIOHandler 可以用来替换 TIdServerIOHandlerSSLOpenSSL 加载 OpenSSL 3.0 的 DLL 库。
2025-08-24 17:06:01
1375
1
原创 Delphi 12 基于 Indy 的 WebServer 的 https 实现的问题
使用 Delphi 开发一个自带 HTTP Server 的 WebServer 程序或者 WebService 服务器端程序,是基于 Indy 的 TIdHTTPServer 来实现的。如何为它增加 https 的功能?
2025-08-24 16:06:01
685
1
原创 APP 开发之使用 Frame 做界面如何简化代码
摘要:本文介绍了使用Delphi的FireMonkey框架开发APP界面时,如何通过继承优化代码结构。传统方法是为每个界面创建TForm,但手机APP建议使用更轻量的TFrame。作者提出设计一个基类TFrameBase,包含通用UI元素(如返回按钮、工具栏)和关闭逻辑,子类只需继承基类并添加特定功能。通过泛型方法ShowMyFrame统一创建子类实例,减少了重复代码。文中以文件列表界面为例,演示了如何继承基类并绑定数据。该方法实现了界面堆叠和逐级返回效果,提高了开发效率,适用于多层级、风格统一的APP界面
2025-07-28 00:36:48
1384
5
原创 Delphi程序响应 TEdgeBrowser 页面里面的点击
使用 Delphi VCL 开发的程序,Form 上面放一个 TEdgeBrowser 用来呈现 HTML 页面。用户在页面里面点击了某个元素,Delphi 程序需要能够响应。
2025-06-12 02:55:51
833
原创 关于 Edge Browser 的安装
Delphi 的 VCL 控件,提供了一个基于 WebView2 的 Edge Browser,使用它可以支持 H5 的页面。而传统的 TWebBrowser 是基于 IE 的,H5 页面支持得不好。
2025-06-12 02:28:29
730
原创 DBGridEh 配合 ClientDataSet 做分页
用 Delphi 做三层的数据库应用,如果使用 MIDAS 框架,比较典型的一种用法是使用 WebService 框架。客户端使用 ClientDataSet 作为一个内存表,使用 DBGridEh 把数据呈现给用户。服务器端则采用任何的数据库控件,比如现在的 Delphi 版本推荐的 FireDAC 那一套。或者比较传统的 ADO 那一套(如果你使用 MS SQL-SERVER)。
2025-05-17 04:33:51
912
原创 Delphi 的泛型容器如何管理内部对象的生命周期
Delphi 的泛型容器 TDictionary<Key, Value> 里面的 Key 和 Value 可以是任何类型的数据。
2025-05-15 13:40:15
322
原创 再谈 FireBird 自增字段在ClientDataSet里如何处理
Delphi ClientDataSet 处理 FireBird 数据库的自增字段
2025-04-11 11:14:12
685
原创 HP 笔记本重新安装 Windows 11 无法启动
你已经看过了网上各种关于如何在 HP 笔记本电脑上安装 Windows 11 的文章。你遇到的问题肯定不是网上那些文章讲的那么简单的问题。你遇到的一定不是你不懂如何安装 Windows,不懂如何对硬盘分区等等小白问题。
2025-01-22 21:10:01
1073
原创 Windows 11 升级更新后 WiFi 无法上网
查看桌面右下角的 WiFi 连接,发现是连上了。进入 cmd.exe,打命令 ipconfig,从命令执行结果来看,WiFi 网卡没有任何的 IP 地址之类的东西,和 WiFi 没有连接一模一样。
2025-01-21 00:38:20
5645
原创 Hyper-V 之四:虚拟交换机
第一次安装 Hyper-V 虚拟机,网络适配器 那个选项,我就随便选了 Default Switch 这个。虚拟机启动后,在虚拟机里面启动命令行窗口,使用命令 ping 去测试,发现能够 ping 通我的物理机所在的局域网的网关。但是,发现虚拟机的 IP 地址是:172.18.199.121,也不知道这个 IP 地址是哪里来的,和我的局域网 IP 地址毫无关系。
2025-01-13 01:23:53
2098
原创 Hyper-V 之三:第一代和第二代的区别
书接上回,我把我的一个 VirtualBox 虚拟机硬盘,里面安装的是 Windows 10,转换为 Hyper-V 的 VHDX 文件,挂载到 Hyper-V 虚拟机上面,选择的是第二代,成功运行起来了。我有好几个 VirtualBox 的 Windows 虚拟机,因为我测试不同的程序,使用不同的虚拟机,这样避免因为系统的问题导致程序测试出问题。
2025-01-13 01:02:24
1780
原创 Hyper-V 之二:如何使用 VirtualBox 的虚拟硬盘
之前我一直使用 VirtualBox 的嘛。最近发现,VirtualBox 里面的虚拟 Windows 系统越来越慢,打字的时候,拼音的全拼都打完了,字母才一个一个蹦出来,还要等一下,中文才出来。实在是忍不了。于是想到使用 Hyper-V 会不会快一点?原本想换 VmWare 的,这个玩意现在个人用户也正版免费了。但是,它的官网下载,需要登录注册一大堆事。所以,我就试试 Windows 自带的 Hyper-V 了。
2025-01-13 00:47:10
1390
原创 Hyper-V 之一:Windows Home 版上没有 Hyper-V
买的笔记本电脑,原装的 Windows 是 Home 版 --- 家庭版。没有 Hyper-V。因此,之前使用虚拟机,一直是用 VirtualBox,现在想玩玩 Hyper-V,怎么办?
2025-01-13 00:23:13
640
原创 OpenVPN 被 Windows 升级破坏
2024-12-26 Windows 提示有更新需要安装。安装完成后,作为 OpenVPN 桥接服务器的电脑无法被 OpenVPN 客户端接入。
2024-12-29 03:37:15
1287
原创 开源 SOAP over UDP
如果我想要使用其它的通讯协议来跑这个 RPC,比如 TCP 或者 UDP,来使用 Delphi 提供的 WebService 里面的 SOAP,Delphi 没有现成的支持。然后就可以在客户端调用服务器端的接口函数的时候,我拦截到客户端发出去的数据,然后我就可以通过 UDP 或者通过 TCP 发送给服务器端。使用这个框架,如果是两个 EXE 程序之间简单的互相调用,直接使用 UDP 来做,程序会非常简单。Delphi 的 WebService 框架非常好,但它是基于 http 的。于是我给它魔改了一下。
2024-12-27 20:21:42
799
Delphi ACM Component,ACM 控件用于声音采集和播放,含全部源代码和使用例子
2023-03-24
Delphi FireMonkey TListView 做手机APP的主从列表的 Demo 源代码
2022-09-20
本人原创 Delphi 版本的 HTML 编辑器源代码
2022-03-30
Delphi LiveBinding对象及对象序列化为JSON的例子
2016-11-24
文本差异检查及显示的源码
2018-10-13
Dspack for XE3
2013-06-17
Indy10 WEB Server Demo代码
2014-07-15
WebBroker StandAlone 模式当 Web Server 用的源代码 by pcplayer
2017-04-05
Delphi 在 DBGrid 里面显示分组统计的源代码
2016-11-03
Delphi APP 使用 iOS 的 BackgroundFetch 的例子源代码
2017-10-10
Win7 远程桌面多用户补丁
2017-10-08
发光按钮-基于Delphi FireMonkey的例子代码
2020-04-06
Delphi WebBroker 网页上传文件的 Demo 源码
2017-05-02
网络连接状态查看工具
2013-06-18
本人原创:基于Delphi WebBroker 的 CMS源代码
2017-09-18
本人原创源代码:Delphi APP 内置 WebBroker 让界面显示HTML5
2017-09-30
MVVM_LiveBinding.7z
2020-02-13
HotLog 源代码
2013-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅