[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] Reference for unit 'Forms' (#lcl)

TFrame

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Frames can be designed like Forms and used like custom controls, without much coding or installation in the IDE.

Declaration

Source position: forms.pp line 351

type TFrame = class(TCustomFrame)

public

  constructor Create(); override;

  

Constructor for the class instance.

published

  property Align: TAlign;

  

Specifies the placement of the control on its Parent control.

  property Anchors: TAnchors;

  

The set of anchor definitions for this control.

  property AutoScroll: Boolean;

  

Indicates whether scroll bars are automatically displayed or hidden when needed.

  property AutoSize: Boolean;

  

Allows automatic adjustment of the size for the control, according to its content.

  property BiDiMode: TBiDiMode;

  

Indicates whether text controls use in bi-directional reading.

  property BorderSpacing: TControlBorderSpacing;

  

Determines the inner and outer border spacing for this control.

  property ChildSizing: TControlChildSizing;

  

Provides settings used to resize and align child controls using a tabular layout.

  property ClientHeight: Integer;

  

The height for the client area on the control.

  property ClientWidth: Integer;

  

The width of the client area for the control.

  property Color: TColor;

  

The background color for the control.

  property Constraints: TSizeConstraints;

  

Contains the minimum and maximum Width and Height for the control.

  property DesignTimePPI: Integer;

  

Design-time Pixels Per Inch for the designer surface.

  property DockSite: Boolean;

  

Allows controls to be drag-and-dock-ed into this control.

  property DragCursor: TCursor;

  

The cursor shape shown during a drag operation.

  property DragKind: TDragKind;

  

Indicates the action performed for a drag operation: drag-and-drop or drag-and-dock.

  property DragMode: TDragMode;

  

Determines how a drag operation is started for the control.

  property Enabled: Boolean;

  

Determines whether the control responds to mouse or keyboard input.

  property Font: TFont;

  

The font to be used for text display in this control.

  property LCLVersion: string; [rws]

  

LCL version number for the frame instance.

  property OnClick: TNotifyEvent;

  

Notification handler for mouse clicks.

  property OnConstrainedResize: TConstrainedResizeEvent;

  

This handler can supply specific Constraints (size limits), when the control is resized.

  property OnContextPopup: TContextPopupEvent;

  

Invoked when a context-sensitive pop-up menu is requested.

  property OnDblClick: TNotifyEvent;

  

Event handler signalled when a mouse double click occurs in the control.

  property OnDockDrop: TDockDropEvent;

  

Event handler signalled for the drop of a control to be docked.

  property OnDockOver: TDockOverEvent;

  

Event handler signalled when a control is moved over a docksite; determines whether the drop event is accepted or rejected.

  property OnDragDrop: TDragDropEvent;

  

Event handler signalled when an object is dropped onto the control.

  property OnDragOver: TDragOverEvent;

  

Event handler signalled when a control is dragged over the control instance.

  property OnEndDock: TEndDragEvent;

  

Event handler signalled for the end of a drag-dock operation.

  property OnEndDrag: TEndDragEvent;

  

Event handler signalled for the end of a drag-drop operation.

  property OnEnter: TNotifyEvent;

  

Event handler signalled when the control receives focus.

  property OnExit: TNotifyEvent;

  

Event handler signalled when the control loses focus.

  property OnGetSiteInfo: TGetSiteInfoEvent;

  

Provides information about the DockSite for the control.

  property OnMouseDown: TMouseEvent;

  

Event handler signalled when a mouse down event is handled for the control.

  property OnMouseEnter: TNotifyEvent;

  

Event handler signalled when the mouse pointer has entered the control.

  property OnMouseLeave: TNotifyEvent;

  

Event handler signalled when the mouse pointer has left the control.

  property OnMouseMove: TMouseMoveEvent;

  

Event handler signalled when the mouse pointer is moved in the control.

  property OnMouseUp: TMouseEvent;

  

Event handler signalled when a mouse up event is handled for the control.

  property OnMouseWheel: TMouseWheelEvent;

  

Event handler for mouse wheel turned.

  property OnMouseWheelDown: TMouseWheelUpDownEvent;

  

Event handler signalled for a downward movement of the mouse wheel.

  property OnMouseWheelUp: TMouseWheelUpDownEvent;

  

Event handler signalled for an upward movement of the mouse wheel.

  property OnMouseWheelHorz: TMouseWheelEvent;

  

Event handler signalled for a horizontal movement of the mouse wheel.

  property OnMouseWheelLeft: TMouseWheelUpDownEvent;

  

Event handler signalled for a leftward movement of the mouse wheel.

  property OnMouseWheelRight: TMouseWheelUpDownEvent;

  

Event handler signalled for a rightward movement of the mouse wheel.

  property OnResize: TNotifyEvent;

  

Notification handler for a resize of the control.

  property OnStartDock: TStartDockEvent;

  

Event handler for the start of a docking operation.

  property OnStartDrag: TStartDragEvent;

  

Event handler signalled for the start of a dragging operation.

  property OnUnDock: TUnDockEvent;

  

Event handler signalled before a control is undocked from its DockSite.

  property ParentBackground: Boolean;

  

Indicates if the control uses the background from the parent.

  property ParentBiDiMode: Boolean;

  

Indicates whether the BiDiMode settings in the Parent control are used.

  property ParentColor: Boolean;

  

Use the Color from the Parent control, when enabled.

  property ParentFont: Boolean;

  

Indicates if the Font from the Parent control is used in the control.

  property ParentShowHint: Boolean;

  

If True, the value of ShowHint for the control will be the same as the one from the Parent. Default is True.

  property PopupMenu: TPopupMenu;

  

A context-sensitive menu that pops up when the right mouse button is clicked over this control.

  property Scaled: Boolean;

  

Indicates if the design surface is scaled to reflect changes in display density (Pixels Per Inch).

  property ShowHint: Boolean;

  

Enables Hint display for the control.

  property TabOrder: TTabOrder;

  

Indicates the navigation order for the control when the user presses the Tab or Shift+Tab key.

  property TabStop: Boolean;

  

Allows the user to navigate to / from the control by pressing the Tab or Shift+Tab keys.

  property Visible: Boolean;

  

Allows the control, and all of its children, to be displayed or hidden.

end;

Inheritance

TFrame

  

Frames can be designed like Forms and used like custom controls, without much coding or installation in the IDE.

|

TCustomFrame

  

The base type for TFrame.

|

TCustomDesignControl

  

Provides a designer surface for scaling and layout of its child controls.

|

TScrollingWinControl

  

Implements a windowed control with scroll bars.

|

TCustomControl

  

The base class for windowed controls which paint themselves.

|

TWinControl

  

Implements a windowed control which can contain other child controls.

|

TControl

  

The base class for visible controls.

|

TLCLComponent

  

The base class for LCL components which have an associated widget.

|

TComponent,IUnknown,IInterfaceComponentReference

|

TPersistent,IFPObserved

|

TObject

Description

TFrame is a TCustomFrame descendant which implements a named container for related components. Groups of controls can be place on a frame, and re-used in your applications.

A Frame has behavior very similar to a Form. Their unique ability is that they can be embedded into forms or other frames in the designer. Like forms, they are stored in two separate files: the code is stored in a .pas unit file, and the design is stored in a .lfm file.

Frames can be created and designed in the Lazarus IDE by creating a new Frame module, and using the unit in your application. An existing frame can be added using the TFrame component on the Standard tab in the Lazarus IDE; you will be prompted for the TFrame class to use for the component.

Frames can be created and designed in the Lazarus IDE by creating a new Frame module, and using the unit in your application. An existing frame can be added using the TFrame component on the Standard tab in the Lazarus IDE; you will be prompted for the TFrame class to use for the component.

Frames can also be created in code at run-time. They do not have to be installed in the Lazarus IDE. For example:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    GroupBox1: TGroupBox;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
    Frame: TFrame;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation
uses
  Unit2{TFrame1}, Unit3{TFrame2}, Unit4{TFrame3};

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  Frame := TFrame1.Create(GroupBox1);
  Frame.Parent := GroupBox1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(Frame) then
  begin
    Frame := TFrame1.Create(GroupBox1);
    Frame.Parent := GroupBox1;
  end else if Frame is TFrame1 then begin
    Frame.Free;
    Frame := TFrame2.Create(GroupBox1);
    Frame.Parent := GroupBox1;
  end else if Frame is TFrame2 then begin
    Frame.Free;
    Frame := TFrame3.Create(GroupBox1);
    Frame.Parent := GroupBox1;
  end else begin
    FreeAndNil(Frame);
  end;
end;

end.

One drawback is that complex inheritance hierarchies for TFrame classes can be problematic; they do not propagate changes to all derived frames in a multi-level inheritance tree.

TFrame contains a new property which indicates the LCL (Lazarus Component Library) version number used in the container. An overridden constructor is also introduced to initialize the value in the LCLVersion property. TFrame sets the visibility for properties defined in ancestor classes.


Version 3.2 Generated 2024-02-25 Home