2011-07-22 23 views
6

是否有可能在DelphiXE中「按需/選擇性地」禁用表單設計器,並且只在需要的情況下使用表單/類的代碼,如果控件未安裝在IDE?禁用DelphiXE中的表單設計器

+3

@David,錯過了「如果控件沒有安裝在IDE中」部分的問題...... –

+0

@David:AFAICT OP希望避免IDE刪除未知組件和屬性,組件相關的代碼。只要組件的代碼或DCU是可訪問的,這應該不會對代碼編輯器造成問題(包括錯誤洞察和其他問題)。 –

+0

你在這裏與德爾菲戰鬥。如果你不停止戰鬥,你會開始討厭它。最好不要打這個。您可以考慮爲每個項目使用多個註冊表配置單元,每個項目都包含您需要安裝的組件,然後您只需啓動具有-RBDS_OPTX參數的IDE即可轉到備用BDS_OPTX註冊表區域。 –

回答

2

我想說的答案是否定的,但我使用的解決方法是編輯DFM文件並剪出不在那裏的組件,然後將其粘貼到FormCreate事件中並將其實例化。屬性都在DFM中,所以稍加修改就可以很好地工作。

+0

如果您有GExperts,請嘗試使用「組件到代碼」專家。 – dummzeuch

+0

這很好,如果從dfm中刪除組件不會破壞整個表單的其餘部分的佈局。說起來比做一個非常複雜的控制要容易得多。對於具有30個或更少屬性的單個組件,組件到代碼專家非常適合,但如果它是一個包含子組件和屬性列表的組件,則需要這些組件是可查看和可編輯的,這樣就會失去很多功能。 –

+0

@Warren如果組件非常重要,那麼您需要重新安裝它。但是對於佈局,我過去曾使用TPanel來顯示位置,然後將其用作父級。這樣你仍然可以設計它。 – mj2008

1

不,你不能有選擇地禁用它。我經常做的事情(因爲在我的大部分IDE中幾乎沒有安裝任何控件)只是打開表單,告訴Delphi在加載dfm時忽略所有錯誤,編輯源代碼並確保不'檢查dfm到我的源代碼管理系統。

您可以嘗試保持dfm只讀,以避免錯誤地檢查dfm中是否有刪除的控件,但是有一個缺點:每次嘗試保存源代碼時IDE都會提出關於只讀的錯誤文件的性質。如果你像我一樣頻繁地按下Ctrl-S或Shft-Ctrl-S,很快就會變成麻煩。

當我必須更改dfm時,我在文本模式下執行此操作,或者安裝控件,執行dfm更改並提交。之後,我再次釋放卸載控件,並在pas文件上工作,忽略/恢復對dfm的任何更改。

+3

我通常所做的是在「Error Reading Form」對話框中選擇「Cancel」,然後選擇「OK」以關閉下面的「Error creating form:...」對話框。只需兩次點擊或兩次Escape鍵即可。沒有創建表單設計器,我仍然可以編輯並保存.pas文件而不用觸摸.dfm。 –

+1

@TOndrej:啊哈,聽起來不錯。我會在下次嘗試取消。 –

+0

您可以使用類似的情況,以防事件標頭出現不一致(從舊VirtualTreeView組件遷移時發生這種情況,並且事件中有不同的參數),您只需修改源並保存即可。當你按下Save按鈕時,你會看到如下信息:方法XXX的參數與它的聲明不一致。你想刪除它嗎?',如果你選擇'取消'或按'ESC',那麼沒有任何東西被刪除,並且你的文件被成功保存。 – 2011-07-22 12:28:28

1

不,目前沒有合理的解決方法。

我已經要求在未來的某個時間這是Delphi的一個特性;不應該通過打開它們來銷燬這些DFM,也不應該在打開沒有安裝控件的表單時將多個模式對話框詢問是否要銷燬DFM。

最後只有一個實際的解決方案;安裝所有控件。其他任何事情都會讓你發瘋。

+0

誰決定展示一個巨大的對話全部使用相同的消息? –

+0

我不會假設有人想過它。從本質上講,這些問題不會影響您演示一個無關緊要的Delphi RAD工作流程的能力,而且當Delphi應用程序達到一定規模時,以及在多個項目中使用相互排斥的組件集的開發人員時,這些問題會變得癱瘓。爲每個項目管理這些組件集是一個很大的Delphi問題。 –

+0

是的,就像程序管理器可能從來沒有用過51個大型和小型項目的項目組......它有時甚至在你還沒有做任何其他事情時經常崩潰。或者有很多條件定義的單元,不僅在代碼中,而且在uses子句中也是如此。它會在循環中拋出代碼洞察力... –