创建自定义表单设计器

时间:2009-08-08 08:31:34

标签: delphi delphi-2007 vcl custom-component datamodule

我想在Delphi中创建一个自定义的“数据模块”,这是一个类似(可能是继承的)类的TDataModule,它有一个基于自定义网格的设计界面(每行一个组件,一些属性为列)。这可能吗?我应该从哪里开始?

我目前正在使用Delphi 2007。

3 个答案:

答案 0 :(得分:3)

也许有可能。可以在页面New IDE Building Blocks上找到XML框架设计器的示例。这个例子适用于Delphi 5,但它可能是一个很好的起点。

答案 1 :(得分:2)

尼克霍奇斯指出这里:

Drawing on a DataModule in Delphi

在TDataModule后代上画很难。可能并非不可能,但肯定不值得麻烦。

我会考虑从头开始设计一个全新的TDataModule,这样你就可以完全控制它了。当然可能会做很多工作,但最终会有所回报。

您可以在Classes.pas单元中找到TDataModule类。但这只是代码的运行时部分。其他部分与IDE相关。例如,您可以在BDS 2006的“c:\ Program Files \ Borland \ BDS \ 4.0 \ source \ ToolsAPI \”中找到与ToolsAPI相关的单位。您还可以从TDataModule派生自己的数据模块,并将其注册到RegisterCustomModule(DesignIntf​​.pas)。关于这个问题我不太了解,也许其他人也知道。正如我所说,做那样的事情并不容易。但也许有了这些初始信息,你可以找到你想要的东西。

答案 2 :(得分:0)

完全不像你描述的那样。您不能将可视组件(如网格)放在数据模块上。你需要一个表格或框架。

如果我要尝试像你描述的那样,我会使用一个列表框来保存单个组件的列表,几个按钮和一个选择对话框,用于添加和删除列表中的组件,以及JVCL中的TJvInspector组件用于修改属性。这比试图制作一个适合所有情况的网格要容易得多。