【发布时间】:2020-05-05 12:41:19
【问题描述】:
我的主窗体中有很多 OnClick 和类似事件。在 Unit1.pas 中很难在它们之间导航。 我将它们移动到不同的 pas 文件中,并将其添加到我的 Unit1.pas 中:
{$INCLUDE Menu.pas}
但现在 Delphi 想要删除 OnClick 事件。所以它不能正常工作。 如何将我的代码拆分为不同的文件?
【问题讨论】:
-
不要这样做。将它们保存在同一个文件中。
-
@Tom:那么您似乎可以通过将代码从这些事件处理程序中移出来重构代码。例如,如果您有一个
TButton.OnClick处理程序使表单上的位图图像变暗,您可以将位图变暗代码提取到过程DarkenBitmap(Bitmap: TBitmap)中,并将其放入名为BitmapUtils的单元中。然后您的事件处理程序可以简单地调用此方法,将其行数从 35(比方说)减少到 3(比方说)。 -
正如许多人在 cmets 中对您的问题所说的那样 - 重构。如果您的表单适合这种方法,制作一些框架也可能会有所帮助。此外,如果您有许多控件执行几乎完全相同的操作(假设您有 10 个按钮调用某个方法但参数为 1 到 10),您可能会尝试为所有控件分配相同的操作,设置每个控件的标记到 1-10 并检查事件中的发件人标签。
-
如果通过代码导航是您的主要关注点,您可以加载 MMX CodeExplorer(一个 IDE 插件,请参阅 mmx-delphi.de),它具有帮助在源代码中快速导航的功能。实际上,没有它我不能离开。
-
如果您有大量类似的按钮,您可以通过编程方式创建它们并为它们分配相同的事件处理程序。