【问题标题】:When I open a form in Delphi, Is there a way to open the code (pas) by default, instead of design (dfm)?当我在Delphi中打开一个表单时,有没有办法默认打开代码(pas)而不是设计(dfm)?
【发布时间】:2020-04-02 12:35:45
【问题描述】:

我在某些组件中遇到了一些问题,我想禁用它们的设计时包,我只在需要时启用。当我打开我的代码时,有时会与表单一起打开,当我在 IDE 中打开时,我想首先打开它的默认解码部分,而不是表单本身。有选择吗?

【问题讨论】:

  • 简单回答:否
  • 一种选择是从表单中删除麻烦的组件,而是在运行时在代码中创建它们。我很久以前为一个组件做过,甚至使用面板组件作为占位符来帮助表单布局,并在运行时用麻烦的组件替换它。
  • @Brian 我们的代码库很大,这是不值得的。
  • 如何告诉更多关于“我在某些组件中遇到一些问题”?
  • @Olivier 我在这个问题中解释它:quality.embarcadero.com/browse/RSP-27975 基本上IDE需要几分钟才能打开,因为我们组件的“继承”,可能是因为Package Cache加载。

标签: delphi


【解决方案1】:

我不知道允许您执行此操作的 IDE 选项。但是有一些方法可以解决这个问题,尽管它不如特定选项方便。

当您不想打开表单时,可以注释掉{$R *.dfm} 指令。当然,这样编译会导致应用程序在运行时创建表单失败。

因此,更动态的方法是将其包装在条件编译中。

{$IFDEF WHATEVER}
{$R *.dfm}
{$ENDIF}

根据一些快速测试,这似乎有效。不过,我不知道有任何内置条件可以说明您是在编译还是在设计。所以我猜想不太容易出错的方法是将 -dWHATEVER 传递给“传递给编译器的附加选项”

免责声明:我没有对此进行了广泛的测试。这可能/可能不会导致进一步的问题。

【讨论】:

  • 这将使您的项目成为一场噩梦,以“解决”一个不存在的问题。
  • 肯,感谢您的回答,但我同意大卫的观点。在解决我的问题(对我来说存在)和做你提议的事情(这会使我们的项目更加复杂)之间,我宁愿什么也不做。谢谢。
  • @DavidHeffernan 这个解决方案是否比问题更糟糕是一个评估,最好留给有问题和寻求解决方案的人。
  • @KenBourassa 在这里仍然允许评论,除非我弄错了。我有权发表评论表达我的意见。你没有义务同意我的观点。当人们不同意时,这是健康的。
  • @DavidHeffernan 不知道你为什么这么防守。我只是评论说我不同意你的观点,暗示这个解决方案没有任何问题没有帮助(并且称其为“噩梦”严重夸大了它。我不得不在更糟糕的代码库中工作。那是轻而易举的事)。另外……我听说这里仍然允许评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多