在DelphiXE中,是否有可能“按需/有选择性地”禁用表单设计器,并仅在需要时使用表单/类的代码,以防控件未安装在IDE中?
我认为答案是否定的,但我使用的解决方法是编辑DFM文件,剪切掉不存在的组件,并将其粘贴到FormCreate事件中进行实例化。DFM中的所有属性都在那里,所以稍微编辑一下就可以很好地解决问题。
不,你不能有选择性地禁用它。我通常的做法(因为我在大多数IDE中几乎没有安装控件)是打开表单,告诉Delphi在加载dfm时忽略所有错误,编辑源代码并确保我不将dfm检入我的源代码控制系统。
你可以尝试将dfm设置为只读,以避免误检入已删除控件的dfm,但这也有一个缺点:每次尝试保存源文件时,IDE都会出现关于文件只读的错误。如果你像我一样经常按Ctrl-S或Shft-Ctrl-S,那么很快就会变得非常烦人。
当我必须更改dfm时,我会在文本模式下进行操作,或者安装控件,进行dfm更改并提交。之后,我又可以自由地卸载控件,只需处理pas文件,忽略/还原对dfm的任何更改。
目前还没有合理的解决方法。
我曾经要求 Delphi 在未来的某个时候加入这个功能:DFM 不应该在打开它们时被销毁,也不应该在打开一个没有安装控件的窗体时默认弹出多个模态对话框询问是否要销毁你的 DFM。
最终只有一个实际的解决方案;安装所有的控件。其他任何方法都只会让你发疯。