我在我的单位中广泛使用{$Regions}
,但有时候VCL编辑器会自动扩展所有区域。有没有办法告诉编辑没有
扩展崩溃的区域,除非我明确地点击+
按钮?
评论更新:
发生展开,
答案 0 :(得分:1)
不幸的是,这是德尔福自从Delphi XE以来一直存在的问题之一,如果不是从旧版本开始,仍然没有得到修复。
代码自动展开的原因是,只要Error Insight系统检测到您的设备中存在任何语法错误,它就会将该部分下面的所有代码视为无效,从而在该点之下展开所有折叠代码。< / p>
到目前为止,我知道避免这种情况的唯一方法是禁用Error Insight。但这意味着,在您尝试编译程序时,您不会被警告任何可能的语法错误。
但是我真的希望Embarcadero能够尽快解决这个问题,因为它会使你的代码折叠系统无法使用,因为你花了更多时间再次编写任何新代码来折叠自动扩展代码,因此你已经禁用了Error Insight。
编辑:重现这一点的步骤(复制它的一种方式)
创建新应用程序
为您的表单或任何其他两种方法为OnCreate和OnClose创建两个新的偶数处理程序。
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//
end;
如果您创建了偶数处理程序,请确保在最低处理程序metrhod或Campaast一条注释行中有一些代码,以便优化程序自动删除“empy”事件处理程序。
现在在顶级事件处理程序中写“表单”。您将了解底部事件处理程序将如何自动扩展。
您将看到,此时delphi desent甚至知道检测到语法错误的当前方法代码块何时或何处结束。这也使得在该点之下正确检测任何代码块变得不可能。