- 博客(251)
- 资源 (21)
- 收藏
- 关注
原创 关于本博客:Delphi 的点滴经验
用 Delphi 很多年,平时有些经验,随便写写。之前没有发在 csdn。现在发现 csdn 的博客,比较适合贴代码,版面比较干净,方便阅读。经常网上搜关于 Delphi 的技术问题时,搜到的文章,出现得最多的是 csdn 和另外一家博客。所以,干脆开通 csdn 博客,专发关于 Delphi 编程的问题。各位同好,如果有什么问题,也可以在这里交流。最近几年,D
2017-04-06 11:19:10 1325
原创 Delphi 12.2 新出的 WebStencil 组件和 Quill 编辑器配合的问题
符号后面不加斜杠,WebStencil 会把内容使用 TNetEncoding.HTML.Encode 来编码,就把文字格式需要的尖括号“<”和“ >” 给转义成了 < 和 > 使得页面上直接显示其转义符号而不是根据加括号显示出文字的格式来。而使用 @ 符号后面加个斜杠,则内容被 WebStencil 处理的时候不会去编码,相当于直出,问题就不存在了。
2024-09-26 01:50:01 319
原创 Delphi WebBroker 处理 Cookie 的一个小问题
作为 Web 服务器端的程序,我们可以给一个 Cookie。浏览器下次过来访问的时候,我们可以把之前给的 Cookie 读回来。简单说,一个 Cookie 就是一个字符串。比如你可以把这个用户登录的用户名记录在里面。因为,WEB 服务器是无状态的,同一个浏览器两次访问服务器,服务器并不知道上一次的用户状态,比如用户的名字。
2024-09-24 03:01:31 379
原创 Delphi 12.2 新增的 WebStencils 尝鲜
这个有本文上述的 github 链接里面的例子代码。1. 使用一个框架页面,在需要装正式内容的地方,写上:@RenderBody;2. 页面内容文件比如 index.html,不需要有页面框架代码诸如 <html> 等等,仅仅只需要提供页面显示内容。然后在文件开头把要使用的框架文件的名字写上去:@LayoutPage 框架.html;3. 页面的其它地方的代码,需要引入其它外部文件的内容,使用 @Import 文件名.html 的方式。问题来了:我的页面组装正确了,也正确显示了。
2024-09-23 01:50:59 1517
原创 WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题
前端页面的美化,我采用 Pico.css,可以非常简单就把页面做得很漂亮。富文本编辑器选用 Quill 也是非常简单就有了一个功能强大的富文本编辑器,尤其是完全不用考虑图文混排时的图片上传问题。
2024-09-21 02:57:59 617
原创 WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端
评估了好几个,最后选择这个开源的。把前端代码,存储为一个单独的文本文件,方便随便哪个页面需要的时候可以使用。相当于封装为一个独立的对象,方便代码重用。
2024-09-18 23:13:30 1170
原创 Delphi 的 RSA 库 LockBox
Delphi 的 RSA 算法库,LockBox 的用法。RSA 加密是非对称加密。首先要产生一对密钥:一个叫公钥,公开给别人的;一个叫私钥,自己留着的。
2024-09-13 22:28:37 849
原创 安卓手机使用 Google Play 谷歌应用商店安装APP一直转圈等待
2. 如果转圈等待一直无法完成,在转圈等待中,不要关闭 Google Play 直接关掉科学上网。这时候,神奇的事情出现了:它安装成功了。如果你的手机情况不同,不保证一定成功。然后,点安装,然后,就看到一直转圈,显示等待中。首先,你要科学上网,才能在 Google play 里面搜索 APP。我遇到的情况的解决方法是:让它转圈,一直转。如果去国外旅游,可能需要安装一些当地的 APP 比如打车软件。1. 科学上网,搜索 APP,安装 APP,转圈等待中;很多原因,很多可能,因此不同的原因有不同的解决方法。
2024-08-26 18:47:37 612
原创 把别人发来的 JSON 解析为 Delphi 的对象
这个 JSON 是其它语言生成的,在 Delphi 程序里面,如果能把它变成对象,后继的代码就会更简单。
2024-07-21 03:16:42 499
原创 使用Delphi做蓝牙BLE开发的一个问题
Delphi 的 BLE 开发,拖一个 TBlueToothLe 到界面上,使用这个控件,就可以进行 BLE 的开发,比如去连接一个蓝牙手环。Delphi 自带的 Demo 里面,有一个 BLEScanner 程序,可以作为开发的起点。
2024-07-09 02:01:17 846
原创 Windows Server 远程桌面显示登录界面而不是直接登录进入的问题
通常情况下是在远程桌面客户端里面输入用户名和密码,点【连接】按钮,就直接登录进入远程桌面了。但是,有时候,不能直接进入,而是远程服务器的登录界面出现了,然后我们要做登录界面里面输入用户名和密码。如何把这种状态,改为直接在远程桌面客户端里面输入用户名和密码就能登录的状态?
2024-06-18 19:05:54 2023
原创 基于 Delphi 的前后端分离:之五,使用 HTMX 让页面元素组件化之面向对象的Delphi代码封装
用 Delphi 的类封装前端图表组件
2024-06-15 17:01:32 1015
原创 基于 Delphi 的前后端分离:之四,使用 HTMX 让页面元素组件化
对于 HTML5 的页面,使用 HTMX 就可以很容易把各路开源的页面代码,组件化,实现模块化开发,简化代码,方便维护。
2024-06-15 02:41:51 1175
原创 Windows OpenVPN的安装之服务器自动启动连接
1. 概念:OpenVPN 安装了一个服务叫做 OpenVPNService,可以在 Windows 系统的服务里面看到;这个服务需要的配置文件放在 config-auto 目录下;配置文件的名称可以是任意文件名,后缀是 .ovpn 就说明它是 OpenVPN 的配置文件。2. 如果上述两个条件(1. 服务自动运行;2. 配置文件在正确目录下),仍然不行,应该去看 log 目录底下的 log 文件,看看问题在哪里。
2024-06-14 00:37:08 2564
原创 基于 RTTI 的 TFrame 的创建和管理
1. 通过上述方式,可以简化大型应用程序的代码,减少出错机会。2. 其实用不着 RTTI,虽然我的代码里面使用了 RTTI。
2024-05-14 10:05:25 919
原创 一个基于 VCL 的模仿安卓 Toast 的提示消息控件
在别人已经实现的代码基础上,做一些简单的修改,来来回回也花了不少时间。中间还有一个版本有严重的 BUG。写好代码不容易,人都会犯错,人写的程序没有 BUG 才是奇怪。
2024-05-13 02:00:59 372
原创 Delphi 多线程的阻塞和线程之间的同步
1. TEvent 声明在:System.SyncObjs;2. 多个不同的线程可以有多个不同的 TEvent 的实例来进行各自的阻塞;3. TEvent.SetEvent 解除阻塞后,必须执行一次 TEvent.ResetEvent;否则就再也阻塞不住了;4. ResetEvent 由任何一个线程来执行都可以;5. 如果 TEvent 是超时导致的阻塞解除,不需要做 ResetEvent;
2024-03-28 00:50:34 484
原创 用 Delphi 做 FTP 服务器以及如何配置防火墙
使用 Delphi 的 TIdFTPServer 这个控件,做一个 FTP 服务器很简单。可以直接拿官方提供的 FTP Server 的那个 Demo 程序来修改。
2024-03-19 15:30:02 667
原创 Delphi v11 安卓权限申请
上述代码中,DoGotPermissions 方法,用于调用这个模块的地方,当用户在申请权限的界面上通过了权限申请后,要执行的代码,通过这个事件方法调用。同样,上面这个函数里面的 TArray<string> 更改为:TClassicStringDynArray;我把代码封装到一个单独的 DataModule 里面了。这样方便在不同的项目里重复使用。Delphi 10.4 的安卓权限申请代码,在 Delphi 11 下面编译无法通过。原因是里面有几个变量类型的定义有所不同。
2024-02-19 23:54:41 672
原创 Python4Delphi: Delphi 程序使用 Python 抓取网页
在 Delphi 里面通过使用 Python4Delphi 控件,可以在 Delphi 程序里面调用 Python 的代码去执行 HTTP 访问。
2024-02-15 22:51:05 734
原创 Python4Delphi: 使用Delphi代码调用Python代码里面的类
1. 首先调用 PythonEngine1.ExecStrings 加载运行有这个 Python 类的 Python 代码;2. 使用 MainModule.类名() 的方式,直接就创建了 Python 类。在 Delphi 里面,Python 类创建的对象保存到一个 Variant 变量里面。3. 有了对象,就可以用【对象.方法()】的方式调用这个对象的方法了。这里需要注意,方法有没有参数都要加上括号。
2024-02-08 01:03:34 786
原创 Delphi 程序直接调用 Python 的函数
在这篇文章里面,我提到,一个 Python 的函数,我用 Delphi 无法直接调用它,所以我对它做了一个 Python 的包装。原因是,那是我第一次学习使用 Python4Delphi 这个控件。那时候要执行 Python 代码,我只会使用 PythonEngine1.ExecStrings(Python代码) 这样的方式。这样做,就是在 Delphi 的程序里面,加载了 Python 的环境,并在这个环境里面去执行了代码里面的可执行的部分。
2024-02-06 23:59:07 1415 3
原创 用 Delphi 程序调用 Python 代码画曲线图 -- 数据来自 Delphi 程序
接本博客上一篇文章,使用 Python 的 matplotlib 库画曲线。上次是为了实现调用该库,数据是直接写死在 Python 代码里面的。既然是 Delphi 调用 Python 的库,数据应该是 Delphi 的程序传递给 Python 的代码,然后 Python 的代码利用 Python 库把图画出来。比如,数据可能来自数据库。做数据库编程,Delphi 非常擅长啊。上述 Python 代码,是把很多数字,给了一个数组类型的变量。
2024-02-06 01:21:22 533
原创 用 Delphi 程序调用 Python 代码画曲线图
因为同样的代码在 PyScripter 里面能够正常运行,所以我首先怀疑 PyScripter 运行的 Python 环境和我的 Delphi 的程序运行的 Python 环境不一致。把以上代码,放进 PyScripter 这个 Python 的开发工具 IDE 里面,点三角形小箭头图标(Run 按钮),或者按 F9 (Run 快捷键),代码运行起来,弹出一个窗口,里面是曲线。实际上,我搞了几个小时。因为,按照上面的步骤搞完,我点击 Button1,运行 Python 程序,出现异常错误。
2024-02-05 19:32:43 1092
原创 Python4Delphi 之用 Delphi 写 Python 模块
在 Delphi 程序和 Python 程序的交互,可以用 Delphi 实现一个 Python 模块,用 Delphi 实现这个模块的函数,然后在 Python 里面的代码来调用。实现这个功能的简单架构:1. PythonModule1 用来代表一个可以给 Python 调用的模块。2. Delphi 实现的函数,通过的方式成为 Python 的模块的函数。3. 被 Delphi 的 PythonEngine1 执行的 Python 代码,可以import这个模块并执行里面的函数。
2024-02-05 00:12:24 1602
原创 Delphi 程序员初学 Python 笔记
一直想学 Python 但一直没真正去摸索。入门书倒是买了几本也大概看了一下。但不真正动手写点程序,是没法入门的。作为熟悉 Delphi 编程的人,当然想在 Delphi 的程序里面调用 Python 的一大堆库的功能,比如现如今火爆的 AI 库。首先,学习 Python 需要一个编程工具,可能一般人用文本编辑器或者用 VSCode 的比较多。但作为熟悉 Delphi 的人,发现有一个开源工具 PythonScripter 非常好用。
2024-01-31 03:03:12 1170 4
原创 Delphi 的 DataSetProvider.Options 里面的 poCascadeUpdates 修改嵌套表的主键
假设主表和从表的非主键字段的值在客户端同时被修改,提交后,会在服务器端的 DataSetProvider1.BeforeUpdateRecord 触发事件。可以在事件里面判断当前触发的是主表还是从表。因为程序员知道每个表的字段名称,因此可以针对当前触发事件的表的记录的每个字段,进行权限控制,或者值的修改,等等。也就是业务逻辑控制在服务器端,安全性更高。
2023-10-12 23:12:18 330
原创 把 TObjectList 序列化为 JSON
以前测试过使用 TJson.ObjectToJsonString 和 TJson.JsonToObject,发现好像有 BUG,不稳定。
2023-08-10 13:27:21 526
原创 Delphi FastReport 的一点小功能总结
FastReport 是一套功能非常强大的报表控件,在 Delphi 的 IDE 里面,可以直接可视化设计报表页面;在运行期允许用户预览报表后再决定是否打印。还可以将报表内容输出为 JPG 图片或者 PDF 格式的文件,非常好用。
2023-03-24 06:59:24 1790
原创 把多层次的 XML 文档解析为 TreeView 显示
肉眼阅读 XML 比较累,需要去对付一堆的尖括号。用 Delphi 程序把它显示为一个 TreeView 的树结构,比较容易用眼睛去看。XML 文档是一个有多层树形节点的文档。因为节点数不确定,所以要跟踪每个节点,需要用到递归。以下是我的代码,基于 Delphi 10.4 没使用第三方控件。
2023-02-22 16:13:00 535
Delphi ACM Component,ACM 控件用于声音采集和播放,含全部源代码和使用例子
2023-03-24
Delphi FireMonkey TListView 做手机APP的主从列表的 Demo 源代码
2022-09-20
本人原创 Delphi 版本的 HTML 编辑器源代码
2022-03-30
发光按钮-基于Delphi FireMonkey的例子代码
2020-04-06
MVVM_LiveBinding.7z
2020-02-13
文本差异检查及显示的源码
2018-10-13
Delphi APP 使用 iOS 的 BackgroundFetch 的例子源代码
2017-10-10
Win7 远程桌面多用户补丁
2017-10-08
本人原创源代码:Delphi APP 内置 WebBroker 让界面显示HTML5
2017-09-30
本人原创:基于Delphi WebBroker 的 CMS源代码
2017-09-18
Delphi WebBroker 网页上传文件的 Demo 源码
2017-05-02
WebBroker StandAlone 模式当 Web Server 用的源代码 by pcplayer
2017-04-05
Delphi LiveBinding对象及对象序列化为JSON的例子
2016-11-24
Delphi 在 DBGrid 里面显示分组统计的源代码
2016-11-03
Indy10 WEB Server Demo代码
2014-07-15
HotLog 源代码
2013-06-18
网络连接状态查看工具
2013-06-18
Dspack for XE3
2013-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人