- 博客(280)
- 资源 (21)
- 收藏
- 关注
原创 关于本博客:Delphi 的点滴经验
用 Delphi 很多年,平时有些经验,随便写写。之前没有发在 csdn。现在发现 csdn 的博客,比较适合贴代码,版面比较干净,方便阅读。经常网上搜关于 Delphi 的技术问题时,搜到的文章,出现得最多的是 csdn 和另外一家博客。所以,干脆开通 csdn 博客,专发关于 Delphi 编程的问题。各位同好,如果有什么问题,也可以在这里交流。最近几年,D
2017-04-06 11:19:10
1441
原创 还是 Markdown 的预览和编辑
上一篇文章里面,我把从 Markdown 转换来的 html 字符串,直接写入浏览器。因为还需要加载文章里面引用的图片,以及为了代码高亮而引用的 CSS / JS 而带来一些程序的复杂性。比如,CSS / JS 就引用了 CDN 的地址,导致文章打开时间比较长。又没办法让浏览器从本地硬盘文件夹里面加载 CSS / JS 文件(现代浏览器因为安全问题,不支持,虽然有 file:/// 协议,也不行)。
2025-11-14 17:06:38
464
原创 显示 Markdown 的文件
varbegintry// UTF8 内容的文本文件,加载后使用 UTF8Decode(SL.Text) 获得的字符串会有乱码;使用 TEncoding.UTF8 参数则不会。end;try//UImageHandle.pas 单元的函数finallyend;end;//复杂内容使用 JavaScript 写入页面会出问题。干脆直接用 Delphi 代码组装页面。end;
2025-11-13 20:59:28
433
原创 Delphi 结构体序列化为二进制串
摘要:本文介绍了Delphi中将结构体与二进制数据转换的两种方法。传统方法是使用Move函数复制内存数据,但会消耗CPU资源。优化方案是直接使用类型指针进行转换:定义记录类型和字节数组类型及其指针类型,通过指针类型转换实现内存共享,避免数据复制。测试代码验证了指针方法的可行性,通过类型转换和指针操作,不同数据类型的变量可以指向同一内存块,既保证了类型安全,又提高了执行效率。这种方法特别适用于需要频繁处理大量数据转换的场景。
2025-10-18 17:03:11
191
原创 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
1134
1
原创 Delphi 12 基于 Indy 的 WebServer 的 https 实现的问题
使用 Delphi 开发一个自带 HTTP Server 的 WebServer 程序或者 WebService 服务器端程序,是基于 Indy 的 TIdHTTPServer 来实现的。如何为它增加 https 的功能?
2025-08-24 16:06:01
528
1
原创 APP 开发之使用 Frame 做界面如何简化代码
摘要:本文介绍了使用Delphi的FireMonkey框架开发APP界面时,如何通过继承优化代码结构。传统方法是为每个界面创建TForm,但手机APP建议使用更轻量的TFrame。作者提出设计一个基类TFrameBase,包含通用UI元素(如返回按钮、工具栏)和关闭逻辑,子类只需继承基类并添加特定功能。通过泛型方法ShowMyFrame统一创建子类实例,减少了重复代码。文中以文件列表界面为例,演示了如何继承基类并绑定数据。该方法实现了界面堆叠和逐级返回效果,提高了开发效率,适用于多层级、风格统一的APP界面
2025-07-28 00:36:48
1277
5
原创 Delphi程序响应 TEdgeBrowser 页面里面的点击
使用 Delphi VCL 开发的程序,Form 上面放一个 TEdgeBrowser 用来呈现 HTML 页面。用户在页面里面点击了某个元素,Delphi 程序需要能够响应。
2025-06-12 02:55:51
607
原创 关于 Edge Browser 的安装
Delphi 的 VCL 控件,提供了一个基于 WebView2 的 Edge Browser,使用它可以支持 H5 的页面。而传统的 TWebBrowser 是基于 IE 的,H5 页面支持得不好。
2025-06-12 02:28:29
564
原创 DBGridEh 配合 ClientDataSet 做分页
用 Delphi 做三层的数据库应用,如果使用 MIDAS 框架,比较典型的一种用法是使用 WebService 框架。客户端使用 ClientDataSet 作为一个内存表,使用 DBGridEh 把数据呈现给用户。服务器端则采用任何的数据库控件,比如现在的 Delphi 版本推荐的 FireDAC 那一套。或者比较传统的 ADO 那一套(如果你使用 MS SQL-SERVER)。
2025-05-17 04:33:51
822
原创 Delphi 的泛型容器如何管理内部对象的生命周期
Delphi 的泛型容器 TDictionary<Key, Value> 里面的 Key 和 Value 可以是任何类型的数据。
2025-05-15 13:40:15
265
原创 再谈 FireBird 自增字段在ClientDataSet里如何处理
Delphi ClientDataSet 处理 FireBird 数据库的自增字段
2025-04-11 11:14:12
637
原创 HP 笔记本重新安装 Windows 11 无法启动
你已经看过了网上各种关于如何在 HP 笔记本电脑上安装 Windows 11 的文章。你遇到的问题肯定不是网上那些文章讲的那么简单的问题。你遇到的一定不是你不懂如何安装 Windows,不懂如何对硬盘分区等等小白问题。
2025-01-22 21:10:01
732
原创 Windows 11 升级更新后 WiFi 无法上网
查看桌面右下角的 WiFi 连接,发现是连上了。进入 cmd.exe,打命令 ipconfig,从命令执行结果来看,WiFi 网卡没有任何的 IP 地址之类的东西,和 WiFi 没有连接一模一样。
2025-01-21 00:38:20
3586
原创 Hyper-V 之四:虚拟交换机
第一次安装 Hyper-V 虚拟机,网络适配器 那个选项,我就随便选了 Default Switch 这个。虚拟机启动后,在虚拟机里面启动命令行窗口,使用命令 ping 去测试,发现能够 ping 通我的物理机所在的局域网的网关。但是,发现虚拟机的 IP 地址是:172.18.199.121,也不知道这个 IP 地址是哪里来的,和我的局域网 IP 地址毫无关系。
2025-01-13 01:23:53
1776
原创 Hyper-V 之三:第一代和第二代的区别
书接上回,我把我的一个 VirtualBox 虚拟机硬盘,里面安装的是 Windows 10,转换为 Hyper-V 的 VHDX 文件,挂载到 Hyper-V 虚拟机上面,选择的是第二代,成功运行起来了。我有好几个 VirtualBox 的 Windows 虚拟机,因为我测试不同的程序,使用不同的虚拟机,这样避免因为系统的问题导致程序测试出问题。
2025-01-13 01:02:24
1440
原创 Hyper-V 之二:如何使用 VirtualBox 的虚拟硬盘
之前我一直使用 VirtualBox 的嘛。最近发现,VirtualBox 里面的虚拟 Windows 系统越来越慢,打字的时候,拼音的全拼都打完了,字母才一个一个蹦出来,还要等一下,中文才出来。实在是忍不了。于是想到使用 Hyper-V 会不会快一点?原本想换 VmWare 的,这个玩意现在个人用户也正版免费了。但是,它的官网下载,需要登录注册一大堆事。所以,我就试试 Windows 自带的 Hyper-V 了。
2025-01-13 00:47:10
1221
原创 Hyper-V 之一:Windows Home 版上没有 Hyper-V
买的笔记本电脑,原装的 Windows 是 Home 版 --- 家庭版。没有 Hyper-V。因此,之前使用虚拟机,一直是用 VirtualBox,现在想玩玩 Hyper-V,怎么办?
2025-01-13 00:23:13
550
原创 OpenVPN 被 Windows 升级破坏
2024-12-26 Windows 提示有更新需要安装。安装完成后,作为 OpenVPN 桥接服务器的电脑无法被 OpenVPN 客户端接入。
2024-12-29 03:37:15
1086
原创 开源 SOAP over UDP
如果我想要使用其它的通讯协议来跑这个 RPC,比如 TCP 或者 UDP,来使用 Delphi 提供的 WebService 里面的 SOAP,Delphi 没有现成的支持。然后就可以在客户端调用服务器端的接口函数的时候,我拦截到客户端发出去的数据,然后我就可以通过 UDP 或者通过 TCP 发送给服务器端。使用这个框架,如果是两个 EXE 程序之间简单的互相调用,直接使用 UDP 来做,程序会非常简单。Delphi 的 WebService 框架非常好,但它是基于 http 的。于是我给它魔改了一下。
2024-12-27 20:21:42
759
原创 Delphi 内置的用于 SOAP WebService 的数据类型定义
理论上,在 SOAP WebService 的接口里面使用的数据类型,必须是注册过的。这些数据类型定义不是简单的定义一下,而是要注册到系统里面,注册代码也在这个单元里面。数据定义在这个单元:unit Soap.InvokeRegistry;当然,简单类型,比如 Integer 可以直接使用。
2024-11-28 11:07:17
405
原创 Delphi VCL 的 TScrollBox 响应鼠标滚轮的问题
盒子论坛有人说 ScrollBox 不响应鼠标滚轮。StackOverFlow里面,有人写了个很长的解释,也有很长的代码。看起来都头大。有没有简单一些的解决方案?
2024-11-19 23:19:47
1246
1
原创 Delphi 做的 CMS 的源代码
当然,那个代码,可以让不熟悉 Delphi 的 WebBroker 框架的人,看看用 Delphi 的 WebBroker 框架做 WEB 服务器程序是怎么做的。里面的图片是通过上传图片文件后,回调 CKEditor 的 JS 把上传的图片的 URL 贴进去的方式。至于最近几天做的这个,因为采用了新的 WebStencils 和 HTMX,也采用了新的 CSS 库和 Quill Editor,总的来说 Delphi 的代码量少了很多。而我这个代码是实验性的代码,写得乱七八糟,实在不好意思出来见人。
2024-10-05 20:02:40
479
原创 用 Delphi 做了一个简单的 CMS
本来做这个玩意,就是想评估一下 Delphi 最新推出的 WebStencils 控件,实际做点东西才能知道它好不好用。东西并不复杂,页面也没有几个。顺便也评估一下 HTMX 是否好用。选择各种框架,工具,最重要的一点是,要能够达到代码封装,代码重用。不要在很多地方复制粘贴相同的代码。
2024-10-05 01:50:46
1560
2
原创 如何设置 IIS 用以运行Delphi 编译的 CGI 程序
结合一些好的前端库,可以很简单地作出非常漂亮功能强大的基于 WEB 页面的程序。具体做法这里就不细说了。在 Delphi 里面新建一个 Web Server 的工程,选择 IIS CGI 以后,这个工程编译出来的就是一个 Windows 的 Exe 可执行文件,它就是可以在 IIS 底下被 IIS 调用的 CGI 程序。额外说一句:Delphi 还可以编译出。
2024-10-04 01:28:49
883
原创 使用 HTMX 从服务器获取文本更新 Quill Editor 的内容
这里的技术要点有 2 个:1. HTMX 从服务器读取到字符串以后,那个字符串在哪里?因为它封装得太好了,正常使用,它直接就用获取到的字符串把页面上的目标元素的 innerHTML 或者 outerHTML 给替换掉了。没机会拿到这个字符串。2. 它如何去调用一个 JavaScript 函数,通过这个函数去向 Quill Editor 写入文本内容。在上述代码中,HTMX 通过描述的方式调用了函数,向函数传递了一个 event 参数。这里的 event 参数是 HTMX 带来的。
2024-10-02 06:19:00
723
原创 Quill Editor 富文本编辑器的高度问题
1. 编辑框只有一行高;2. 编辑框高度足够,但显示不全,左侧有滚动条。向下拉滚动条,编辑框把工具栏向上顶出去,工具栏看不见了。网上搜出来一大堆各种说法,照猫画虎,有时候对,有时候不对。这些说法没一个把原因说清楚。
2024-09-29 22:57:45
905
原创 WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题之还是 iframe
这个系列已经写了 3 篇了。这篇写如何使用 iframe 解决标题里面提到的问题。
2024-09-29 01:52:44
1386
原创 WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题之Shadow DOM
前面我写过一篇文章讲这个事情。用的是 iframe 的方法。
2024-09-26 22:26:57
1119
1
原创 Delphi 12.2 新出的 WebStencil 组件和 Quill 编辑器配合的问题
符号后面不加斜杠,WebStencil 会把内容使用 TNetEncoding.HTML.Encode 来编码,就把文字格式需要的尖括号“<”和“ >” 给转义成了 < 和 > 使得页面上直接显示其转义符号而不是根据加括号显示出文字的格式来。而使用 @ 符号后面加个斜杠,则内容被 WebStencil 处理的时候不会去编码,相当于直出,问题就不存在了。
2024-09-26 01:50:01
1333
原创 Delphi WebBroker 处理 Cookie 的一个小问题
作为 Web 服务器端的程序,我们可以给一个 Cookie。浏览器下次过来访问的时候,我们可以把之前给的 Cookie 读回来。简单说,一个 Cookie 就是一个字符串。比如你可以把这个用户登录的用户名记录在里面。因为,WEB 服务器是无状态的,同一个浏览器两次访问服务器,服务器并不知道上一次的用户状态,比如用户的名字。
2024-09-24 03:01:31
647
原创 Delphi 12.2 新增的 WebStencils 尝鲜
这个有本文上述的 github 链接里面的例子代码。1. 使用一个框架页面,在需要装正式内容的地方,写上:@RenderBody;2. 页面内容文件比如 index.html,不需要有页面框架代码诸如 <html> 等等,仅仅只需要提供页面显示内容。然后在文件开头把要使用的框架文件的名字写上去:@LayoutPage 框架.html;3. 页面的其它地方的代码,需要引入其它外部文件的内容,使用 @Import 文件名.html 的方式。问题来了:我的页面组装正确了,也正确显示了。
2024-09-23 01:50:59
3500
原创 WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题
前端页面的美化,我采用 Pico.css,可以非常简单就把页面做得很漂亮。富文本编辑器选用 Quill 也是非常简单就有了一个功能强大的富文本编辑器,尤其是完全不用考虑图文混排时的图片上传问题。
2024-09-21 02:57:59
815
原创 WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端
评估了好几个,最后选择这个开源的。把前端代码,存储为一个单独的文本文件,方便随便哪个页面需要的时候可以使用。相当于封装为一个独立的对象,方便代码重用。
2024-09-18 23:13:30
1453
原创 Delphi 的 RSA 库 LockBox
Delphi 的 RSA 算法库,LockBox 的用法。RSA 加密是非对称加密。首先要产生一对密钥:一个叫公钥,公开给别人的;一个叫私钥,自己留着的。
2024-09-13 22:28:37
1489
原创 安卓手机使用 Google Play 谷歌应用商店安装APP一直转圈等待
2. 如果转圈等待一直无法完成,在转圈等待中,不要关闭 Google Play 直接关掉科学上网。这时候,神奇的事情出现了:它安装成功了。如果你的手机情况不同,不保证一定成功。然后,点安装,然后,就看到一直转圈,显示等待中。首先,你要科学上网,才能在 Google play 里面搜索 APP。我遇到的情况的解决方法是:让它转圈,一直转。如果去国外旅游,可能需要安装一些当地的 APP 比如打车软件。1. 科学上网,搜索 APP,安装 APP,转圈等待中;很多原因,很多可能,因此不同的原因有不同的解决方法。
2024-08-26 18:47:37
11779
3
原创 把别人发来的 JSON 解析为 Delphi 的对象
这个 JSON 是其它语言生成的,在 Delphi 程序里面,如果能把它变成对象,后继的代码就会更简单。
2024-07-21 03:16:42
753
原创 使用Delphi做蓝牙BLE开发的一个问题
Delphi 的 BLE 开发,拖一个 TBlueToothLe 到界面上,使用这个控件,就可以进行 BLE 的开发,比如去连接一个蓝牙手环。Delphi 自带的 Demo 里面,有一个 BLEScanner 程序,可以作为开发的起点。
2024-07-09 02:01:17
1552
1
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订阅