如何停止C++ Builder XE自動編輯.dfm文件?停止C++ Builder XE刪除/編輯.dfm文件中的UI組件
我目前正在將一個相當大的代碼庫從BCB5移植到XE。舊代碼中使用了很多外部組件,但尚未安裝新環境(因爲我需要找到替代品或自己移植它們)。現在,Builder會刪除/更改我的dfm文件中這些UI組件的定義。如果IDE沒有找到組件的實現,它將被完全刪除。對於已知的組件,其大小相當多次會以小值變化。我該如何轉變這種惱人的行爲?
如何停止C++ Builder XE自動編輯.dfm文件?停止C++ Builder XE刪除/編輯.dfm文件中的UI組件
我目前正在將一個相當大的代碼庫從BCB5移植到XE。舊代碼中使用了很多外部組件,但尚未安裝新環境(因爲我需要找到替代品或自己移植它們)。現在,Builder會刪除/更改我的dfm文件中這些UI組件的定義。如果IDE沒有找到組件的實現,它將被完全刪除。對於已知的組件,其大小相當多次會以小值變化。我該如何轉變這種惱人的行爲?
它將編輯DFM和頭文件以刪除組件。
有三個選項:
在IDE中打開了哪些組件不存在一種形式,它會問你怎麼辦。您可以單擊「忽略全部」,它不會刪除這些組件引用。
如果您使用源代碼管理,您應該能夠恢復這些更改。也就是說,讓IDE做任何想要的事情,然後恢復或不提交這些更改。
雖然最好的方法是實際安裝這些組件。如果您在項目中打開表單但組件不存在,您想要做什麼?你將無法編譯它們。如果您需要用不同的組件替換組件,那麼IDE會刪除舊組件?
您應該嘗試在可能的情況下首先安裝相同組件的較新版本,然後再自行升級項目及其文件。然後升級項目,並根據具體情況讓它刪除對不存在的組件的引用,然後用不同的組件替換它們。
「對於已知的組件,其大小很多時候會改變很小的值。」
技術上這是一個不同的問題;)但如果它很小,就忽略它。一些屬性如ExplicitLeft
和ExplicitTop
幾乎肯定會改變,我認爲這是由於不同的窗口標題欄和邊緣寬度(通常在Vista使用XP時保存表單時會出現),我想,我從來沒有弄明白爲什麼這些經常改變,但它似乎並沒有影響任何東西。)確保你使用的DPI設置與上次保存表格的DPI設置一樣(這是字體大小設置在您的顯示器屬性中。)
感謝您的回答。我使用了「忽略所有」並且回覆到現在的方法。問題是我不希望IDE一次性刪除所有這些東西,也沒有讓我有可能一步一步地解決它。我只是不喜歡IDE自動執行任何操作,我甚至沒有選擇切換這種行爲。 – mort
我發現只有在相應的cpp或h文件打開時,dfm文件才由IDE更改。這樣,我可以編譯源代碼,只要發現未知的組件/屬性,編譯器就會發出錯誤,我可以解決它們。
你試過在BCB5中鎖定dfm嗎? IIRC,當你右鍵單擊表單設計器時,這是一個選項。 –
是的,這個作品! – mort