一.主要代码

   a)主窗体

type
  TFrameClass  =  class    of    TFrame;

  TFrmMain = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    FCurrentfrmClassName:  string;
    FCurrentfrm:  TFrame;
    procedure    LoadFrameByClassName(theFrameClass:    TFrameClass);
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation

{$R *.dfm}
procedure TFrmMain.FormCreate(Sender: TObject);
begin
    FCurrentfrmClassName:='';
    FCurrentfrm:=nil;
end;

procedure TFrmMain.LoadFrameByClassName(theFrameClass: TFrameClass);
begin
   if Assigned(FCurrentfrm)and( not SameText(theFrameClass.ClassName,FCurrentfrmClassName)) then
       FreeAndNil(FCurrentfrm);

   FCurrentfrm:=theFrameClass.Create(nil);
   FCurrentfrm.Parent:=Panel1;
   FCurrentfrm.Left:=(Panel1.Width-FCurrentfrm.Width)div 2;
   FCurrentfrm.Top:=(Panel1.Height-FCurrentfrm.Height)div 2;
   
   FCurrentfrmClassName:=theFrameClass.ClassName;
end;

procedure TFrmMain.Button1Click(Sender: TObject);
begin
   Self.LoadFrameByClassName(TFrmFirstFrame);
   ShowMessage('显示第一个Frame!');
end;

procedure TFrmMain.Button2Click(Sender: TObject);
begin
   Self.LoadFrameByClassName(TFrmSecondFrame);
   ShowMessage('显示第二个Frame!');
end;

end.

 

   b)第一个Frame

type
  TFrmFirstFrame = class(TFrame)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}

end.

   c)第二个Frame

type
  TFrmSecondFrame = class(TFrame)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}

end.

 

二.测试

   显示第一个Frame

    Delphi中Frame的使用

   显示第二个Frame

    Delphi中Frame的使用

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-22
  • 2021-06-25
  • 2021-10-25
猜你喜欢
  • 2021-07-18
  • 2021-12-08
  • 2022-12-23
  • 2021-05-16
  • 2021-07-03
  • 2022-12-23
相关资源
相似解决方案