Delphi在页面控制中按标签号显示框架

时间:2013-01-30 00:30:19

标签: delphi delphi-2007

我有一个独特的问题。我在Windows XP上使用Delphi 2007。我有一个带有TPageControl组件的表单。我创建了一个我想在该PageControl中显示的Frame。我将创建许多其他框架,这些框架将根据按钮点击事件显示。无论如何都要使用框架的标签属性,这样当按下按钮时,标签编号可以传递到通用功能或程序中,以便可以为所有按钮重复使用这些功能或程序。另一个想法是使用tabheets index属性并将其与帧标记号匹配。任何建议都会很棒。提前谢谢。

1 个答案:

答案 0 :(得分: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;