我正在使用Delphi 2007.有時鏈接到組件的屬性會丟失。這通常是Action屬性和lookupdatasets。我有幾次有一些緊急錯誤修復,併發送給客戶一個有點災難性的結果,因爲這個:-) 任何人都知道一種方法來驗證應該設置的屬性真的被設置,或一種方式防止這種情況發生?如何檢查鏈接到組件的屬性是否不「丟失」?
回答
你已經收到幾個關於如何檢測這種情況的好答案(最多投票)。但是阻止它發生的一種方法(有時)是確保你已經將所有參考單元添加到DPR中。例如,如果您打開一個表單,其中包含引用數據模塊上其他組件的組件,並且該數據模塊尚未添加到DPR /項目中,則幾乎可以保證IDE將這些引用刪除,因爲它刪除無法確定的引用是有效的。另一方面,如果數據模塊在DPR中,則IDE將能夠找到它,並且不太可能首先刪除參考文件
不幸的是,它仍然發生從時間到時間,所以你仍然需要採取其他答案中詳述的預防措施。但是如果你還沒有這樣做,這會讓事情變得更好。
顯然,您可以在代碼中分配這些值。
更重要的是,您必須在提交到源代碼控制之前區分每個文件。總是。
確保您的dfm文件是文本,而不是二進制文件。然後在簽入/提交之前很容易看到不需要的更改。
差距的一切都爲我停止了很多潛在的失誤。
一個自動構建和測試系統也會給你一些你所提供的信心。
您想要一種方法來驗證值是否設置正確。那麼,你可以使用單元測試。只需啓動一個表單,比較屬性並完成。
比較dfm也是一種很好的方法,但它沒有考慮到由於更改默認值或代碼更改而導致的更改。
創建dunit測試項目。 發佈前運行測試。 測試失敗時鳴響所有鐘聲。
將表單,數據模塊或框架添加到項目中時,IDE會在dpr文件中的單元名稱後插入一個小小的註釋「標記」。據我的經驗,如果由於某種原因這個標籤不存在,那麼IDE更容易丟失跨模塊組件引用。
我完全支持在每次提交版本控制之前始終查看差異的想法,如果您使用的是諸如此類的東西。
我討厭這麼說,但Source Code Control可以幫助解決這些問題。即使有一個緊急錯誤修復,你應該檢查一切到源代碼庫(Perforce是我個人最喜歡的)。在一個小的修復程序中,您可以看到哪些文件發生了變化,無論您是否有任何變化,您都不期待。
- 1. 如何檢查連接是否丟失
- 2. 如何檢查連接是否在GWT中丟失
- 3. 如何檢查是否有文件的丟失
- 4. 檢查連接到IP地址是否丟失
- 5. 檢查屬性是否爲數組
- 6. 如何檢查節點是否屬性
- 7. 檢查某個鏈接是否被某個屬性點擊
- 8. 如何檢查連接到服務器是否在android中丟失?
- 9. 如何鏈接到原型丟失?
- 10. 檢查屬性是否具有屬性
- 11. 檢查屬性是否附加到$ scope
- 12. 檢查超鏈接是否爲文件
- 13. JSTL:檢查屬性是否不存在
- 14. 如何遍歷數組並檢查屬性是否匹配
- 15. 如何檢查值屬性是否包含在數組中?
- 16. 檢查鏈接是否是外部的
- 17. Python:檢查IRC連接是否丟失(PING PONG?)
- 18. 檢測組件的FocusEvent是否丟失或獲得
- 19. 如何在HTML頁面查找組件的屬性值而不是檢查它
- 20. 檢查屬性是否存在與檢查是否爲空
- 21. 如何檢查郵件鏈接是否打開網頁?
- 22. 如何檢查文件是否有符號鏈接
- 23. 檢查屬性文件是否存在並且需要屬性
- 24. Python SQLAlchemy屬性事件 - 如何檢查oldvalue是否等於NO_VALUE?
- 25. NightwatchJS:如何檢查屬性是否不存在?
- 26. WordPress的 - 如何檢查菜單鏈接是否是頂級?
- 27. 如何檢查目錄是否是大廚的符號鏈接
- 28. 如何檢查複合組件中是否存在可選屬性
- 29. Python:如何檢查對象的屬性是否是方法?
- 30. 如何檢查屬性是否是Javascript中的函數
我遇到的問題通常是指向保存表單時在IDE中未打開的其他表單的鏈接。我已經使用了代碼和構建系統測試的組合來確保它能夠正常工作,並且在開發時聲稱告訴我。 – mj2008 2009-01-29 12:22:36