【问题标题】:Delphi 2010 - Source files randomly become read-only in editor?Delphi 2010 - 源文件在编辑器中随机变为只读?
【发布时间】:2025-12-22 07:55:15
【问题描述】:

还有其他人有这个问题吗?还是我的 Delphi 被诅咒了?

我将在编辑器的选项卡中打开一堆表单和文件,然后我会打字,然后突然间一切都停止了——我的 .pas 文件似乎随机地变成了只读的。

有时我只需右键单击顶部的选项卡并取消选中“只读”并继续,但有时此选项会被选中并显示为灰色(禁用),这意味着我无法取消选中它,我可以' t 对文件进行任何进一步的编辑。这似乎也是随机的。

在后一种情况下,唯一的解决方案是保存有问题的文件,尽管 Delphi 断言该文件是只读的,但在编辑器中关闭其选项卡,然后重新打开它。不是灾难性的,真的,但它开始变得烦人。

可能是我不小心按了键盘命令组合来执行此操作,还是这是 Delphi 中的错误?

我在 Delphi 2010,Windows 7 中。怀疑它与已安装的软件包有关,但如果有人想要列表,我会生成它并附在此处。

【问题讨论】:

  • 我以前看过这个,它与一些错误有关:类似于“如果尝试保存时出现任何问题,请将其标记为只读以确保安全”。可能是您的存储有问题(例如:防病毒软件在某些时候阻止了写入,因为 AV 软件出了名的愚蠢),可能是某些插件的问题,也可能是核心 delphi 的问题。我认为在遇到错误时使缓冲区 RO 的概念很聪明,麻烦在于找到根本原因。当然这只是猜测,我真的不知道发生了什么。
  • 也可能与 3rd 方组件有关(已安装软件包的列表仍然与我们其他人无关)。也许你有一个 3rd 方组件,当它应该将自己流式传输到 DFM 时失败,这可能是我正在谈论的根本原因。如果是这种情况,请寻找花哨的组件做一些特别的事情(要求组件注册它自己的流式传输到 dfm 的方法),因为所有基本类型都是由 Delphi 本身流式传输的,所以失败的可能性很小。
  • 所有这些都是可能的,但我仍然不确定。它将文件标记为 RO,但我仍然可以保存项目中的所有内容,关闭 Delphi,然后在文件显示为 RO 之后 重新打开所有内容。我也不愿意相信这是一个组件问题,因为当我只是输入代码时它总是会发生。当这种情况发生时,唯一不断做任何事情的是错误洞察——现在我想起来了,它可能是一个错误。 EI 实在是太糟糕了,我不妨禁用它,看看会发生什么。

标签: delphi editor delphi-2010


【解决方案1】:

跳到最后一段以获得快速解决方案:)

是的!这只是发生在我身上。我正在输入一行代码...... Intraweb 的 ServerController 中的一行...... OnBeforeDisbatch ......无论如何。我在打字。。

如果

然后我输入了一个空格...所以如果

如果为真则

在上面的行进入系统之后,所有的地狱都崩溃了......地狱是该文件将保持在只读模式......

我手动编辑了文件并删除了该行

如果为真则

一切都很好。

只是为了更新:我相信它是文件大小...... 125K 然后砰。至少在服务器控制器上... IW10/Delphi 2010

再次更新……8小时后……

我将源文件(iwservercontroller)从 125k 减少到 80k 以下,一切都很好。然后现在当我第一次按下控制键粘贴一个值时,文件变为只读!喜欢哇....

又要减少文件了..

几分钟后...

关闭 d2010 并重新加载项目后...我已将问题范围缩小到使用“粘贴”命令...。第二次我尝试粘贴剪贴板值时发生只读...但是硬盘命中只读激活前的一瞬间发生了!

最终解决方案!!!我得到了它!我不敢相信右键菜单中有一个“只读”选项....单击出现只读时复选框所在的左侧窗格!不再需要重新启动 IDE 并重新加载所有内容等...

全部修复...哇哦

不...不是全部修复... 3 小时后...我重新激活 IDE,我正要粘贴一些数据,然后文件进入只读状态(不是资源管理器的文件属性)并弹出菜单值现在变灰了!!喜欢wtf!!

一整天后..尝试一切..我有一个解决方案!我第一次让它在不使用 PUM/插入键的情况下以只读方式关闭

只需访问导致只读的相关单元并使用外部应用程序更改单个字符即可。 (超编辑)并保存。保存后 d2010 将检测外部更改并切换回插入模式,即使弹出菜单被禁用....哇哦...

* 最终解决方案 * 现在一切都很好,不是一个只读的,但是在控制我的文本编辑习惯方面,解决方案不是太优雅..但是如果你打开设置并更改编辑器以保持插入模式,你会笑到银行……至少现在对我来说一切都好。

Delphi2010-->Options-->Editor Options-->["Insert Mode"]勾选那个选项。

似乎因为我没有点击上面的复选框,所以只读....祝你好运。

【讨论】:

  • 我会尝试一下,看看效果如何。我已经有一段时间没有遇到只读问题了,但它似乎仍然不时出现,然后暂时缓解。谢谢。
  • 我在 D2007 中打开了插入模式,但我遇到了只读问题。
【解决方案2】:

这发生在我身上一次。我认为这是一个错误,我找不到它的现有报告,当您找到可重复的步骤时,请为其创建 QC 报告。

【讨论】:

  • 很高兴知道。我试图找到它发生的模式,但到目前为止它一直让我望而却步。如果我解开谜题,我会在这里发布任何更新并提交 QC。
  • 我已经将这个问题悬而未决了一段时间,但我想任何看过它的人都已经这样做了。接受这个答案,因为此时看来这确实是一个错误,尽管是一个隐蔽的错误,而不是我简单地忽略的问题。
【解决方案3】:

这种情况经常发生在我们身上——一旦文件超过一定的大小/复杂度,Delphi 开始随机进入只读状态——有时伴随着冻结几秒钟。

我们认为这与语法高亮显示在某些结构上的失败有关 - 当然它来来去去都是波浪式的,而且我有时不得不在记事本中编辑文件以完成一些工作.

它发生在没有相关 DFM 的单元上,因此它不是一个组件,它与存储无关(Delphi 失败时不会写入磁盘)。

【讨论】:

    【解决方案4】:

    是的,这在我安装 Model Maker 11 后才开始发生。我认为 Model Maker 插件可能会在源文件的只读设置中胡作非为。 (我已经使用 Delphi 2010 一年了,从来没有发生过这个问题,突然间它就在我得到 MM11 的时候开始了。)虽然我还没有尝试卸载 MM11。那么 --- 你有 ModelMaker 11 吗?

    【讨论】:

      【解决方案5】:

      我在 Delphi 7 中多次看到它,排除了其他人建议的一些解释。

      我没有在 2010 年看到它,但在 2010 年我还没有做那么多。

      【讨论】:

        【解决方案6】:

        我还看到 D2010 编辑器中的 pas 文件切换到“只读”。以上建议都不是一直对我有用。我正在将一个大型项目从 D6 转移到 D2010,并且正在进行许多必要的更改。对于已标记为“只读”且(在编辑器中单击鼠标右键“[ ] 只读”)已灰显的文件,解决该问题的方法是关闭文件并重新打开它。

        【讨论】: