• Delphi TFrame[1] 介绍


    Delphi TFrame[1] 介绍

    TFrame是组件的容器;它可以嵌套在窗体或其他框架中。

    单元:Forms

    { TFrame }
    
      TFrame = class(TCustomFrame)
      published
        property Align;
        property Anchors;
        property AutoScroll;
        property AutoSize;
        property BiDiMode;
        property Constraints;
        property DockSite;
        property DragCursor;
        property DragKind;
        property DragMode;
        property Enabled;
        property Color nodefault;
        property Ctl3D;
        property Font;
        property ParentBackground default True;
        property ParentBiDiMode;
        property ParentColor;
        property ParentCtl3D;
        property ParentFont;
        property ParentShowHint;
        property PopupMenu;
        property ShowHint;
        property TabOrder;
        property TabStop;
        property Visible;
        property OnCanResize;
        property OnClick;
        property OnConstrainedResize;
        property OnContextPopup;
        property OnDblClick;
        property OnDockDrop;
        property OnDockOver;
        property OnDragDrop;
        property OnDragOver;
        property OnEndDock;
        property OnEndDrag;
        property OnEnter;
        property OnExit;
        property OnGetSiteInfo;
        property OnMouseDown;
        property OnMouseMove;
        property OnMouseUp;
        property OnMouseWheel;
        property OnMouseWheelDown;
        property OnMouseWheelUp;
        property OnResize;
        property OnStartDock;
        property OnStartDrag;
        property OnUnDock;
      end;
    

    描述:

    • 当你创建Frames时,它们被实现为TFrame的后代。
    • Frame 和 Form 一样,是其他组件的容器。它使用与Form 相同的所有权机制来自动实例化和销毁其上的组件,并使用相同的父子关系来同步组件属性。
    • 但是Frame 可以嵌套在Form 或其他框架中,并且它们可以保存在Component面板上,以便于重用。
    • 在创建并保存Frames之后,它继续作为一个单元运行,并从它包含的组件(包括其他Frames )中继承更改。此外,嵌入式Frame 继续继承对其派生的 Frame 所做的更改。
    • Frame 对于组织应用程序中多个位置使用的控件组非常有用。例如,如果你有一个在多个窗体上使用的位图,你可以把它放在一个框架中,并且应用程序的资源中只包含该位图的一个副本。您还可以描述一组编辑字段,这些字段用于编辑带有框架的表,并在需要向表中输入数据时使用它们。

    如何使用和修改

    • 当将Frames拖放到窗体或其他容器上时,Delphi声明一个从所选Frames派生的新类。(类似地,当你向一个项目添加一个新表单时,Delphi会声明一个从TForm继承而来的新类。)
    • 这意味着后来对原始(祖先)Frames的更改会传播到嵌入Frames,但对嵌入Frames的更改不会向后传播到祖先Frames。
    • 例如,假设您想要组装一组数据访问组件和数据感知控件,以便在多个应用程序中重复使用。实现这一目的的一种方法是将组件收集到组件模板中;但是,如果您开始使用模板,后来改变了您对控件的安排的想法,您将不得不返回并手动更改放置模板的每个项目。
    • 另一方面,如果您将数据库组件放入一个框架中,那么以后只需要在一个地方进行更改;当重新编译项目时,对原始框架的更改会自动传播到其嵌入的子代。同时,您可以自由修改任何嵌入Frames,而不影响原始Frames或它的其他嵌入后代Frames。修改嵌入式框架的唯一限制是不能向其添加组件。
    • 除了简化维护之外,框架还可以帮助您更有效地使用资源。例如,要在应用程序中使用位图或其他图形,可以将该图形加载到TImage控件的Picture属性中。
    • 但是,如果在一个应用程序中重复使用相同的图形,那么在窗体上放置的每个Image对象都会导致该图形的另一个副本被添加到窗体的资源文件中。(这是真的,即使你设置TImage。图片一次,并将Image控件保存为组件模板。)
    • 一个更好的解决方案是将Image对象放到一个框架上,将图形加载到其中,然后在您希望图形出现的地方使用该框架。这样可以生成更小的表单文件,而且还可以通过修改原始帧上的Image来在任何地方更改图形。

     如何分享

    • 您可以通过以下两种方式与其他开发人员共享框架:
      • 将框架添加到对象存储库中。
      • 分配框架的单位(.pas)和形式(。DFM或.xfm)文件。
    • 要向存储库添加框架,请打开包含该框架的任何项目,在窗体设计器中右键单击,然后选择“添加到存储库”。有关更多信息,请参见使用对象存储库
    • 如果你将一个帧的单元和表单文件发送给其他开发人员,他们可以打开它们并将它们添加到Component面板中。如果框架中嵌入了其他框架,他们将不得不将其作为项目的一部分打开。

    创建时间:2021.12.16  更新时间:

    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你所有帮助,谢谢!
  • 相关阅读:
    linux命令行挂载NTFS文件系统的移动硬盘
    windows 修改鼠标滚轮自然滚动
    spark sql 的metastore 对接 postgresql
    ubuntu 14.04 源码编译postgresql
    spark sql 对接 HDFS
    部署spark 1.3.1 standalong模式
    perl 打开二进制文件,并拷贝内容
    ubuntu 14 安装XML::Simple 模块
    linux 搭建unixODBC ,并对接 PostgreSQL 9.3.4
    sed 删除指定行
  • 原文地址:https://www.cnblogs.com/guorongtao/p/15696653.html
Copyright © 2020-2023  润新知