Delphi中Frame的使用


一.主要代碼

   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

   

   顯示第二個Frame

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM