Skip to content

TStyledCategoryButtons - Technical Reference

Overview

TStyledCategoryButtons extends TCategoryButtons with styled button rendering and additional layout options for categorized button lists.

Class Hierarchy

TWinControl
  └─ TCategoryButtons
      └─ TStyledCategoryButtons

Unit

pascal
Vcl.StyledCategoryButtons

Description

TStyledCategoryButtons maintains full compatibility with TCategoryButtons while adding modern styling capabilities, image positioning options, caption alignment, and per-item and per-category style customization.

Key Features

  • Full TCategoryButtons compatibility: All standard properties and events
  • Categorized buttons: Organize buttons into collapsible categories
  • Styled button items: StyleFamily/Class/Appearance for each item
  • Flexible image positioning: Left, Right, Top, Bottom, Center
  • Caption alignment: Left, Center, Right
  • Flat appearance option: Modern flat button style
  • Per-item and per-category styling: Custom styles
  • Notification badges: Badge support for button items

Main Properties

Layout Properties

PropertyTypeDescription
ButtonOptionsTCategoryButtonOptionsLayout options (boFullSize, boShowCaptions, boBoldCaptions, boUsePlusMinus, boCaptionLeftAlign)
ButtonFlowTCategoryButtonFlowButton flow (cbfVertical, cbfHorizontal)
ButtonWidthIntegerWidth of buttons
ButtonHeightIntegerHeight of buttons
ImagePositionTStyledImagePositionImage position relative to caption
CaptionAlignmentTStyledCaptionAlignmentCaption alignment
FlatBooleanFlat button appearance

Styling Properties

PropertyTypeDescription
StyleFamilyTStyledButtonFamilyDefault style family for all items
StyleClassTStyledButtonClassDefault style class for all items
StyleAppearanceTStyledButtonAppearanceDefault appearance for all items
StyleDrawTypeTStyledButtonDrawTypeButton shape
StyleRadiusIntegerCorner radius

Categories and Items

PropertyTypeDescription
CategoriesTButtonCategoriesCollection of button categories
SelectedItemTButtonItemCurrently selected button item
ImagesTCustomImageListImageList for button icons

TButtonCategory Properties

Each category can have:

PropertyTypeDescription
CaptionStringCategory caption
CollapsedBooleanCategory collapsed/expanded state
ItemsTButtonItemsButton items in this category

TButtonItem Properties

Each button item can have:

PropertyTypeDescription
CaptionStringButton caption
ImageIndexTImageIndexImage index
HintStringHint text
EnabledBooleanEnable/disable item
StyleFamilyTStyledButtonFamilyOverride default style family
StyleClassTStyledButtonClassOverride default style class
StyleAppearanceTStyledButtonAppearanceOverride default appearance
NotificationBadgeTNotificationBadgeAttributesBadge configuration

Usage Examples

Basic CategoryButtons

pascal
var
  CatButtons: TStyledCategoryButtons;
  Cat: TButtonCategory;
  Item: TButtonItem;
begin
  CatButtons := TStyledCategoryButtons.CreateStyled(Self,
    BOOTSTRAP_FAMILY,
    btn_primary,
    BOOTSTRAP_NORMAL);
  CatButtons.Parent := Self;
  CatButtons.Align := alLeft;

  Cat := CatButtons.Categories.Add;
  Cat.Caption := 'File Operations';

  Item := Cat.Items.Add;
  Item.Caption := 'Open';
  Item.ImageIndex := 0;
end;

CategoryButtons with Image Positioning

pascal
CatButtons := TStyledCategoryButtons.CreateStyled(Self,
  ANGULAR_LIGHT_FAMILY,
  acl_primary,
  ANGULAR_RAISED);
CatButtons.Parent := Self;
CatButtons.ImagePosition := sipImageLeft;
CatButtons.CaptionAlignment := scaLeft;
CatButtons.ButtonHeight := 40;

Per-Item Styling

pascal
CatButtons := TStyledCategoryButtons.CreateStyled(Self,
  BOOTSTRAP_FAMILY,
  btn_secondary,
  BOOTSTRAP_NORMAL);

// Customize specific items
Cat := CatButtons.Categories[0];
Cat.Items[0].StyleClass := btn_primary;
Cat.Items[1].StyleClass := btn_success;
Cat.Items[2].StyleClass := btn_danger;

See Also

Released under Apache License, Version 2.0.