如何检查链接到组件的属性是否“丢失”?

时间:2009-01-29 11:17:11

标签: delphi

我正在使用Delphi 2007.有时链接到组件的属性会丢失。这通常是Action属性和lookupdatasets。我有几次有一些紧急错误修复,并发送了一个版本给客户有一个灾难性的结果由于这个:-) 任何人都知道一种方法来验证应该设置的属性是否确实设置,或者是一种防止这种情况发生的方法?

6 个答案:

答案 0 :(得分:10)

显然,您可以在代码中分配这些值。

更重要的是,您必须在提交sourcecontrol之前对每个文件进行区分。总是

确保您的dfm文件是文本,而不是二进制文件。然后在签入/提交之前很容易看到不需要的更改。

一切都已经为我阻止了很多潜在的失误。

自动构建和测试系统还可以让您对所提供的内容充满信心。

答案 1 :(得分:5)

你已经收到了几个很好的答案,关于如何检测到这种情况何时发生(投票)。但是,防止它发生的一种方法(有时)是确保您已将所有引用的单元添加到DPR中。例如,如果您打开一个表单,其中包含引用数据模块上其他组件的组件,并且该数据模块尚未添加到DPR /项目中,那么几乎可以保证让IDE删除这些引用,因为它删除无法确定有效的引用。另一方面,如果数据模块在DPR中,那么IDE将能够找到它,并且不太可能在第一时间删除引用

不幸的是,它仍然会不时发生,因此您仍需要采取其他答案中详述的预防措施。但如果你还没有做到这一点,这将使事情变得更好。

答案 2 :(得分:2)

创建dunit测试项目。 发布前运行测试。 测试失败时发出响声。

答案 3 :(得分:1)

您想要一种方法来验证值是否设置正确。那么,你可以使用单元测试。只需启动一个表单,比较属性和完成。

比较dfm也是一种很好的方法,但它没有考虑由于更改默认值或代码更改而导致的更改。

答案 4 :(得分:1)

将表单,数据模块或框架添加到项目时,IDE会在dpr文件中的单元名称后插入一个小注释“tag”。根据我的经验,如果由于任何原因该标签不存在,IDE更容易丢失跨模块组件引用。

我全心全意地支持在每次提交版本控制之前始终查看差异的想法,如果你正在使用这样的东西。

答案 5 :(得分:1)

我不想这么说,但源代码控制可以在这些情况下提供帮助。即使有紧急错误修复,您也应该将所有内容都检查到源代码存储库中(Perforce是我个人最喜欢的)。在一个小的修复程序中,您可以看到哪些文件已经更改,无论您是否有任何您不期望的更改。