我能在控制台 Delphi 应用程序中使用 DataModule 吗?

4

我可以在控制台Delphi应用程序中使用DataModule表单吗?

我尝试将现有的单位/表单包含到控制台Delphi应用程序中的uses子句中,但是DataModule1被解析为nil(未初始化)。


TDataModule 不是一个窗体。 - kobik
1个回答

8

我发现,通过查看一个表单应用程序,我只需要手动进行初始化:

Application.CreateForm(TDataModule1, DataModule1);

更新

根据评论的建议,我最终实施了以下方案:

DataModule1 := TDataModule1.Create(nil)

或者使用项目选项对话框将数据模块设置为自动创建“表单”,这具有相同的效果。 - Ondrej Kelle
7
我个人不喜欢依赖 .dpr 文件来实现这一点。将那段代码添加到数据模块单元的初始化部分即可。这样可以使该单元自包含。我也看不出为什么要使用 Application.CreateForm。只需调用构造函数即可,如 DataModule1 := TDataModule1.Create(Application) - David Heffernan
我不明白,在控制台应用程序中使用“Application”?这不是实际上违背了控制台应用程序的目的吗? - Jerry Dodge
2
@David,@Jerry 我们不需要涉及Application对象。只需简单地使用DataModule1 := TDataModule1.Create(nil),并在完成后使用DataModule1.Free即可。 - kobik
@kobik 这就是我会这样做的。 - David Heffernan
1
正是我的观点,为什么在控制台应用程序中要依赖于“Application”呢? - Jerry Dodge

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