2012-10-24 50 views
0

我想更改xmldom和XMLDoc文件。我嘗試過,但我不知道如何測試這些更改,因爲程序似乎沒有運行這些文件中的代碼。我嘗試使用ShowMessage來查看代碼是否被訪問,但它從來沒有出現。即使我重命名文件所在的目錄,程序仍然可以編譯好,就好像它不是在運行時主動讀取文件,而是將信息存儲在別處。如何使對XML相關源文件的更改生效?

如何更改這些命名空間,然後確保更改包含在我的下一個編譯中?

更新

嗯,我對細節Changing XML node attribute value gives "Namespace error"(這裏有關更改「AdomCore_4_3」答案會談)尋找一般的回答。因爲我曾在多個場合這個問題。但我希望能夠改變它,並在編譯時顯示更改。

+0

它們將被編譯爲* .dcu文件,這些文件可能位於Delphi \ xx \ lib目錄中的某個位置(不要讓Delphi XE更精確)。 – TLama

+0

因此,如果我刪除了* .dcu文件,會導致新的更改被編譯? – Trevor

+0

是的,它應該,但我寧願重命名它們而不是刪除。並且可能有一些緩存保存文件加載(但我不確定)。因此,如果它不會生效,請嘗試重新啓動IDE(s)。 – TLama

回答

3

只要你沒有對interface部分的單元進行更改,只需要implementation部分,那麼你可以在你的Project Options中禁止使用Runtime Packages,然後將修改後的源文件直接添加到你的項目中。編譯器將它們編譯成新的.DCU文件,並使用它們而不是默認的.DCU文件。

4

如果您已經從環境中移除了已編譯的DCU文件,而且您的更改仍未被編譯到您的項目中,那麼您根本沒有真正使用這些單元,或者您有運行時軟件包啓用。

使用運行時軟件包時,編譯後的代碼是從BPL文件訪問的,而不是DCU。您不允許分發修改過的BPL文件,因此如果您要修改Delphi提供的源代碼,則需要確保不將該包與XML單元鏈接到項目中。您可以在項目的鏈接器選項中控制它。

+0

謝謝,你知道這個軟件包的名字是什麼嗎?此外,我一直在環顧四周的選項,我看到一個德爾福編譯器「鏈接」,但我沒有看到任何地方包指定..你能解釋我到達那裏?謝謝 – Trevor

+0

對不起,我想它在包部分而不是鏈接器部分。找到「使用運行時軟件包構建」選項,然後清除複選框或編輯軟件包列表以忽略包含正在修改的單元的軟件包。上次我使用Delphi時,列表是一個簡單的編輯框,其中包含以分號分隔的軟件包名稱列表。 –

+0

感謝輸入Rob,很高興知道分發修改後的BPL文件是被禁止的。 – Trevor

相關問題