我正在创建一个没有任何包的dll中的表单。可以通过使用导出的过程调用dll中的表单:
表单显示良好,没有问题。现在,我想让它以poMainFormCenter的方式定位(我希望它始终显示在主窗体上(调用dll的窗体)。
我尝试过使用form :=TfrmAbout.Create(Application.MainForm);等等,但没有成功。
有什么技巧可以帮助吗?
procedure ShowAbout(const AppHandle: THandle); stdcall;
var
aHandle: THandle;
form: TfrmAbout; / my form in some other unit in the dll
begin
aHandle:= Application.Handle;
Application.Handle:= AppHandle;
form :=TfrmAbout.Create(Application);
form.ShowModal;
form.Free;
Application.Handle:= aHandle;
end;
表单显示良好,没有问题。现在,我想让它以poMainFormCenter的方式定位(我希望它始终显示在主窗体上(调用dll的窗体)。
我尝试过使用form :=TfrmAbout.Create(Application.MainForm);等等,但没有成功。
有什么技巧可以帮助吗?
Application
指针而不仅是窗口句柄。虽然这很简单,但不幸的是没有其他方法可行。 - Premature OptimizationApplication
指针。无法将对象从 VCL 的一个实例传递到另一个实例。你需要使用运行时包来解决这个问题。 - David Heffernan