繁体   English   中英

Delphi COM服务器初始化

[英]Delphi COM server initialization

我们有一个Delphi应用程序,它也是一个COM服务器,该应用程序具有主要形式。 当以自动化模式(smAutomation)启动时,我们需要将主窗体创建为父窗体。 由于这个问题范围之外的几个原因,我们无法创建应用程序,然后执行COM方法来重载主表单,即,重载必须在流程的早期-完成主表单创建后立即进行。 感谢想法。

编辑:澄清

// Initialized as as an Application
if COMserver.startmode = smStandalone
begin
   Application.Initialize;
   Application.MainFormOnTaskbar := True;
   Application.CreateForm(TForm1, Form1);
   Application.Run;
End
Else
// Initialized as an automation server
if COMserver.startmode = smAutomation
Begin
// How do I set a Parent window handle property - this is called imediately after the    COM client initializes the server
// how do I modify this call to create Form1 with a parent? 
   Application.CreateForm(TForm1, Form1);
End; 

我可以看到两个选项:

  1. 在Application.CreateForm之后立即设置Form1.ParentWindow:= WHandle。
  2. 如果太晚了,那么您将需要重写TForm1.CreateParams并将其设置在那里。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM