Download Now

    Reference THeaderBar

    Declared in Codebot.Controls.Scrolling.pas on line 93

    THeaderBar is a row of resizable column headers
      THeaderBar = class(TSurfaceGraphicControl)
      protected
        procedure CaptureChanged; override;
        function ThemeAware: Boolean; override;
        procedure Draw; override;
        { Invoke OnColumnClick }
        procedure ColumnClick(Column: THeaderColumn); virtual;
        { Invoke OnColumnResize }
        procedure ColumnResize(Column: THeaderColumn); virtual;
        { Invoke OnColumnSelect }
        procedure ColumnSelect(Column: THeaderColumn); virtual;
        procedure MouseLeave; override;
        procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
        procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
        procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
      public
        { Create a new header bar }
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
        { Return the bounds of a column }
        function GetColumnRect(Index: Integer): TRectI;
        { Return the bounds of the resize grip of a column }
        function GetSizingRect(Index: Integer): TRectI;
        { Return the widths of the visible columns }
        function GetColWidths: IntArray;
        { The index of the column under the mouse or -1 }
        property HotIndex: Integer read GetHotIndex;
        { The horizontal scroll offset }
        property ScrollLeft: Integer read FScrollLeft write SetScrollLeft;
        { The total width of the visible columns }
        property ScrollWidth: Integer read GetScrollWidth;
        { The selected column }
        property Selected: THeaderColumn read FSelected write SetSelected;
      published
        { The columns }
        property Columns: THeaderColumns read FColumns write SetColumns;
        { When true the column under the mouse is highlighted }
        property HotTrack: Boolean read FHotTrack write SetHotTrack default True;
        property Align;
        property Anchors;
        property AutoSize;
        property BorderSpacing;
        property Constraints;
        property Color;
        property DragCursor;
        property DragMode;
        property Enabled;
        property ParentShowHint;
        property PopupMenu;
        property ThemeName;
        property ShowHint;
        property Visible;
        { OnColumnClick is invoked when a column is clicked }
        property OnColumnClick: THeaderColumnEvent read FOnColumnClick write FOnColumnClick;
        { OnColumnResize is invoked when a column is resized }
        property OnColumnResize: THeaderColumnEvent read FOnColumnResize write FOnColumnResize;
        { OnColumnSelect is invoked when a column is selected }
        property OnColumnSelect: THeaderColumnEvent read FOnColumnSelect write FOnColumnSelect;
        property OnChangeBounds;
        property OnClick;
        property OnDblClick;
        property OnDragDrop;
        property OnDragOver;
        property OnEndDrag;
        property OnDraw;
        property OnMouseDown;
        property OnMouseEnter;
        property OnMouseLeave;
        property OnMouseMove;
        property OnMouseUp;
        property OnMouseWheel;
        property OnMouseWheelDown;
        property OnMouseWheelUp;
        property OnResize;
        property OnStartDrag;
      end;

    See also

    TRectI in Codebot.Graphics.Types.pas
    TSurfaceGraphicControl in Codebot.Controls.pas