- 博客(16)
- 收藏
- 关注
原创 CnPack IDE专家包发布1.8.1正式版!
2026年9月25日,CnPackIDE专家包发布1.8.1正式版,全面支持RADStudio 13.2。新版本新增C/C++代码格式化、SVG图标支持、书签跳转、文件编码转换等功能,优化汉化界面并改进版本号进位逻辑。
2026-09-25 21:42:30
419
原创 我们是如何将Delphi的界面菜单翻译为中文的?
摘要:网友robinttt开发了Delphi IDE菜单翻译插件并开源,针对Delphi13等高版本。经授权后移植到支持低版本Delphi的CnPackIDE专家包中。实现过程中遇到两大难题:一是无名称菜单项的翻译处理,采用配置英文规则匹配方式;二是动态创建菜单的翻译时机问题,通过多种机制适配不同版本和场景。最终通过拦截消息、挂接Popup方法等技术手段,实现了对主菜单、各类弹出菜单及FMX设计器菜单的全面翻译支持。最新版本已集成该功能,欢迎测试反馈。
2026-03-15 00:56:49
450
原创 CnPack开发组2025年工作总结
2025年CnPack开发组取得多项进展:1)IDE专家包完成64位移植,支持RADStudio13新接口;2)启动Lazarus移植工作;3)CnVcl历法库优化公农历转换算法;4)密码库新增抗量子算法MLKEM/MLDSA支持,独立cncrypto库参赛Gitee开源大赛。2026年计划持续完善IDE支持、扩展组件功能、加强团队建设。项目源码在GitHub/Gitee同步维护,欢迎通过官网、论坛、社群参与支持或捐助。
2025-12-29 15:46:53
509
原创 Delphi也能解释执行吗?(下)
再加上已经注册了TApplication对象的各种属性如Title方法,那么本文系列第一篇中给Application.Title赋值的脚本,便能跑得通、便能正确地给集成了脚本引擎的EXE程序里的Application全局变量的Title属性赋值了。全局变量和属性、事件等则更有不同,它们在编译期注册的语法看上去还基本正常,比如TSizeConstraints类的MaxHeight属性也这样写:。这个TObject_C是我们新声明的类,它有个ClassName_P方法:。
2025-03-24 10:14:34
809
原创 CnPack进入EMB的官方宣传视频
去年4月10日前后,Embarcadero在油管上发布关于RAD Studio的宣传视频,专家Ian Barker在片尾提了几个 IDE Add-ins,其中有我们CnPack IDE 专家包(52分10秒左右第一个出场)
2025-03-06 15:19:57
210
原创 Delphi下如何实现32位和64位都能用的Inline Hook
Hook在计算机术语中无论是直译为“钩子”,还是意译为“挂接”,均指的是一种对于现有机制的拦截。这个拦截实现后,会在运行期拦住现有某个流程,拐进自己的流程,自己做完特定事儿后,再按需要决定是否走回原流程。
2025-02-26 12:38:53
1125
原创 使用反射技术在Android平台上实现本进程内Activity切换时的拦截
有需求需要统计本应用内各Activity切换的次数与频度等,由于zhi
2014-05-26 23:08:09
2318
原创 Android下通过root实现对system_server中binder的ioctl调用拦截
Android下通过root实现对system_server中binder的ioctl调用拦截作者:passion2012-10-17关键字:Android, Hook, API, Binder, 注入, 拦截(转载请注明出处)〇、引言 Linux下的远程注入与HOOK网上已有不少文章与代码实现,而对于Android平台,注入有不少,但HOOK却不多。经过了两
2012-10-18 13:44:13
4760
1
原创 补充一下后来想出的半截子绕过前一篇提到的问题的办法
============ 补充一下后来想出的半截子绕过前一篇提到的问题的办法:这个问题在TCustomForm的CreateParams被调用时,如果当前Application的ActiveForm的Handle存在,并且这个Handle拿来GetWindowLong一下其GWL_EXSTYLE时具有WS_EX_TOOLWINDOW风格的话,即会产生这个死循环。在自己的窗体创建并显示的情况下,如要
2008-11-07 22:45:00
849
原创 发现 Delphi 2009 VCL 源码中一处可能导致死循环的 Bug
Delphi 2009/2007 的 source/Win32/vcl/Forms.pas 中,GetNonToolWindowPopupParent 函数实现部分:function GetNonToolWindowPopupParent(WndParent: HWND): HWND;begin Result := GetParent(WndParent); while (Result
2008-11-06 19:23:00
833
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅