0

だから基本的にここに私がやったことです:

新しい 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 内からこのタブ (およびいくつかの子コンポーネント) を作成するにはどうすればよいでしょうか?

4

1 に答える 1