多个对话框在一个dfm
multiple dialogs inside one dfm
我正在开发一个带有许多小的自定义对话框的应用程序。
这些对话框可以提供选择、显示图形或提供额外的接口。大多数情况下,它们只需要很少的标记代码,并且有很少的子元素。目前我正在使用embarcadero'c XE2 RAD Studio的c++ Builder,它与VCL一起工作,并为每个表单生成。dfm文件,。h文件和。cpp文件。现在我想保持一个概述的文件产生和合并,例如多个小对话框的。dfm文件。(也可能是。cpp和。h)。但是,我还想使用c++ -Builder的VCL设计器。
是否有一种方法来合并。dfm文件,仍然有IDE的设计器像往常一样工作?
或者我应该在运行时动态地生成这些对话框?
现在我想保持一个概述的文件产生和合并,例如多个小对话框的。dfm文件。(也可能是。cpp和。h)。但是,我还想使用c++ -Builder的VCL设计器。
是否有一种方法来合并。dfm文件,仍然有IDE的设计器像往常一样工作?
可以(但不推荐)将设计时生成的事件处理程序实现从一个.cpp文件移动到另一个.cpp文件(但不要将它们的声明移动到.h文件中)。因此,可以想象,在所有事件处理程序实现中使用1 .cpp文件,应用程序将正常工作。我在我的一个项目中做了相反的事情-我有一个TForm
,上面有很多事件处理程序,所以我把它们移动到按功能分组的单独的.cpp文件中(是的,我应该使用TFrame
来管理,但我不能自由地在这个开发阶段改变它)。
有一个副作用,但是-如果你试图在对象检查器中双击一个指定的事件,如果你移动它,它将无法找到处理程序的实现代码。
然而,对于DFM,在设计时创建的每个TForm
, TFrame
和TDataModule
类必须有其自己的单独的DFM。IDE和DFM流系统都期望这样。最终可执行文件中的DFM资源由类名标识,当将DFM加载到单个根对象实例中时,DFM流系统从头到尾读取整个DFM资源。此外,DFM数据格式不支持在单个资源流中存在多个DFM。
所以不能合并多个dfm。
或者我应该在运行时动态地生成这些对话框?
是的。或者让对话框使用单独的DFM资源。如果您的对话框的内容真的像您所说的那样小,那么您的可执行文件的开销应该是最小的。
您可以使用"legacy"TNotebook组件(Win3.1"页面)在一个文件中模拟许多小对话框;它的工作原理就像没有TAB按钮的页面控制。在组件中创建所需数量的页面,并在表单的构造函数中激活所需的页面。
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 从链接列表c++中删除一个项目
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '