【发布时间】:2010-11-17 21:57:09
【问题描述】:
我想在 Delphi 中创建一个自定义的“数据模块”,一个类似 TDataModule 的(可能是继承的)类,它有一个基于自定义网格的设计界面(每行一个组件,一些属性作为列)。这可能吗?我应该从哪里开始?
我目前使用的是 Delphi 2007。
【问题讨论】:
标签: delphi delphi-2007 vcl custom-component datamodule
我想在 Delphi 中创建一个自定义的“数据模块”,一个类似 TDataModule 的(可能是继承的)类,它有一个基于自定义网格的设计界面(每行一个组件,一些属性作为列)。这可能吗?我应该从哪里开始?
我目前使用的是 Delphi 2007。
【问题讨论】:
标签: delphi delphi-2007 vcl custom-component datamodule
正如尼克霍奇斯在这里指出的那样:
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)。我对这个主题了解不多,也许其他人知道。正如我所说,做这样的事情并不容易。但也许有了这些初步信息,你就能找到你想要的。
【讨论】:
也许有可能。可以在页面New IDE Building Blocks 上找到 XML 框架设计器的示例。这个例子适用于 Delphi 5,但它可能是一个很好的起点。
【讨论】:
不可能完全按照你的描述。您不能在数据模块上放置像网格这样的可视化组件。你需要一个表格或框架。
如果我要尝试像您所描述的那样,我会使用一个列表框来保存单个组件的列表、几个按钮和一个用于从列表中添加和删除组件的选择对话框,以及JVCL 中的 TJvInspector 组件,用于修改属性。这比尝试制作一个千篇一律的网格来处理这种情况要容易得多。
【讨论】: