自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(268)
  • 资源 (21)
  • 收藏
  • 关注

原创 关于本博客:Delphi 的点滴经验

用 Delphi 很多年,平时有些经验,随便写写。之前没有发在 csdn。现在发现 csdn 的博客,比较适合贴代码,版面比较干净,方便阅读。经常网上搜关于 Delphi 的技术问题时,搜到的文章,出现得最多的是 csdn 和另外一家博客。所以,干脆开通 csdn 博客,专发关于 Delphi 编程的问题。各位同好,如果有什么问题,也可以在这里交流。最近几年,D

2017-04-06 11:19:10 1398

原创 HP 笔记本重新安装 Windows 11 无法启动

你已经看过了网上各种关于如何在 HP 笔记本电脑上安装 Windows 11 的文章。你遇到的问题肯定不是网上那些文章讲的那么简单的问题。你遇到的一定不是你不懂如何安装 Windows,不懂如何对硬盘分区等等小白问题。

2025-01-22 21:10:01 338

原创 Windows 11 升级更新后 WiFi 无法上网

查看桌面右下角的 WiFi 连接,发现是连上了。进入 cmd.exe,打命令 ipconfig,从命令执行结果来看,WiFi 网卡没有任何的 IP 地址之类的东西,和 WiFi 没有连接一模一样。

2025-01-21 00:38:20 899

原创 Hyper-V 之四:虚拟交换机

第一次安装 Hyper-V 虚拟机,网络适配器 那个选项,我就随便选了 Default Switch 这个。虚拟机启动后,在虚拟机里面启动命令行窗口,使用命令 ping 去测试,发现能够 ping 通我的物理机所在的局域网的网关。但是,发现虚拟机的 IP 地址是:172.18.199.121,也不知道这个 IP 地址是哪里来的,和我的局域网 IP 地址毫无关系。

2025-01-13 01:23:53 1151

原创 Hyper-V 之三:第一代和第二代的区别

书接上回,我把我的一个 VirtualBox 虚拟机硬盘,里面安装的是 Windows 10,转换为 Hyper-V 的 VHDX 文件,挂载到 Hyper-V 虚拟机上面,选择的是第二代,成功运行起来了。我有好几个 VirtualBox 的 Windows 虚拟机,因为我测试不同的程序,使用不同的虚拟机,这样避免因为系统的问题导致程序测试出问题。

2025-01-13 01:02:24 805

原创 Hyper-V 之二:如何使用 VirtualBox 的虚拟硬盘

之前我一直使用 VirtualBox 的嘛。最近发现,VirtualBox 里面的虚拟 Windows 系统越来越慢,打字的时候,拼音的全拼都打完了,字母才一个一个蹦出来,还要等一下,中文才出来。实在是忍不了。于是想到使用 Hyper-V 会不会快一点?原本想换 VmWare 的,这个玩意现在个人用户也正版免费了。但是,它的官网下载,需要登录注册一大堆事。所以,我就试试 Windows 自带的 Hyper-V 了。

2025-01-13 00:47:10 971

原创 Hyper-V 之一:Windows Home 版上没有 Hyper-V

买的笔记本电脑,原装的 Windows 是 Home 版 --- 家庭版。没有 Hyper-V。因此,之前使用虚拟机,一直是用 VirtualBox,现在想玩玩 Hyper-V,怎么办?

2025-01-13 00:23:13 346

原创 OpenVPN 被 Windows 升级破坏

2024-12-26 Windows 提示有更新需要安装。安装完成后,作为 OpenVPN 桥接服务器的电脑无法被 OpenVPN 客户端接入。

2024-12-29 03:37:15 702

原创 开源 SOAP over UDP

如果我想要使用其它的通讯协议来跑这个 RPC,比如 TCP 或者 UDP,来使用 Delphi 提供的 WebService 里面的 SOAP,Delphi 没有现成的支持。然后就可以在客户端调用服务器端的接口函数的时候,我拦截到客户端发出去的数据,然后我就可以通过 UDP 或者通过 TCP 发送给服务器端。使用这个框架,如果是两个 EXE 程序之间简单的互相调用,直接使用 UDP 来做,程序会非常简单。Delphi 的 WebService 框架非常好,但它是基于 http 的。于是我给它魔改了一下。

2024-12-27 20:21:42 679

原创 Delphi 内置的用于 SOAP WebService 的数据类型定义

理论上,在 SOAP WebService 的接口里面使用的数据类型,必须是注册过的。这些数据类型定义不是简单的定义一下,而是要注册到系统里面,注册代码也在这个单元里面。数据定义在这个单元:unit Soap.InvokeRegistry;当然,简单类型,比如 Integer 可以直接使用。

2024-11-28 11:07:17 314

原创 Delphi VCL 的 TScrollBox 响应鼠标滚轮的问题

盒子论坛有人说 ScrollBox 不响应鼠标滚轮。StackOverFlow里面,有人写了个很长的解释,也有很长的代码。看起来都头大。有没有简单一些的解决方案?

2024-11-19 23:19:47 907 1

原创 把一个对象序列化为字符串,再反序列化回来

Delphi 内置的对象序列化和反序列化

2024-11-18 22:17:25 500

原创 Delphi 做的 CMS 的源代码

当然,那个代码,可以让不熟悉 Delphi 的 WebBroker 框架的人,看看用 Delphi 的 WebBroker 框架做 WEB 服务器程序是怎么做的。里面的图片是通过上传图片文件后,回调 CKEditor 的 JS 把上传的图片的 URL 贴进去的方式。至于最近几天做的这个,因为采用了新的 WebStencils 和 HTMX,也采用了新的 CSS 库和 Quill Editor,总的来说 Delphi 的代码量少了很多。而我这个代码是实验性的代码,写得乱七八糟,实在不好意思出来见人。

2024-10-05 20:02:40 407

原创 用 Delphi 做了一个简单的 CMS

本来做这个玩意,就是想评估一下 Delphi 最新推出的 WebStencils 控件,实际做点东西才能知道它好不好用。东西并不复杂,页面也没有几个。顺便也评估一下 HTMX 是否好用。选择各种框架,工具,最重要的一点是,要能够达到代码封装,代码重用。不要在很多地方复制粘贴相同的代码。

2024-10-05 01:50:46 1261

原创 如何设置 IIS 用以运行Delphi 编译的 CGI 程序

结合一些好的前端库,可以很简单地作出非常漂亮功能强大的基于 WEB 页面的程序。具体做法这里就不细说了。在 Delphi 里面新建一个 Web Server 的工程,选择 IIS CGI 以后,这个工程编译出来的就是一个 Windows 的 Exe 可执行文件,它就是可以在 IIS 底下被 IIS 调用的 CGI 程序。额外说一句:Delphi 还可以编译出。

2024-10-04 01:28:49 788

原创 使用 HTMX 从服务器获取文本更新 Quill Editor 的内容

这里的技术要点有 2 个:1. HTMX 从服务器读取到字符串以后,那个字符串在哪里?因为它封装得太好了,正常使用,它直接就用获取到的字符串把页面上的目标元素的 innerHTML 或者 outerHTML 给替换掉了。没机会拿到这个字符串。2. 它如何去调用一个 JavaScript 函数,通过这个函数去向 Quill Editor 写入文本内容。在上述代码中,HTMX 通过描述的方式调用了函数,向函数传递了一个 event 参数。这里的 event 参数是 HTMX 带来的。

2024-10-02 06:19:00 627

原创 Quill Editor 富文本编辑器的高度问题

1. 编辑框只有一行高;2. 编辑框高度足够,但显示不全,左侧有滚动条。向下拉滚动条,编辑框把工具栏向上顶出去,工具栏看不见了。网上搜出来一大堆各种说法,照猫画虎,有时候对,有时候不对。这些说法没一个把原因说清楚。

2024-09-29 22:57:45 576

原创 WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题之还是 iframe

这个系列已经写了 3 篇了。这篇写如何使用 iframe 解决标题里面提到的问题。

2024-09-29 01:52:44 1304

原创 WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题之Shadow DOM

前面我写过一篇文章讲这个事情。用的是 iframe 的方法。

2024-09-26 22:26:57 1009 1

原创 Delphi 12.2 新出的 WebStencil 组件和 Quill 编辑器配合的问题

符号后面不加斜杠,WebStencil 会把内容使用 TNetEncoding.HTML.Encode 来编码,就把文字格式需要的尖括号“<”和“ >” 给转义成了 < 和 > 使得页面上直接显示其转义符号而不是根据加括号显示出文字的格式来。而使用 @ 符号后面加个斜杠,则内容被 WebStencil 处理的时候不会去编码,相当于直出,问题就不存在了。

2024-09-26 01:50:01 1113

原创 Delphi WebBroker 处理 Cookie 的一个小问题

作为 Web 服务器端的程序,我们可以给一个 Cookie。浏览器下次过来访问的时候,我们可以把之前给的 Cookie 读回来。简单说,一个 Cookie 就是一个字符串。比如你可以把这个用户登录的用户名记录在里面。因为,WEB 服务器是无状态的,同一个浏览器两次访问服务器,服务器并不知道上一次的用户状态,比如用户的名字。

2024-09-24 03:01:31 577

原创 Delphi 12.2 新增的 WebStencils 尝鲜

这个有本文上述的 github 链接里面的例子代码。1. 使用一个框架页面,在需要装正式内容的地方,写上:@RenderBody;2. 页面内容文件比如 index.html,不需要有页面框架代码诸如 <html> 等等,仅仅只需要提供页面显示内容。然后在文件开头把要使用的框架文件的名字写上去:@LayoutPage 框架.html;3. 页面的其它地方的代码,需要引入其它外部文件的内容,使用 @Import 文件名.html 的方式。问题来了:我的页面组装正确了,也正确显示了。

2024-09-23 01:50:59 3097

原创 WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题

前端页面的美化,我采用 Pico.css,可以非常简单就把页面做得很漂亮。富文本编辑器选用 Quill 也是非常简单就有了一个功能强大的富文本编辑器,尤其是完全不用考虑图文混排时的图片上传问题。

2024-09-21 02:57:59 731

原创 WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端

评估了好几个,最后选择这个开源的。把前端代码,存储为一个单独的文本文件,方便随便哪个页面需要的时候可以使用。相当于封装为一个独立的对象,方便代码重用。

2024-09-18 23:13:30 1306

原创 Delphi 的 RSA 库 LockBox

Delphi 的 RSA 算法库,LockBox 的用法。RSA 加密是非对称加密。首先要产生一对密钥:一个叫公钥,公开给别人的;一个叫私钥,自己留着的。

2024-09-13 22:28:37 1136

原创 安卓手机使用 Google Play 谷歌应用商店安装APP一直转圈等待

2. 如果转圈等待一直无法完成,在转圈等待中,不要关闭 Google Play 直接关掉科学上网。这时候,神奇的事情出现了:它安装成功了。如果你的手机情况不同,不保证一定成功。然后,点安装,然后,就看到一直转圈,显示等待中。首先,你要科学上网,才能在 Google play 里面搜索 APP。我遇到的情况的解决方法是:让它转圈,一直转。如果去国外旅游,可能需要安装一些当地的 APP 比如打车软件。1. 科学上网,搜索 APP,安装 APP,转圈等待中;很多原因,很多可能,因此不同的原因有不同的解决方法。

2024-08-26 18:47:37 6953 2

原创 把别人发来的 JSON 解析为 Delphi 的对象

这个 JSON 是其它语言生成的,在 Delphi 程序里面,如果能把它变成对象,后继的代码就会更简单。

2024-07-21 03:16:42 670

原创 使用Delphi做蓝牙BLE开发的一个问题

Delphi 的 BLE 开发,拖一个 TBlueToothLe 到界面上,使用这个控件,就可以进行 BLE 的开发,比如去连接一个蓝牙手环。Delphi 自带的 Demo 里面,有一个 BLEScanner 程序,可以作为开发的起点。

2024-07-09 02:01:17 1239

原创 Windows Server 远程桌面显示登录界面而不是直接登录进入的问题

通常情况下是在远程桌面客户端里面输入用户名和密码,点【连接】按钮,就直接登录进入远程桌面了。但是,有时候,不能直接进入,而是远程服务器的登录界面出现了,然后我们要做登录界面里面输入用户名和密码。如何把这种状态,改为直接在远程桌面客户端里面输入用户名和密码就能登录的状态?

2024-06-18 19:05:54 3815 2

原创 基于 Delphi 的前后端分离:之五,使用 HTMX 让页面元素组件化之面向对象的Delphi代码封装

用 Delphi 的类封装前端图表组件

2024-06-15 17:01:32 1231

原创 基于 Delphi 的前后端分离:之四,使用 HTMX 让页面元素组件化

对于 HTML5 的页面,使用 HTMX 就可以很容易把各路开源的页面代码,组件化,实现模块化开发,简化代码,方便维护。

2024-06-15 02:41:51 1380

原创 Windows OpenVPN的安装之服务器自动启动连接

1. 概念:OpenVPN 安装了一个服务叫做 OpenVPNService,可以在 Windows 系统的服务里面看到;这个服务需要的配置文件放在 config-auto 目录下;配置文件的名称可以是任意文件名,后缀是 .ovpn 就说明它是 OpenVPN 的配置文件。2. 如果上述两个条件(1. 服务自动运行;2. 配置文件在正确目录下),仍然不行,应该去看 log 目录底下的 log 文件,看看问题在哪里。

2024-06-14 00:37:08 3923

原创 基于 Delphi 的前后端分离:之三,使用 HTMX

前后端分离的例子

2024-06-07 10:27:01 1468

原创 基于 RTTI 的 TFrame 的创建和管理

1. 通过上述方式,可以简化大型应用程序的代码,减少出错机会。2. 其实用不着 RTTI,虽然我的代码里面使用了 RTTI。

2024-05-14 10:05:25 986

原创 一个基于 VCL 的模仿安卓 Toast 的提示消息控件

在别人已经实现的代码基础上,做一些简单的修改,来来回回也花了不少时间。中间还有一个版本有严重的 BUG。写好代码不容易,人都会犯错,人写的程序没有 BUG 才是奇怪。

2024-05-13 02:00:59 433

原创 Delphi 多线程的阻塞和线程之间的同步

1. TEvent 声明在:System.SyncObjs;2. 多个不同的线程可以有多个不同的 TEvent 的实例来进行各自的阻塞;3. TEvent.SetEvent 解除阻塞后,必须执行一次 TEvent.ResetEvent;否则就再也阻塞不住了;4. ResetEvent 由任何一个线程来执行都可以;5. 如果 TEvent 是超时导致的阻塞解除,不需要做 ResetEvent;

2024-03-28 00:50:34 588

原创 用 Delphi 做 FTP 服务器以及如何配置防火墙

使用 Delphi 的 TIdFTPServer 这个控件,做一个 FTP 服务器很简单。可以直接拿官方提供的 FTP Server 的那个 Demo 程序来修改。

2024-03-19 15:30:02 830

原创 DBGridEh 的排序

概念。

2024-03-01 21:43:27 1475

原创 Delphi 11 安卓的蓝牙权限申请

上一篇博客里面的代码,演示如何申请安卓的权限。

2024-02-23 02:13:47 797 1

原创 Delphi v11 安卓权限申请

上述代码中,DoGotPermissions 方法,用于调用这个模块的地方,当用户在申请权限的界面上通过了权限申请后,要执行的代码,通过这个事件方法调用。同样,上面这个函数里面的 TArray<string> 更改为:TClassicStringDynArray;我把代码封装到一个单独的 DataModule 里面了。这样方便在不同的项目里重复使用。Delphi 10.4 的安卓权限申请代码,在 Delphi 11 下面编译无法通过。原因是里面有几个变量类型的定义有所不同。

2024-02-19 23:54:41 780

Delphi ACM Component,ACM 控件用于声音采集和播放,含全部源代码和使用例子

10多年前从网上找来的控件用在当时我自己写的网络语音对讲软件里面,基于 Delphi 7 的程序。最近有人提起网络通话,从电脑里面翻出来,看看能不能在现在的 WINDOWS 和新的 Delphi 版本上用。经过测试,只做了一点修改就可以在 Delphi 10.4 和 Windows 11 上使用了。里面有一个测试工程的代码是我写的,测试通过。同时这个代码也演示了这个控件如何使用。不需要安装控件,直接引用控件的源代码单元,动态创建控件就可以了。 当然,这个只能用于 Windows 平台。

2023-03-24

Delphi FireMonkey TListView 做手机APP的主从列表的 Demo 源代码

类似卖货或者卖菜的手机 APP 的界面,左侧栏是分类,右侧栏是商品列表。采用 Delphi 来实现,一个源代码,可以编译到 Windows,安卓,iOS 目标平台上。也就是可以做手机 APP。这个 Demo 的解释:https://blog.youkuaiyun.com/pcplayer/article/details/126945466

2022-09-20

本人原创 Delphi 版本的 HTML 编辑器源代码

很多年前做过一个基于 Delphi 的 TWebBrowser 的 HTML 富文本编辑器,是基于 MS 的 DCOM 接口的方法来做的。它背后是 IE。 现在 Delphi 提供了基于新的 Edge 浏览器的 TEdgeBrowser ,这个没有提供什么编程接口,因此采用 JavaScript 来实现相同的富文本编辑功能。本源代码就是实现此功能。包括文字格式化,插入表格,插入图片,插入代码块等等。插入代码块采用了一个开源的 JS 方案。 本压缩文件包括 VCL 版本和 FMX 版本。可以用在 DELPHI 写的程序中,提供一个基于 HTML 的富文本输入和显示的界面给用户。

2022-03-30

Delphi FireMonkey 动画及多线程例子代码

Delphi FireMonkey 框架,一套代码同时支持多个平台

2021-01-22

发光按钮-基于Delphi FireMonkey的例子代码

采用 FireMonkey 的控件,无需写代码,设置属性,就能做出按钮发光的效果。这是本人摸索出来的一种实现方法的源代码。在 Delphi 上面可以编译为 Windows, Android, iOS 和 MAC 程序。

2020-04-06

MVVM_LiveBinding.7z

MVVM 模式是指 Model - View - ViewModel,也就是把数据业务逻辑和界面彻底分开,中间还有一个专门处理界面逻辑的 ViewModel。对于界面经常需要修改甚至大改的情况,这种模式减少了代码重写的工作量。当然,也让数据和业务逻辑模块可以单独做单元测试而无需界面。对于用对象而不是数据库来做数据对象的情况下,Delphi 提供的 LiveBindings 框架可以用更少的代码将分离的数据显示到界面上。并且可以同时兼容VCL和FMX,界面部分需要处理的代码工作量小很多,仅需可视化地拖拉就能搞定。本例子代码演示如何做到这一点。

2020-02-13

文本差异检查及显示的源码

用 Delphi 写的文本差异检查及显示的程序的源代码。文本差异采用 Diff.pas 来解析。差异的显示,采用 HTML 的格式。这样方便给差异的文本添加背景色。HTML 格式采用 BootStrap 框架。所需的 css, js 文件都在 win32/debug 目录下。也就是和可执行文件在同一个目录下。

2018-10-13

Delphi APP 使用 iOS 的 BackgroundFetch 的例子源代码

Background fetches 在 iOS7 时被加入进来。这个功能是让 APP 在后台时,iOS 会每隔一段时间(比如,30秒)调用一次 APP 的某个方法,用于从网络获取数据。 这里是 Delphi 调用这个功能的代码。

2017-10-10

Win7 远程桌面多用户补丁

优快云上好多这个补丁,但那些用 install.bat 安装的补丁在WIN7打完升级补丁后远程桌面连接会闪退。这个补丁打完后,win7至2017-10-8的所有升级包后仍然有用。

2017-10-08

本人原创:FireMonkey APP 的多语言支持的例子源码

用 Delphi FireMonkey 开发 APP 需要多语言支持,例子源码。

2017-10-02

本人原创源代码:Delphi APP 内置 WebBroker 让界面显示HTML5

Delphi 开发的 APP 内置 WebServer 用SQLite数据库存储页面内容,界面显示HTML5文档无需访问远程网站服务器。

2017-09-30

本人原创:基于Delphi WebBroker 的 CMS源代码

本人原创作品:基于 Delphi WebBroker 的一个 Web server 程序源代码。功能是简单的 CMS,博客系统。前端基于 Bootstrap。文本编辑使用 CKEditor,可以上传文件和图片。

2017-09-18

Delphi接口委托的例子代码

接口委托及运行期动态切换的演示代码。

2017-05-31

Delphi WebService 利用 TSOAPAttachment 传文件的例子代码

WebService 程序利用 TSOAPAttachment 来上传或下载文件

2017-05-14

Delphi WebBroker 网页上传文件的 Demo 源码

网页上传文件的服务器端程序的源代码,采用 Delphi 的 WebBroker 技术。任何需要网页上传文件的地方都可以用。

2017-05-02

WebBroker StandAlone 模式当 Web Server 用的源代码 by pcplayer

把 Stand Alone 模式的 WebBroker 程序当一个完整的 Web Server 来用的 Demo 代码。

2017-04-05

Delphi LiveBinding对象及对象序列化为JSON的例子

在Delphi里将对象和界面用LiveBinding方式绑定,用户操作界面改变对象属性值,对象属性值序列化为JSON字符串保存。

2016-11-24

Delphi 在 DBGrid 里面显示分组统计的源代码

Delphi程序在 DBGrid 里面显示分类统计,也就是小计。用 ClientDataSet 的 TAggregateField 的方法,也可以用 DBGridEh。本程序演示了这两种方法。

2016-11-03

Indy10 WEB Server Demo代码

使用 Indy10 TIdHTTPServer 开发的一个简单的Web服务器。它可以设置WEB根目录,设置WEB请求默认文件,响应浏览器对WEB服务器上的文件的请求。允许浏览器请求一系列HTML或JS文件,可以用来做一个简单的静态网站。没有执行CGI程序的功能。这里是例子代码,我自己写的,参考了网上的文章。

2014-07-15

HotLog 源代码

我自己用得最多最顺手的 Log 工具。把这份PAS单元文件加入到你的工程里,随时可以写LOG。尤其是多线程情况下很难用断点跟踪时。个人感觉比 OutputDebugString 好用。

2013-06-18

网络连接状态查看工具

做网络通信程序,经常要查看 Netstat,然后从一大堆连接里面,找到自己想看的那一条。可能是想查某个程序,即某个PID打开了某个端口没;也可能是想查某个端口被哪个程序占用;也可能是想查某个IP地址被哪个程序连接,等等。用眼睛去看很累。我用DELPHI写了个程序,执行 Netstat 然后获得其返回的连接状态字符,任意过滤,方便查看。这个工具我自己用起来很顺手。压缩包里有源码。

2013-06-18

Dspack for XE3

Dspakc 官方最后一个版本只支持到 D7。网上有另外一帮人彻底改写过的同名项目支持到 D2010/XE,在XE3底下也能安装。但我测试发现有一些问题,不如原来官方版本稳定。因此,我把官方支持到 D7 的最后一版在 XE3 底下做了小小修改后,可以在 XE3 底下安装成功,并且在我的正式工程里使用,没发现问题。

2013-06-17

基于 indy 的FTP客户端的例子

D7, INDY9, FTP 客户端的一个例子。已经用在实际的项目里的。

2010-03-30

空空如也

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

TA关注的人

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