创建自定义表单设计器

3
我希望在Delphi中创建一个自定义的“datamodule”,类似于TDataModule(可能是继承的),它将具有基于网格的自定义设计界面(每行一个组件,一些属性作为列)。这是否可行?我应该从哪里开始?
我目前正在使用Delphi 2007。
3个回答

3
也许是可能的。可以在New IDE Building Blocks页面找到一个XML框架设计师的示例。虽然这个示例是为Delphi 5设计的,但它可能是一个很好的起点。

谢谢,这让我走上了正确的轨道,希望尽管内容还相当不完整。 - undefined

2
如Nick Hodges在这里指出的那样:在Delphi中绘制DataModule,在TDataModule后代上进行绘制可能会很困难。可能不是不可能,但肯定不值得麻烦。
我建议从头开始设计一个全新的TDataModule,这样你就可以完全控制它。当然,这可能需要大量的工作,但最终会得到回报。
你可以在Classes.pas单元中找到TDataModule类。但这只是代码的运行时部分。其他部分与IDE相关。例如,在“c:\Program Files\Borland\BDS\4.0\source\ToolsAPI\”中可以找到与ToolsAPI相关的单元,比如BDS 2006。你还可以从TDataModule派生自己的数据模块,并使用RegisterCustomModule(DesignIntf.pas)进行注册。我对这个主题了解不多,也许其他人知道更多。正如我所说,要做这样的事情并不容易。但也许有了这些初步信息,你可以找到想要的东西。

3
尼克正在谈论如何在设计时为TDataModule绘制背景。数据模块是非可视控件,无法在运行时显示出来。 - undefined
你有没有关于如何设计全新的TDataModule的指导?我觉得当前的TDataModule设计器的源代码是不可用的。 - undefined

0

按照你的描述,这是不可能的。在数据模块上无法放置像网格这样的可视组件。你需要一个表单或框架来实现。

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


我不是在考虑可视化组件,而是针对非可视化组件的TDataModule替代方案。我觉得我可以处理问题的用户界面部分,但是我不知道如何将这样的东西与Delphi集成,以便我可以在设计时创建TMyOwnDataModule并添加新组件。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接