我想清理我繼承的應用程序中的編譯器警告。我們的一個類繼承了TControl。我得到的警告是「重新聲明變更隱藏了基類中的成員」Redeclaration隱藏基類成員
「變更」是TControl中的受保護程序。我在看這個類有一個布爾屬性
property Changed : Boolean read FChanged write FChanged stored true;
重寫它還有我已經排除了幾個選項:
重命名從「」更改爲別的東西。這不是一個實際的選擇,因爲該屬性在應用程序中隨處可見。
使用編譯器指令隱藏警告。我可以做到這一點,但我寧願找出警告的含義以及如何糾正。
所以我的問題是:
1)這是警告實際上是一個問題嗎? 「隱藏基礎成員」有什麼含義?
2)如何在不重命名屬性或隱藏警告的情況下移除編譯器警告?
我使用德爾福2010年
[編輯:已經有使用重構工具來重命名出錯的屬性的幾個suggesions。我已經排除了這一點,因爲重構工具根本無法在此代碼庫上工作]
該警告有效。這意味着您將無法在新控件中調用TControl.Changed。您的控件需要調用它來通知其本身及其父項屬性已更改。他們正在觀察該方法發送的'cm_Changed'消息。考慮調用你的財產'骯髒'而不是。 (另外,這聽起來像是一個奇怪的屬性,想要存儲在DFM中;加載表單的新實例後,說控制權已經改變是否正確) – 2010-11-18 01:53:13
好點!不知道爲什麼它被存儲。 – awmross 2010-11-18 05:07:54