
Delphi随想
文章平均质量分 77
主要记录平时遇到的Delphi碎片技术, 并以博客文章的形式发表并分享.
我不是代码教父
编程25余年,回归本质''数学''.擅长: C/C++/C#/R/ASM/Delphi/算法/股票量化/Win系统内核 QQ:643439947
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[原创](现代Delphi 12指南):[Windows App开发]: 如何接收C/C++传入的内存数据指针?
在现代Windows应用程序开发中, Delphi作为一种强大的开发语言, 经常需要与其他语言(如C/C++)进行互操作, 尤其是在处理内存数据时. C/C++程序通常会通过指针传递数据, 而Delphi需要正确接收并处理这些内存数据指针, 以实现跨语言的高效协作.原创 2025-06-24 13:40:33 · 571 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: SameText, SameStr, 比较字符串更简单
在现代软件开发中, 字符串比较是一项基础且频繁使用的操作. 无论是验证用户输入、处理数据一致性, 还是实现搜索功能, 都需要高效、可靠的工具来完成字符串的比较任务. Delphi 12作为一款强大的跨平台开发工具, 提供了SameText和SameStr两个函数, 让字符串比较变得更加简单和直观. 特别是在macOS 64位应用开发中, 这两个函数不仅提升了代码的可读性, 还能很好地适配跨平台需求.原创 2025-06-11 11:29:14 · 685 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: TTask创建多线程, 更简单, 更快捷.
在macOS 64bit应用程序开发中, 面对复杂的数据处理或长时间运行的任务, 单线程往往会导致界面卡顿, 降低用户满意度. Delphi 12作为一款功能强大的跨平台开发工具, 提供了TTask类, 极大地简化了多线程的创建和管理过程. 通过TTask, 无需深入处理线程同步或资源管理的底层细节, 即可快速实现高效的多线程功能.原创 2025-06-05 15:22:11 · 1117 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 按钮大小设置的小技巧
[企鹅交流: 643439947 个人网站: 80x86汇编小站] 在现代Delphi 12开发环境中, 针对macOS 64位应用程序的开发, 界面设计是一个关键环节. 按钮作为用户交互的核心控件, 其布局和大小的设置直接影响应用程序的视觉效果和用户体验. 当按钮被放置在面板(Tpanel)内并应用了对齐属性时, 常常会发现, 直接调整按钮的尺寸变得困难. 下面将介绍一个小技巧, 可在保持对齐属性的同时, 灵活调整按钮的大小, 从而优化macOS应用程序的界面设计.原创 2025-05-28 11:21:34 · 844 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取目标App的程序图标?
在macOS平台上进行应用程序开发时, 常常需要与系统的资源和属性进行交互, 以实现特定的功能需求. 其中, 获取目标应用程序的图标是一项常见任务, 尤其在开发应用管理器、启动器或需要展示其他应用程序图标的工具时, 这一需求尤为突出. 借助Delphi 12强大的跨平台开发能力, 可以通过调用macOS的原生API, 轻松获取目标应用程序的图标文件路径.原创 2025-05-22 10:23:46 · 1330 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取目录大小?
在现代软件开发中, 特别是在macOS平台上, 获取目录大小是一项常见且重要的任务. 无论是为了优化用户体验(如在文件管理应用中显示目录占用空间), 还是为了系统资源的管理(如监控磁盘使用情况), 高效计算目录大小都显得尤为关键. Delphi 12作为一款强大的跨平台开发工具, 为macOS 64位应用程序提供了丰富的API支持, 使得能够轻松实现这一功能.原创 2025-05-20 13:15:50 · 625 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 注意“回车换行“的跨平台使用.
在跨平台开发中, 尤其是在Windows和macOS之间切换时, 处理文本文件是一个需要特别注意的环节. 其中, "回车换行"的差异是一个常见的挑战. Windows系统使用"\r\n"(回车+换行)作为换行符, 而macOS(以及其他POSIX兼容系统)则使用"\n"(换行). 这种差异可能导致文本文件在不同平台上出现格式混乱、显示异常, 甚至影响程序的正常运行原创 2025-05-15 16:35:19 · 698 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 获取macOS App的Bundle路径信息.
在macOS应用程序开发中, Bundle(应用程序包)是应用程序的核心结构, 它封装了可执行文件、资源文件、框架以及其他支持文件. 获取Bundle的路径信息是一项基础且重要的技能. 例如, 在需要加载应用程序内的图像资源、访问插件目录或调试可执行文件时, 准确的路径信息不可或缺. Delphi 12作为一款强大的跨平台开发工具, 结合FireMonkey框架和macOS原生API, 为开发者提供了便捷的方式来处理这些需求.原创 2025-05-14 09:17:13 · 1116 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取当前用户主目录(即:~波浪符号目录)?
在macOS系统中, 用户主目录是一个核心概念, 通常由波浪符号"~"表示, 指向当前登录用户的主文件夹, 如"/Users/用户名". 这个目录下存储着用户的个人文件、偏好设置以及其他关键数据. 在使用Delphi 12开发macOS 64位应用程序时, 获取用户主目录路径是一个常见需求, 例如读取或保存文件到用户的桌面、文档文件夹等位置.原创 2025-05-12 13:13:02 · 513 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取自身程序的所在的目录?
在使用现代Delphi 12进行macOS 64bit应用开发时, 经常需要获取当前运行程序所在的目录, 用于读取或保存与应用程序捆绑在一起的资源文件、配置文件或动态库等. macOS上的应用通常以.app包的形式存在, 包内部有一个Contents目录, 里面包含可执行文件和资源文件. 因此, 如何在Delphi代码中定位并获取这些路径, 是编写跨平台应用时的一个关键步骤.原创 2025-05-08 10:38:21 · 571 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何自动打开“安全性与隐私“控制面板?
在macOS系统中, Apple对用户隐私和数据安全的保护非常严格. 为了访问受保护的磁盘区域(如下载文件夹、文档文件夹等), 应用必须获得用户的明确授权, 即Full Disk Access权限. 如果应用未获得此权限, 直接尝试访问这些区域会导致操作失败, 且用户不会收到任何提示, 这可能会让用户感到困惑, 影响使用体验. 为了解决这个问题, 需要在应用中提供一种友好机制, 引导用户手动开启Full Disk Access权限. 在macOS中, 可以通过打开"安全性与隐私"控制面板的特定页面实现.原创 2025-05-06 19:16:01 · 1080 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: [1]如何加载动态链接库, 并无缝支持原生底层开发?
对于macOS平台来说, 动态链接库以.dylib文件形式存在, 广泛用于实现模块化设计和代码复用. 可以通过动态加载这些库, 在运行时调用其中的函数, 而无需将所有代码静态链接到应用程序中. Delphi 12作为一款强大的跨平台开发工具, 支持macOS 64位应用程序的开发. 它提供了与操作系统底层交互的能力, 可以轻松加载和使用macOS的动态链接库, 进而实现对原生功能的调用.原创 2025-05-04 17:28:38 · 1268 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: [2]如何使用跨平台消息框?
在现代软件开发中, Delphi 12作为一款功能强大的开发工具, 提供了卓越的跨平台支持, 涵盖Windows、macOS、iOS 和 Android等多个平台, 其中包括macOS 64bit应用程序的开发. 在应用程序与用户交互的过程中, 消息框是一种常见且高效的方式, 用于向用户传递信息、提示警告或获取用户确认. 利用FireMonkey (FMX)框架实现跨平台消息框.原创 2025-05-02 09:16:00 · 1274 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: [1]如何使用原生NSAlert消息框 (runModal模式)
在使用现代 Delphi 12开发macOS 64bit应用时, 经常需要向用户展示信息、确认对话或警告提示. 虽然FireMonkey自带的对话框在跨平台场景下已能满足大部分需求, 但当追求与系统一致的原生体验时, 借助macOS原生的Cocoa框架就显得尤为重要. NSAlert是Cocoa中用于显示模态对话框的类, 其外观和行为都与系统其他应用保持一致. 借助Delphi提供的 Objective-C桥接能力, 可以直接创建并调用NSAlert, 实现与macOS原生消息框无缝集成.原创 2025-04-30 17:29:39 · 1243 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 跨平台开发同样支持retain()引用计数器处理.
在现代软件开发领域, 跨平台开发已成为不可忽视的趋势. 无论是桌面应用、移动应用还是嵌入式系统, 开发者都希望通过一套代码实现多平台的兼容性, 从而提升开发效率并降低维护成本. Delphi 12作为一款历史悠久且功能强大的开发工具, 凭借其对跨平台开发的全面支持, 成为了首选. 特别是在macOS 64位应用开发中, Delphi 12提供了与苹果Core Foundation框架的无缝集成, 使得开发者能够充分利用macOS原生特性.原创 2025-04-28 15:55:37 · 970 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: NSString类型与CFStringRef类型字符串相互转换.
Foundation框架中的NSString是一个功能强大的字符串类, 而Core Foundation框架中的CFStringRef则是一个轻量级的字符串类型. 由于两者的设计背景和使用场景不同, 开发者常常需要在它们之间进行转换. 幸运的是, Apple提供的Toll-Free Bridge机制使得这种转换原创 2025-04-27 14:12:58 · 877 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用CFStringRef类型字符串?
对于使用Delphi 12进行macOS 64位应用程序开发来说, 掌握Core Foundation框架中的CFStringRef类型尤为重要. CFStringRef是macOS和iOS系统中用于处理Unicode字符串的核心数据类型, 它不仅提供了高效的字符串管理机制, 还与Objective-C中的NSString类有着紧密的联系. 通过合理使用CFStringRef, 开发者可以在macOS平台上实现与系统API的无缝对接, 例如显示用户通知对话框或调用其他需要字符串参数的功能.原创 2025-04-25 22:53:14 · 1124 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用NSString类型字符串?
在现代Delphi 12中开发macOS 64位应用程序时, 常常需要与macOS的原生API进行交互, 而这些API通常基于Objective-C实现. 作为Objective-C中最常用的字符串类型, NSString在处理macOS平台特定的字符串操作时扮演着重要角色. 然而, 由于Delphi有自己的字符串类型和跨平台特性, 如何在Delphi环境中高效、安全地使用NSString成为一个值得探讨的话题.原创 2025-04-24 13:39:11 · 965 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]:在Mac App Store外创建、部署与公证
使用现代Delphi 12在macOS 64位平台上开发、部署并公证应用程序,特别针对不在Mac App Store分发的应用场景. 那么该如何准备必要的开发者凭证、配置项目选项以及完成应用程序公证的全过程, 从而确保macOS App在macOS系统上能够安全运行并顺利分发给用户?原创 2025-04-22 11:30:21 · 1305 阅读 · 0 评论 -
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 设置、运行和调试你的第一个macOS应用程序.
随着技术的快速进步, 跨平台开发在现代软件开发中占据了越来越重要的地位. 作为一款功能强大的开发工具, Delphi不仅支持传统的Windows平台, 还扩展到了macOS、iOS和Android等多个操作系统, 提供了更大的灵活性和市场覆盖能力.原创 2025-04-11 14:34:10 · 1077 阅读 · 0 评论 -
[原创]利用TStreamReader和TStreamWriter对文件进行读写操作
在DELPHI编程中, TStreamReader和TStreamWriter是非常实用的类, 它们提供了读取和写入流数据的功能. 本文将简要介绍这两个类的使用方法, 并通过具体的代码示例来展示如何使用它们从文件中读取数据以及向文件写入新内容.原创 2025-01-11 11:02:24 · 559 阅读 · 0 评论 -
[原创]在Delphi高效率的使用函数指针, TProc和TFunc类型.
由于最近又开始做一些代码转换, C++转换到Delphi, 这里涉及到函数指针的利用. 那么在最新的Delphi中, 针对函数指针, 提供了使用更方便的: TProc和TFunc类型.原创 2024-10-18 10:24:50 · 612 阅读 · 0 评论 -
[原创]全新安装最新版Delphi 12.2之前, 如何正确卸载旧版Delphi 12.1?
在安装 RAD Studio 12.2 版本之前, 为了确保顺利升级和避免潜在冲突, 需要手动清理旧版本的残留文件和注册表项. 经过以上清理步骤, 你绝对可以完全正确安装到最新版的Delphi 12.2了.原创 2024-09-14 16:04:08 · 2110 阅读 · 0 评论 -
[原创][Delphi多线程]使用TMonitor, TEvent和TQueue配合实现TThreadQueue的经典使用案例.
本次内容主要是学习TMonitor, TEvent和TQueue配合实现TThreadQueue的经典使用案例. 本次代码的同步等待机制是使用TEvent的WaitFor(), SetEvent()和ResetEvent()方法.原创 2024-06-11 10:58:39 · 681 阅读 · 0 评论 -
[原创][Delphi多线程]使用TMonitor和TQueue配合实现TThreadedQueue的经典使用案例.
本次内容主要是学习TMonitor的同步机制, TMonitor是非常强大的, 因为它内置了同步等待(Wait)和唤醒(Pulse)的机制, 使用起来真的是非常灵活.原创 2024-06-07 14:23:20 · 639 阅读 · 0 评论 -
[原创][Delphi多线程]TThreadedQueue的经典使用案例.
主要是记录TThreadedQueue的经典使用方式.原创 2024-06-03 18:32:50 · 944 阅读 · 1 评论 -
[原创]Delphi的SizeOf(), Length(), 动态数组, 静态数组的关系.
从Delphi XE时代开始, 编译器就默认使用宽字节模式编译了. Char默认转换为WChar, 然后一切API函数默认使用W模式. 这是非常好的开端. 但是也造成在代码迁移的过程中, 会出现非常隐蔽的BUG.原创 2023-12-01 21:56:10 · 1172 阅读 · 0 评论 -
自主开发Delphi控件[1]: THSImageExButton图片按钮,3状态控制
1>需求: 图片按钮2>功能: 鼠标移入切换图片1 鼠标移出切换图片2 鼠标按下切换图片3 并锁定当前图片状态。不在支持鼠标移入移出状态开发1> 运行Delphi7->New->Component2> New Component 对话框上 的Anscetor Type 选择 Timage [ExtCtr原创 2010-01-28 21:51:00 · 4703 阅读 · 5 评论 -
Delphi7 的FastMM配置步骤
1> FastMM是开源项目, 从 http://sourceforge.net/projects/fastmm 下载最新版2> 文件夹Replacement BorlndMM DLL/Precompiled/for Delphi IDE/Performance/BorlndMM.dll,替换掉Delphi/Bin下的相应文件就可以完成对IDE的提速3> Enviromen原创 2010-03-20 15:55:00 · 5765 阅读 · 0 评论 -
Delphi代码片段:JVCL的TJvGIFAnimator控件和TMS的TGDIPPictureContainer控件图片流处理
最近在熟悉一下TMS控件包的ImagelistBox的使用方式,为了追求高效率和扩展性,使用了TMS自带的TGDIPPictureContainer图片资源管理控件.原创 2010-12-01 14:25:00 · 2708 阅读 · 0 评论 -
Delphi代码片段:打开注册表编辑器并自动定位
以前用别人的系统维护工具的时候,都有这样一个功能:软件界面双击一项注册表信息,那么该软件就会打开注册表编辑器并自动定位到对应位置,方便用户浏览.这段时间我在开发一个工具的时候,就用到这种技术.原创 2010-11-20 21:09:00 · 2679 阅读 · 2 评论 -
[delphi]利用TidHTTP控件向目标PHP网页POST参数
最近在做一个功能(delphi),需要向163邮箱发送EMAIL,本想偷懒利用现成的Indy的smtp控件发送,结果发现163邮箱已对这类发送方式纳入垃圾邮件了......原创 2011-07-03 23:32:30 · 14906 阅读 · 6 评论 -
HTTPS的POST登录数据包方式
[作者]网名:猪头三网站:http://www.x86asm.com[序言]一次偶然的机会,有人让我分析扫号器的原理。其实扫号器不是什么高深东西,说白了就是帐号验证合法性。为什么说是“扫“,因为有几千个帐号要验证,所以要批处理一下.[原理分析]要验证一个帐号是否合法,那么用登录方式来验证就OK了.如果能登录成功就表示帐号合法,失败就表示无效帐号.[技术分析]原创 2011-11-26 14:24:20 · 9590 阅读 · 4 评论 -
[赚外快]警惕Delphi的VCL组件多线程访问的不安全性
[作者]网名: 猪头三站点: http://www.x86asm.comEmail: [email protected]: 643439947编程生涯: 2001~至今[11年]职业生涯: 9年职业岗位: 通用软件架构师 通用软件技术总监 通用软件研发工程师开发语言: C/C++; x86asm; Object Pascal; C#;开发工具: VC+原创 2012-08-06 14:20:33 · 6807 阅读 · 10 评论 -
Delphi GDI+入门级学习资料
1>下载最新版的GDI+ ,当前版本是1.2版。下载地址[Delphi2009以上]:http://www.bilsen.com/gdiplus/GdiPlus1.2.zip下载地址[Delphi7以下]:http://codebot.org/gdiplus/2>入门级学习资料:http://tech.ddvip.com/2009-12/12606824431409原创 2010-01-16 22:42:00 · 3584 阅读 · 0 评论