所以基本上这就是我所做的:
我制作了一个新的 FMHD 应用程序并在其上放置了一个 TTabControl 和一个 Button。然后我设计了一个接口IFoo。为了简单起见,我们假设它只有一个过程:
type
IFoo = interface
['{D035-N07-M4773R-...}']
procedure makeTab(tc : TTabControl);
End;
我在 DLL 中实现了这个接口。DLL 通过 LoadLibrary 加载并导出
function getFoo : IFoo;
MakeTab 基本上创建一个 TTabItem 并将 tc 设置为它的父级:
procedure TFoo.makeTab(tc : TTabControl);
var
tab
: TTabItem;
begin
tab := TTabItem.Create(tc);
tab.text := 'Hi, I am Tab';
tab.Parent := tc;
// ...
end;
如果我忘记了什么,我很抱歉。目前我没有确切的消息来源。
当窗体上的 Button 被按下时调用此方法。
但什么也没有发生。
所以我把这个方法放到了我的 TForm1 类中。如果我现在调用它,则会创建一个选项卡。
那么如何从应用程序主窗体的 DLL 中创建此选项卡(和几个子组件)?