- 博客(96)
- 资源 (14)
- 收藏
- 关注
原创 Win11更新后Edge卡顿掉帧?隐私窗口流畅解决办法
Win11更新后Edge浏览器卡顿,仅普通窗口受影响,隐私模式流畅,根源为迅雷下载支持扩展兼容性问题。该扩展更新后高频占用主线程,导致渲染卡顿。解决方法:卸载扩展(首选),或将其权限改为“单击时”访问,或关闭迅雷客户端的资源嗅探功能,可彻底消除卡顿。
2026-09-18 13:42:40
165
原创 Delphi 动态数组深拷贝的隐蔽陷阱:当 SetLength 没有真正分配新内存
某Delphi项目因Move+SetLength组合误用导致内存崩溃:Move造成动态数组浅拷贝,共享堆内存;后续SetLength在引用计数为1且长度不变时无操作,未触发深拷贝。清理时释放源数组,目标指针悬空,调用Length()返回随机大值致崩溃。删掉清理代码“修复”实为掩盖泄漏。正确做法是SetLength前强制置空指针(Pointer(arr):=nil),确保新分配。教训:勿依赖SetLength自动深拷贝,需主动解除共享。
2026-09-17 16:36:49
327
原创 基于 Free Pascal 从零编写裸机操作系统(一)
本文介绍了一个使用FreePascal开发的32位保护模式最小操作系统内核,完全独立运行,不依赖任何操作系统标准库。主要内容包括:1. 汇编入口文件处理Multiboot引导规范和栈初始化;2. VGA文本控制台驱动的实现;3. Multiboot硬件信息结构体定义;4. 内核主程序整合各模块,完成系统初始化和信息显示。该内核通过GRUB引导,直接操作硬件资源,展示了Pascal语言开发裸机系统的可行性,为后续功能扩展提供了基础框架。
2026-07-31 21:20:10
364
原创 电脑关不了机,每次都只能长按电源键才能关机
摘要:以管理员身份运行CMD,输入shutdown /s /f /t 0命令可强制立即关机。若成功关机(屏幕关闭、风扇停止),说明系统内核关机流程正常,问题可能出在桌面或某个进程卡死;若该命令仍无法关机,则需进一步排查更深层次的系统问题。该方法能快速区分系统关机的故障层级。
2026-07-11 12:12:30
244
原创 Delphi经典8大天坑|第八篇:TBitmap跨线程使用,导致GDI泄漏/崩溃/画面花掉
在多线程程序中,用TBitmap进行绘图、图片处理(如在子线程中绘制图像、修改Bitmap像素),程序运行一段时间后,出现画面花掉、控件闪烁、GDI对象泄漏(任务管理器中GDI对象数持续增加),甚至崩溃报错,且问题在高并发、长时间运行后更明显。核心原则:GDI对象(TBitmap)**线程隔离+同步**,子线程使用自己创建的GDI对象,避免直接操作主线程的GDI对象;1. 子线程使用GDI对象(TBitmap、TCanvas等),必须自己创建、自己释放,不引用主线程的GDI对象;// 同步到主线程显示。
2026-04-05 10:15:00
340
原创 Delphi经典8大天坑|第七篇:构造函数未写inherited,导致对象结构损坏(诡异AV/异常)
自定义类继承自Delphi内置类(如TObject、TComponent、TForm),重写构造函数Create时,未写inherited语句,导致对象创建后,出现各种诡异问题:控件无法显示、属性赋值无效、调用方法触发AV崩溃、对象释放时报错等,且问题难以定位。典型场景:自定义控件继承自TGraphicControl,构造函数未写inherited,导致控件无法绘制、属性无法生效。核心:子类构造函数的第一行,必须调用inherited(可带参数,也可不带),确保父类初始化完成后,再执行子类的逻辑。
2026-04-04 10:15:00
322
原创 Delphi经典8大天坑|第六篇:方法参数缺省值写在实现区,导致缺省值不生效
给方法(过程/函数)定义参数缺省值(默认值)后,调用方法时不传递该参数,期望使用缺省值,但实际运行时,缺省值不生效,参数呈现随机值或错误值,排查时误以为是“缺省值语法写错了”。Delphi的语法规则明确:方法的参数缺省值,**必须定义在interface区(接口区)**,implementation区(实现区)的缺省值定义无效。核心:将参数缺省值写在interface区的方法声明中,implementation区只写方法实现,不重复定义缺省值(重复定义也无效)。// 实现区不重复写缺省值,只写方法逻辑。
2026-04-03 10:00:00
344
原创 Delphi经典8大天坑|第五篇:ShortString与String混用,导致字符串截断/乱码
摘要:Delphi开发中混用ShortString和string类型会导致字符串截断或乱码问题。ShortString最大255字符,超长部分会被自动截断且无提示;而string类型无长度限制。问题根源在于两者混用时类型转换不兼容。解决方案包括:1)新项目统一使用string类型;2)必须使用ShortString时需提前判断长度,避免截断;3)旧代码逐步替换ShortString为string。典型错误是将长string赋值给ShortString导致截断,正确做法是统一使用string类型或在赋值前检查
2026-04-02 10:00:00
714
原创 Delphi经典8大天坑|第四篇:动态数组未初始化,导致内容乱码/随机值
Delphi动态数组使用SetLength分配后不会自动初始化,导致元素出现随机值。原因是动态数组只分配内存空间,不初始化默认值,残留内存垃圾数据。正确做法是:分配长度后立即用FillChar或ZeroMemory初始化(数值类型用FillChar(Arr[0],SizeOf(Arr),0),字符串类型可遍历赋空值)。静态数组会自动初始化,但动态数组必须手动处理,这是常见混淆点。关键技巧:每次SetLength后必须初始化,FillChar参数为首元素地址、数组总大小和初始化值0。
2026-04-01 10:00:00
192
原创 Delphi经典8大天坑|第三篇:string转PChar后,原字符串释放导致野指针(乱码/崩溃)
当我们用PChar(Str)将string转为PChar时,得到的指针是“临时指向string的内存地址”,而非复制一份字符串内容;将string类型转换为PChar(字符指针)后,偶尔出现乱码、偶尔触发崩溃,且问题不稳定——有时候正常,有时候异常,排查时难以复现,极易误以为是“内存溢出”或“编码问题”。核心原则:确保PChar指向的string在PChar使用期间“不被释放、不被修改”,最稳妥的方式是用一个局部string变量保存原字符串,再将该变量转为PChar。// 将S复制到P指向的内存。
2026-03-31 10:00:00
373
原创 DelphiSpeedUp 介绍
DelphiSpeedUp V2.8是一款深度优化Delphi IDE性能的工具,通过三重技术方案解决开发中的性能瓶颈:1)重构I/O系统,采用内存映射文件和预读缓冲优化文件访问;2)重写RTL关键函数,利用SSE2指令和汇编优化核心算法;3)实施CPU寄存器级优化,包括强制寄存器绑定和新型CPU指令集利用。该工具还改进了消息调度和符号索引机制,兼容Delphi 10.2至11.3版本,通过非侵入式DLL注入实现动态优化,提供模块化配置选项。作为Pascal生态中罕见的底层优化方案,它既是效率工具,也是研究
2026-03-30 14:38:43
212
原创 Delphi经典8大天坑 第二篇:对象Free后未置nil,Assigned判断“误判”导致AV
摘要:Delphi中直接调用Free方法释放对象后,指针不会自动置nil,导致Assigned函数误判野指针为有效对象,后续调用可能引发AV错误。正确做法是使用FreeAndNil函数,它会在释放内存后自动置nil指针,避免野指针问题。典型场景如窗体关闭时释放对象,若仅用Free会导致后续代码误判对象存在而崩溃。建议始终优先使用FreeAndNil,或在调用Free后手动置nil指针,这是Delphi对象释放的最佳实践。
2026-03-30 14:24:09
407
原创 E2202 Required package ‘%s‘ not found (Delphi)
Go Up to Error and Warning Messages (Delphi)The package, which is referenced in the message, appears on the package list, either explicitly or through a requires clause of another unit appearing on the package list, but cannot be found by the compiler.The
2025-03-16 19:33:55
328
原创 win11 无法找到音频输出设备
8.在“厂商”栏里点击“Microsoft”,右边“型号”栏里点击“High Defintion Audio 控制器”4.找到“英特尔(R)智音技术音频控制器”右键点击“更新驱动程序”5.点击第二个“浏览我的计算机以查找驱动程序软件”6.点击“让我从计算机上的可用驱动程序列表中选取”7.把“显示兼容硬件”前面的钩子✓去掉。2.找到“设备管理器”1.右键“开始”按钮。3.展开“系统设备”
2025-02-24 10:08:47
1649
原创 Delphi 11 canvas does not allow to draw Vcl.Graphics.OutOfResources
把Devart DataSet Manager包勾选去掉。如果同时安装了CnPack和UniDAC,
2024-12-11 16:30:54
1227
原创 Delphi 11 compile error in SynHighlighterECMAScript.pas
dcc32 Warning] SynHighlighterECMAScript.pas(742): W1063 Widening given AnsiChar constant (#$B5) to WideChar lost information解决方法:增加编译开关。
2024-12-08 15:08:52
421
原创 delphi IDE 插件DelphiIDEPlugin_SearchProject,用于从项目组中查找项目
delphi IDE 插件DelphiIDEPlugin_SearchProject,用于从项目组中查找项目。安装后在菜单Tools下第一个子菜单项查找项目。
2024-12-04 13:36:23
816
原创 cxGrid 按钮列 不响应按钮点击事件
cxGrid1DBTableView1.OptionsSelection.CellSelect := true; cxGrid1DBTableView1.OptionsData.Editing := True;
2024-06-29 17:35:41
338
原创 delphi FDMemTable1.SourceView遍历各行数据,取任意行数据无需Next移动指针了。TFDDatSView
beginthenContinue;end;
2024-06-14 15:03:43
407
原创 内存32G
分别双击 DisablePagingExecutive 和 LargeSystemCache 这两项,将其数值由 0 修改为 1。关闭 MemoryCompression 内存压缩和 PageCombining 内存合并。管理员身份运行PowerShell。
2024-04-18 10:16:14
866
原创 delphi vcl dll texthint 不生效 EM_SETCUEBANNER
若要使用此 API,必须提供指定Comclt32.dll版本 6.0 的清单。有关清单的详细信息,请参阅。一定要打开工程选项Enable Runtime Themes。
2024-04-12 20:11:56
316
原创 ORA-12705: Cannot access NLS data files or invalid environment specified
重启电脑。
2024-03-19 19:12:12
1255
原创 如何取消Win10任务窗口栏预览。任务栏图标合并后竖排排列。
Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]"ExtendedUIHoverTime"=dword:00010000[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband]"NumThumbnails"=dword:0
2023-12-06 13:33:21
780
原创 Delphi利用adoquery调用sql server存储过程 标量值函数 表值函数
/参数名不需要与sql中定义的参数名相同。{利用adostoreproc调用sqlserver标量值函数}{利用adostoreproc调用sqlserver存储过程}
2023-11-16 10:56:56
755
原创 TNS_HOME ORACLE_HOME tnsnames.ora
TNS_HOME tnsnames.ora文件所在目录。ORACLE_HOME 客户端根目录。
2023-10-31 14:33:11
199
原创 win10 版本21H2 + vs2022 + Windows 11 版本 22H2 WDK
Driver Signing - Test Certificate 下拉菜单中点击Create Test Certificate。若要使用 Visual Studio 2022 开发和测试驱动程序,请下载 Windows 11 版本 22H2 WDK。Driver Settings - General,Target OS Version改成Windows 10,Target Platform改为Desktop;C/C++ - 常规,警告等级 4,将警告视为错误 否;链接器 - 常规,警告视为错误 否;
2023-08-21 15:40:53
2894
原创 Delphi7 ODAC控件连接Oracle RAC
如果要使用ODAC控件连接Oracle RAC,则需要Oracel安装客户端,并且不使用Direct模式,ODAC 控件中的Direct模式不支持Oracle RAC,只能够链接一个确定的RAC实例。根据说明,安装Oracle客户端,安装好之后,查找tnsnames.ora文件。orsn1.Server:=服务名;链接方式与ADO连接Oracle一致。注意,DMSII前不能有空格。
2023-06-29 10:15:57
781
原创 批处理 遍历删除delphi源码文件夹下dcu等所有类型的临时文件,包括其子文件夹
echo off, *.~ddp, *.~dpr, *.~pas, *.~pa, *.~dfm, *.$$$del "%%f"
2023-06-01 20:24:33
554
delphi IDE 插件DelphiIDEPlugin-SearchProject,用于从项目组中查找项目
2024-12-03
win10 版本21H2 + vs2022 + Windows 11 版本 22H2 WDK 驱动工程demo
2023-08-21
D7WebServiceTest-Web App Debugger executable
2023-08-17
Delphi HttpServer跨域
2019-04-03
GNU Gettext Delphi Demo
2016-11-29
delphi10可用Fastnet_V5.6.3_For_D5D6D7D9D10 - 副本.zip
2019-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1