是否有可能在DelphiXE中「按需/選擇性地」禁用表單設計器,並且只在需要的情況下使用表單/類的代碼,如果控件未安裝在IDE?禁用DelphiXE中的表單設計器
回答
我想說的答案是否定的,但我使用的解決方法是編輯DFM文件並剪出不在那裏的組件,然後將其粘貼到FormCreate事件中並將其實例化。屬性都在DFM中,所以稍加修改就可以很好地工作。
不,你不能有選擇地禁用它。我經常做的事情(因爲在我的大部分IDE中幾乎沒有安裝任何控件)只是打開表單,告訴Delphi在加載dfm時忽略所有錯誤,編輯源代碼並確保不'檢查dfm到我的源代碼管理系統。
您可以嘗試保持dfm只讀,以避免錯誤地檢查dfm中是否有刪除的控件,但是有一個缺點:每次嘗試保存源代碼時IDE都會提出關於只讀的錯誤文件的性質。如果你像我一樣頻繁地按下Ctrl-S或Shft-Ctrl-S,很快就會變成麻煩。
當我必須更改dfm時,我在文本模式下執行此操作,或者安裝控件,執行dfm更改並提交。之後,我再次釋放卸載控件,並在pas文件上工作,忽略/恢復對dfm的任何更改。
我通常所做的是在「Error Reading Form」對話框中選擇「Cancel」,然後選擇「OK」以關閉下面的「Error creating form:...」對話框。只需兩次點擊或兩次Escape鍵即可。沒有創建表單設計器,我仍然可以編輯並保存.pas文件而不用觸摸.dfm。 –
@TOndrej:啊哈,聽起來不錯。我會在下次嘗試取消。 –
您可以使用類似的情況,以防事件標頭出現不一致(從舊VirtualTreeView組件遷移時發生這種情況,並且事件中有不同的參數),您只需修改源並保存即可。當你按下Save按鈕時,你會看到如下信息:方法XXX的參數與它的聲明不一致。你想刪除它嗎?',如果你選擇'取消'或按'ESC',那麼沒有任何東西被刪除,並且你的文件被成功保存。 – 2011-07-22 12:28:28
不,目前沒有合理的解決方法。
我已經要求在未來的某個時間這是Delphi的一個特性;不應該通過打開它們來銷燬這些DFM,也不應該在打開沒有安裝控件的表單時將多個模式對話框詢問是否要銷燬DFM。
最後只有一個實際的解決方案;安裝所有控件。其他任何事情都會讓你發瘋。
誰決定展示一個巨大的對話全部使用相同的消息? –
我不會假設有人想過它。從本質上講,這些問題不會影響您演示一個無關緊要的Delphi RAD工作流程的能力,而且當Delphi應用程序達到一定規模時,以及在多個項目中使用相互排斥的組件集的開發人員時,這些問題會變得癱瘓。爲每個項目管理這些組件集是一個很大的Delphi問題。 –
是的,就像程序管理器可能從來沒有用過51個大型和小型項目的項目組......它有時甚至在你還沒有做任何其他事情時經常崩潰。或者有很多條件定義的單元,不僅在代碼中,而且在uses子句中也是如此。它會在循環中拋出代碼洞察力... –
- 1. 用於DelphiXE的THtmlViewer
- 2. 在設計asp.net表單時禁用Visual Studio設計表面上的css/Style
- 3. 在Visual Studio中禁用設計器?
- 4. JBPM6.2 eclipse kepler中的表單設計器
- 5. vC++表單設計器
- 6. 在Visual Studio表設計器中禁用內聯約束條件
- 7. 創建我的Silverlight表單設計器
- 8. C#表單生成器的設計
- 9. 在Winforms設計器中禁用屬性設置
- 10. 從D6到DelphiXE的TStringAlignGrid
- 11. 禁用MS Access中的設計視圖
- 12. 在qt設計器中禁用分離器
- 13. DelphiXE中的異常位置未正確位於調試器中?
- 14. 禁用清單中的加速度計
- 15. 用戶運行時報表設計的OpenSource報表設計器?
- 16. C#設計器表單不更新表單對象的方法?
- 17. Symfony表單設計
- 18. 創建表單(無窗體設計器)
- 19. django表單模板設計器友好
- 20. 表單設計器保存並加載
- 21. 數據庫設計 - 表單生成器
- 22. Visual C#Express 2008表單設計器AutoScroll
- 23. 如何製作表單設計器
- 24. 在BIRT設計器中禁用與數據源的連接
- 25. 在Visual Studio 2008中禁用派生類的設計器
- 26. 爲設計禁用會話
- 27. 設計invitable:禁用視圖
- 28. 禁用XAML UI設計師
- 29. 如何在Qt設計器中使用對話框表單?
- 30. 無法在表單設計器中導入引用
@David,錯過了「如果控件沒有安裝在IDE中」部分的問題...... –
@David:AFAICT OP希望避免IDE刪除未知組件和屬性,組件相關的代碼。只要組件的代碼或DCU是可訪問的,這應該不會對代碼編輯器造成問題(包括錯誤洞察和其他問題)。 –
你在這裏與德爾菲戰鬥。如果你不停止戰鬥,你會開始討厭它。最好不要打這個。您可以考慮爲每個項目使用多個註冊表配置單元,每個項目都包含您需要安裝的組件,然後您只需啓動具有-RBDS_OPTX參數的IDE即可轉到備用BDS_OPTX註冊表區域。 –