本文整理自网络,侵删。
TFrame 可以就象其它控件一样,最终使用时是作为控件放在TForm中的,不能单独显示一个 TFrame。那么为什么要TFrame这个控件呢?比如,你有多个Form,其中有一部分界面相同, 此时你就可以将这部分相同的界面做成一个Frame,然后再将Frame放到Form中,这样多个 Form中这些公共界面的代码,只需要一份代码就可以了(就是Frame中的代码)。 你可以先做好Frame,然后在设计时选择“Standard”面板里的Frame控件,然后在Form里点 一下鼠标,此时BCB会弹出一个窗口,让你选择哪个Frame,然后你选择的Frame就放到你的 Form上了。 Frame的作用更象Panel
Delphi中frame的使用!
先创建好frame
1.手动将frame加入到窗体(panel)点一下控件栏里的frame然后再在要加的form里点一下.就可以了.如果有多个frame可以选择
2.动态将frame加入到窗体
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TMyFrame = class of TFrame;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
FCurrentfrmClass: String;
Ffrm: TFrame;
procedure LoadFrameByClassName(FrameClassName: TMyFrame);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
FCurrentfrmClass := '';
end;
procedure TForm1.LoadFrameByClassName(FrameClassName: TMyFrame);
begin
if Assigned(Ffrm) and (not SameText(FrameClassName.ClassName, FCurrentfrmClass)) then
FreeAndNil(Ffrm);
Ffrm := FrameClassName.Create(nil);
Ffrm.Parent := Panel1;
FCurrentfrmClass := FrameClassName.ClassName;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadFrameByClassName(TFrame2);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
LoadFrameByClassName(TFrame3);
end;
end.
相关阅读 >>
Delphi listview高速添加数据
dbgrid的cellclick事件,单击当前行记录的那一行时,不发生
firemonkey下使用stylebook的一些经验
Delphi获取控件界面图像“新招”
Delphi中嵌入汇编检测是否在虚拟机里运行
Delphi 中文姓名 合法性检查
Delphi关于邮箱收信的问题
Delphi string.create(char,count)
Delphi xe7开发的获取网页中字符串的编码是否是utf8
Delphi 让combobox只允许输入数字和回车键以及Delphi key值表
更多相关阅读请进入《Delphi》频道 >>
转载请注明出处:木庄网络博客 » Delphi中Frame和Form有何区别