4

ユニークな質問があります。Windows XP で Delphi 2007 を使用しています。TPageControl コンポーネントを含むフォームがあります。その PageControl 内に表示する Frame を作成しました。ボタンクリックイベントに基づいて表示される他の多くのフレームを作成します。フレームのタグプロパティを使用して、ボタンが押されたときにタグ番号を汎用関数またはプロシージャに渡して、関数またはプロシージャをすべてのボタンで再利用できるようにする方法はありますか? もう 1 つのアイデアは、tabsheets インデックス プロパティを使用して、それをフレーム タグ番号に一致させることでした。どんな提案も素晴らしいでしょう。前もって感謝します。

4

1 に答える 1

2

次のような、タグ番号をフレームクラスにマップする関数が必要です。

type
  TFrameClass = class of TFrame;

function GetFrameClass(const aClassID: Integer): TFrameClass;
begin
  case aClassID of
    1 : Result := TFrameFoo;
    2 : Result := TFrameBar;
    else Result := nil;
  end;
end;

次に、フレームを作成できます。

var FrClass: TFrameClass;
    Frame: TFrame;
begin
  FrClass := GetFrameClass(btn.Tag);
  if(FrClass <> nil)then begin
     Frame := FrClass.Create(tabsheet);
     Frame.Parent := tabsheet;
  end;
于 2013-01-30T01:12:37.360 に答える