Delphi中Frame和Form有何区别


本文整理自网络,侵删。

 

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》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...