如何在C ++ Builder中直观地设计组件?

时间:2010-02-26 08:27:06

标签: c++ delphi components c++builder

我已经离开C ++几年了,现在正在做AS3 / Flex工作。我已经习惯于能够创建一个组件并将其置于设计模式中而且没有那么大惊小怪。我正在努力让我的头脑围绕C ++ Builder做同样的事情。

我以前为C ++ Builder编写了很多组件,但它们都没有可视化。我现在想做的是为客户搜索创建一个组件,为订单处理创建另一个组件,因为我希望能够动态创建这些组件的新实例。我不想做的是必须在代码中手动放置每个组件,如dbgrid和搜索字段。我想在设计模式下执行此操作(以及设置其属性)。

我该如何解决这个问题?我浏览了其他Delphi组件的源代码,我注意到它们有dfm文件,这似乎是我需要的。我如何在C ++ Builder中执行此操作?我看到的唯一选择是添加一个新表单,如果我想要一个dfm,但这不是我想要的,因为我的组件将基于TPanel。

有没有办法做到这一点,还是我必须在没有视觉参考的代码中使用它?

追求DFM的想法我今天早上做了一个测试,在那里我创建了一个基于TPanel的组件,并为它添加了一个新的表单,我在组件的构造函数中创建了它。在设计模式下,我将表单边框设置为none,并在其上放置一个网格。这一切看起来都很好,直到我将组件放在我的应用程序中,此时它看起来像一个带有标准外观的面板,并且缺少网格。如果我运行应用程序,面板会按预期显示,无边框和网格。出于某种原因,DFM似乎在设计模式中被忽略。

如果您知道比使用组件更好的方法,那么请给我一些指示。

除了文字之外,任何帮助和建议都将受到赞赏

2 个答案:

答案 0 :(得分:4)

您可能需要查看frames(查找“Frame objects”)。它们是“子表单”,您可以直观地设计,然后放在表单上。

答案 1 :(得分:4)

就像FYI项目一样,您也可以将面板放在表单上,​​在其上放置任何其他控件,定位它们,设置标题等。

现在,单击面板将其选中,然后从IDE的主菜单中使用Component-> Create Component Template。这将创建一个可以作为组件安装的单元,该组件将面板及其子控件(作为单个组件)添加到IDE的组件面板中。

当然,您可以像修改任何其他组件源一样修改该新组件的源。