首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我不小心从窗体中删除控件引用的“使用列表”,会有什么有害的影响吗?

如果我不小心从窗体中删除控件引用的“使用列表”,会有什么有害的影响吗?
EN

Stack Overflow用户
提问于 2013-12-16 19:54:06
回答 2查看 151关注 0票数 5

假设我有一个带有ImageList的数据模。我也有一个带有按钮的表单。如果我想连接按钮的ImageList属性,我会将DataModule添加到forms uses中,然后在按钮属性中的图像下拉中选择ImageList。

但是,我现在可以从表单使用列表中删除DataModule,而且事情似乎仍然很好。

此外,如果DataModule是在IDE中打开的,而不是在窗体使用列表中,我可以手动在按钮的图像属性中键入图像列表的名称,并且它似乎正确地在按钮上显示图像。

问题:如果我不小心从表单中删除控件引用的“使用列表”,会有什么有害影响吗?

我目前正在清理大型项目(使用cnPack和Icarus)中数百种表单的使用列表,我想知道我需要有多小心(或无情)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-16 23:13:48

为了使IDE能够在设计时找到一个DataModule (对于未设置的属性),以下内容必须为真:

  • DataModule必须在IDE会话期间至少打开/创建一次(可能在会话期间关闭),请参见(*)、
  • DataModule单元必须存在于表单单元的uses子句中。

为了使IDE能够在设计时再次找到一个DataModule (对于已经设置的属性),以下内容必须是真的:

  • DataModule必须在IDE会话期间至少打开/创建一次(可能在会话期间关闭)、
  • DataModule单元必须存在于表单单元的uses子句中。
  • 必须将DataModule单元添加到项目文件中。

如果程序能够在运行时找到一个DataModule (对于已经设置的属性):

  • 必须创建DataModule,
  • DataModule单元必须存在于表单单元的uses子句中。

如果程序能够在运行时找到一个DataModule (对于未设置的属性):

  • DataModule单元必须存在于表单单元的uses子句中。

因此,从理论上讲,如果满足了所有正确的条件,您的DataModule单元就可以从表单的uses子句中省略。但是,要对运行时链接有信心,我可以得出结论,在表单单元的子句中添加DataModule单元是不安全的,或者至少没有方便的转义。

(*)在具有许多表单和DataModules的大型项目中,不打开IDE中的每个DataModule是非常常见的,而且设置很容易丢失。依赖于DataModule名称的设计时绑定,可能会导致表单永远不会显示任何数据(在本例中为图像)。如果不检查每个表单的DataModule设置,这是一个很难预见的错误。

解决方案是在运行时手动设置引用DataModule组件的所有属性,最好是在overriden构造函数或OnCreate事件处理程序中。这还防止了多个DataModule实例的重复命名问题,就像this question处理的那样。

票数 5
EN

Stack Overflow用户

发布于 2013-12-16 21:16:30

组件属性(如图像)的链接与使用列表中的适当条目无关。魔法隐藏在流系统中(寻找xxxFixUpReferences)。只要编译器不抱怨,就可以安全地删除这些条目。

IDE仍有可能对此不满意。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20619708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档