如何将.NET 4 WinForm应用程序分配给Delphi 7表单的所有者属性?

Wel*_*.59 1 .net c# delphi interop

我需要指定一个.NET 4 Winform应用程序作为Delphi 7表单的所有者.

我在Delphi中创建了一个包含表单的.dll.Delphi .dll导出用于创建和显示表单的方法.

我已经在我的.NET应用程序中成功加载了Delphi .dll,并显示了表单.

现在我需要能够将.NET应用程序(或.NET应用程序的主要形式)指定为Delphi表单的所有者.

我之前创建了一个Delphi应用程序,它通过COM与.NET交互,并使用以下类将Delphi应用程序指定为.NET表单的所有者:

public class WindowHandleWrapper : IWin32Window
{
    public HandleRef m_Handle;

    public IntPtr Handle
    {
        get
        {
            return m_Handle.Handle;
        }
    }

    public WindowHandleWrapper(IntPtr handle)
    {
        m_Handle = new HandleRef(this, handle);
    }
}
Run Code Online (Sandbox Code Playgroud)

Delphi应用程序句柄作为整数传递给WindowHandleWrapper构造函数.

我怀疑解决方案是类似的,例如将句柄作为整数传递给Delphi.但是,表单的Owner属性的Delphi类型是TComponent.我只是不确定如何将.NET句柄指定为Delphi表单的所有者.

有任何想法吗?

Ond*_*lle 6

将WinForm句柄作为参数传递给DLL,并Application.Handle在创建和以模态方式显示表单之前将其分配给它.