我从DLL内部创建的表单有一个小问题。Delphi XE2将Application.MainForm.Handle分配给DLL中的Application.Handle
基本上,当一个dll的窗体(Form1)显示时(我认为它必须保持在最前面),并且打开另一个窗体(Form2),它是主应用程序的一部分(即不生活在dll里面)。如果将光标放在Form2上的控件上以便显示提示,Form2将立即放在Form1后面。
这只发生在MainFormOnTaskBar是真的。目前,我们将主应用程序的Application.Handle传递给DLL并将其分配给DLL的Application.Handle。
我已设法通过将Application.MainForm.Handle传递给要分配给DLL中的Application.Handle的DLL来解决此问题。
这是安全吗?有没有人知道解决这个问题的正确方法?
谢谢你。我只是想知道是否需要将MainFormOnTaskBar属性设置为包含在DLL中的应用程序对象的真? – 2012-03-05 20:58:10
既然DLL中的应用程序对象没有主窗体,那么我想我们不需要也不应该将MainFormOnTaskBar设置为true,就应用程序对象 – 2012-03-06 01:06:43
达成一致,不需要这样做,并不是说它实际上很重要因为我认为Application.MainForm没有被分配,因为你永远不会调用Application.CreateForm。 – 2012-03-06 05:54:39