だから基本的にここに私がやったことです:
新しい FMHD アプリケーションを作成し、TTabControl とボタンをドロップしました。次に、インターフェイス IFoo を設計しました。簡単にするために、プロシージャが 1 つしかないと仮定しましょう。
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;
忘れ物がありましたら、大変申し訳ありません。正確な情報源は今のところ手元にありません。
このメソッドは、フォームのボタンが押されたときに呼び出されます。
しかし、何も起こりません。
そこで、このメソッドを TForm1 クラスに入れました。今呼び出すと、タブが作成されます。
では、アプリケーションのメイン フォームの DLL 内からこのタブ (およびいくつかの子コンポーネント) を作成するにはどうすればよいでしょうか?