保存项目时代码丢失求助:Object Inspector添加的事件代码消失如何解决?
我之前也踩过这个坑,尤其是在用Delphi老版本开发的时候,给你几个经过验证的解决办法:
别在Object Inspector的参数框里直接写代码
双击参数框弹出的临时编辑器并没有和单元文件做正确绑定,写的代码只存在内存里,保存项目时根本不会同步到.pas文件中。正确姿势是双击事件名称(比如OnClick),直接跳转到单元文件的事件处理函数里编写代码,这样代码会被存在对应的.pas文件内,保存时自然不会丢失。检查并修复窗体与项目文件的关联
右键项目里的窗体,选择「View as Text」查看.dfm文件,确认里面的事件绑定(比如OnClick = Button1Click)是否正确关联到你写的函数。如果绑定条目消失了,手动补上对应的函数名,保存.dfm后重新打开项目。另外要确保项目所有文件(.pas、.dfm、.dpr)都在同一目录,路径里不要有中文、特殊符号或空格——老版本Delphi对这类路径兼容性很差。清理重复的自动创建窗体
打开「Project -> Options -> Forms」,检查「Auto-create forms」列表里有没有重复的窗体条目。如果有多余的,直接删掉只保留一个,重复创建的窗体会覆盖事件绑定,导致保存后代码丢失。清理项目缓存文件
关闭Delphi,删掉项目目录下的.dcu、.local、.identcache文件,还有__history文件夹。这些缓存文件有时会和实际代码不同步,导致保存时覆盖掉正确的事件绑定。清理完后重新打开项目,重新绑定事件代码再保存试试。升级Delphi版本(如果可行)
这个问题在Delphi 7、2007这类老版本里特别常见,新版本(比如Delphi 10.4及以上)修复了很多编辑器同步的bug。如果条件允许,升级到新版本能从根源上避免这类问题。
内容的提问来源于stack exchange,提问作者AKAD0

