我正在使用Delphi中的MDI应用程序。
我想在我的应用程序的MDI子窗口中显示由其他应用程序(我也构建)生成的交互式视图。
当用户在我的应用中选择特定的视图类型时,它将启动另一个应用的实例,该实例将生成在我的应用的MDI子窗口中显示的一个或多个数据视图。
我希望这很清楚。
答案 0 :(得分:1)
您可以生成其他应用程序,获取与该进程关联的窗口句柄,然后将该窗口句柄的Parent设置为与MDI应用程序中的表单或面板关联的句柄。
查看以下Win32功能......
您可能还需要......
答案 1 :(得分:1)
为什么不编写ActiveX控件?它专为此类工作而设计(例如,考虑Outlook如何使用Word文本编辑器)。此外,通过这条路线,您的应用程序也可以与非Delphi应用程序进行交互。您将能够在MDI窗口中显示非Delphi应用程序,如Word和Excel,并且您的应用程序将能够在非Delphi ActiveX主机(如Word)中显示其内容。
答案 2 :(得分:0)
如果您想模块化您的应用程序,我认为最好使用dll来定义表单。
为此,您可以在dll或dpk中定义表单类,然后从应用程序加载它。
如果您正在使用MDI表单,我建议您使用正常的空MDI表单并在取出边框内显示您的dll表单,如下所示:
DllForm.FormStyle:=fsNormal;
DllForm.BorderStyle:=bsNone;
DllForm.Parent := MDIForm;
DllForm.Align := alClient;
您可以找到here一篇关于从dll加载表单的文章。