2009-01-29 40 views
6

我正在使用Delphi 2007.有時鏈接到組件的屬性會丟失。這通常是Action屬性和lookupdatasets。我有幾次有一些緊急錯誤修復,併發送給客戶一個有點災難性的結果,因爲這個:-) 任何人都知道一種方法來驗證應該設置的屬性真的被設置,或一種方式防止這種情況發生?如何檢查鏈接到組件的屬性是否不「丟失」?

回答

5

你已經收到幾個關於如何檢測這種情況的好答案(最多投票)。但是阻止它發生的一種方法(有時)是確保你已經將所有參考單元添加到DPR中。例如,如果您打開一個表單,其中包含引用數據模塊上其他組件的組件,並且該數據模塊尚未添加到DPR /項目中,則幾乎可以保證IDE將這些引用刪除,因爲它刪除無法確定的引用是有效的。另一方面,如果數據模塊在DPR中,則IDE將能夠找到它,並且不太可能首先刪除參考文件

不幸的是,它仍然發生從時間到時間,所以你仍然需要採取其他答案中詳述的預防措施。但是如果你還沒有這樣做,這會讓事情變得更好。

10

顯然,您可以在代碼中分配這些值。

更重要的是,您必須在提交到源代碼控制之前區分每個文件。總是。

確保您的dfm文件是文本,而不是二進制文件。然後在簽入/提交之前很容易看到不需要的更改。

差距的一切都爲我停止了很多潛在的失誤。

一個自動構建和測試系統也會給你一些你所提供的信心。

+0

我遇到的問題通常是指向保存表單時在IDE中未打開的其他表單的鏈接。我已經使用了代碼和構建系統測試的組合來確保它能夠正常工作,並且在開發時聲稱告訴我。 – mj2008 2009-01-29 12:22:36

1

您想要一種方法來驗證值是否設置正確。那麼,你可以使用單元測試。只需啓動一個表單,比較屬性並完成。

比較dfm也是一種很好的方法,但它沒有考慮到由於更改默認值或代碼更改而導致的更改。

2

創建dunit測試項目。 發佈前運行測試。 測試失敗時鳴響所有鐘聲。

1

將表單,數據模塊或框架添加到項目中時,IDE會在dpr文件中的單元名稱後插入一個小小的註釋「標記」。據我的經驗,如果由於某種原因這個標籤不存在,那麼IDE更容易丟失跨模塊組件引用。

我完全支持在每次提交版本控制之前始終查看差異的想法,如果您使用的是諸如此類的東西。

1

我討厭這麼說,但Source Code Control可以幫助解決這些問題。即使有一個緊急錯誤修復,你應該檢查一切到源代碼庫(Perforce是我個人最喜歡的)。在一個小的修復程序中,您可以看到哪些文件發生了變化,無論您是否有任何變化,您都不期待。

相關問題