我正在使用Delphi 2007.有时链接到组件的属性会丢失。这通常是Action属性和lookupdatasets。我有几次有一些紧急错误修复,并发送了一个版本给客户有一个灾难性的结果由于这个:-) 任何人都知道一种方法来验证应该设置的属性是否确实设置,或者是一种防止这种情况发生的方法?
答案 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是我个人最喜欢的)。在一个小的修复程序中,您可以看到哪些文件已经更改,无论您是否有任何您不期望的更改。