Additional Controls

The Additional tab provides enhanced visual and input controls that extend the standard set with graphics, grids, and specialized editors.

TBitBtn CT_BITBTN = 12

A button that displays both a caption and a glyph (bitmap icon). Ideal for toolbars and action buttons.

PropertyTypeDefaultDescription
cTextString"BitBtn"Button caption
cGlyphString""Path to glyph bitmap image
nGlyphAlignNumeric0Glyph position: 0=Left, 1=Right, 2=Top, 3=Bottom
nSpacingNumeric4Spacing between glyph and text (pixels)
nWidth, nHeightNumeric100, 30Size
EventCategoryDescription
OnClickActionButton clicked
OnEnterFocusControl received focus
OnExitFocusControl lost focus
PlatformNative Widget
WindowsBUTTON (BS_BITMAP | BS_PUSHBUTTON)
macOSNSButton (NSBezelStyleTexturedSquare + image)
LinuxGtkButton + GtkImage
// BitBtn with glyph
@ 10, 10 BITBTN oBtn PROMPT "Save" OF oForm GLYPH "save.bmp" SIZE 100, 30
oBtn:OnClick := { || SaveRecord() }

TSpeedButton CT_SPEEDBTN = 27

Flat button designed for toolbars. Can act as a toggle and does not receive focus.

PropertyTypeDefaultDescription
cGlyphString""Glyph bitmap path
lFlatLogical.T.Flat appearance (no border until hover)
lDownLogical.F.Pressed/toggle state
nGroupIndexNumeric0Group for mutual exclusion (0 = none)
lAllowAllUpLogical.F.Allow all buttons in group to be unpressed
EventCategoryDescription
OnClickActionButton clicked
PlatformNative Widget
WindowsBUTTON (BS_OWNERDRAW, flat rendering)
macOSNSButton (NSBezelStyleRoundRect, borderless)
LinuxGtkToggleButton (flat relief)
// Toolbar speed buttons with mutual exclusion
@ 2, 2 SPEEDBTN oBold GLYPH "bold.bmp" OF oToolbar GROUP 1 SIZE 24, 24
@ 2, 28 SPEEDBTN oItalic GLYPH "italic.bmp" OF oToolbar GROUP 1 SIZE 24, 24

TImage CT_IMAGE = 14

Displays a bitmap, JPEG, PNG, or GIF image on a form.

PropertyTypeDefaultDescription
cFileNameString""Path to image file
lStretchLogical.F.Stretch image to fit control
lProportionalLogical.F.Maintain aspect ratio when stretching
lCenterLogical.F.Center image within control
nWidth, nHeightNumeric100, 100Size
EventCategoryDescription
OnClickActionImage clicked
OnDblClickActionImage double-clicked
PlatformNative Widget
WindowsSTATIC (SS_BITMAP | SS_REALSIZECONTROL)
macOSNSImageView
LinuxGtkImage
// Display a logo image
@ 10, 10 IMAGE oLogo FILENAME "logo.png" OF oForm SIZE 200, 80 STRETCH

TShape CT_SHAPE = 15

Draws geometric shapes (rectangle, circle, ellipse, rounded rectangle) on a form.

PropertyTypeDefaultDescription
nShapeNumeric00=Rectangle, 1=Circle, 2=Ellipse, 3=RoundRect
nPenColorColorCLR_BLACKBorder color
nPenWidthNumeric1Border thickness
nBrushColorColorCLR_WHITEFill color
PlatformNative Widget
WindowsOwner-drawn STATIC (GDI drawing)
macOSNSView (Core Graphics drawRect:)
LinuxGtkDrawingArea (Cairo)

TBevel CT_BEVEL = 16

Non-interactive decorative control that draws raised or lowered beveled lines and boxes.

PropertyTypeDefaultDescription
nStyleNumeric00=Lowered, 1=Raised
nBevelShapeNumeric00=Box, 1=TopLine, 2=BottomLine, 3=LeftLine, 4=RightLine
PlatformNative Widget
WindowsSTATIC (SS_ETCHEDHORZ / SS_ETCHEDFRAME)
macOSNSBox (NSBoxSeparator)
LinuxGtkSeparator / GtkFrame

TMaskEdit CT_MASKEDIT = 28

Text input with an input mask that constrains entry format (dates, phone numbers, SSN, etc.).

PropertyTypeDefaultDescription
cTextString""Current text content (with literals)
cMaskString""Input mask (e.g. "999-999-9999")
lSaveLiteralsLogical.T.Include mask literals in value
cPlaceholderString"_"Placeholder character
EventCategoryDescription
OnChangeActionText content changed
OnValidateActionMask validation completed
OnEnterFocusControl received focus
OnExitFocusControl lost focus
PlatformNative Widget
WindowsEDIT (ES_AUTOHSCROLL + mask logic)
macOSNSTextField + NSFormatter
LinuxGtkEntry + input filtering
// Phone number mask
@ 50, 120 MASKEDIT oPhone MASK "(999) 999-9999" OF oForm SIZE 160, 24

TStringGrid CT_STRINGGRID = 29

Editable grid of cells organized in rows and columns. Suitable for tabular data entry.

PropertyTypeDefaultDescription
nColCountNumeric5Number of columns
nRowCountNumeric5Number of rows
nFixedColsNumeric1Number of fixed (header) columns
nFixedRowsNumeric1Number of fixed (header) rows
nDefaultColWidthNumeric64Default column width
nDefaultRowHeightNumeric24Default row height
lEditingLogical.T.Allow cell editing
EventCategoryDescription
OnSelectCellActionCell selected
OnSetEditTextActionCell text changed
OnDrawCellDrawCustom cell painting
OnKeyDownKeyboardKey pressed in grid
PlatformNative Widget
WindowsOwner-drawn custom grid (WC_LISTVIEW based)
macOSNSTableView (multi-column editable)
LinuxGtkTreeView + GtkListStore (editable)
// Create a 3-column spreadsheet-like grid
@ 10, 10 STRINGGRID oGrid OF oForm SIZE 400, 200 COLS 3 ROWS 10
oGrid:SetCell( 0, 0, "Product" )
oGrid:SetCell( 0, 1, "Qty" )
oGrid:SetCell( 0, 2, "Price" )

TScrollBox CT_SCROLLBOX = 30

Scrollable container panel. Controls placed inside automatically get scroll bars when they exceed the visible area.

PropertyTypeDefaultDescription
lAutoScrollLogical.T.Automatically show scroll bars
nHorzPosNumeric0Horizontal scroll position
nVertPosNumeric0Vertical scroll position
nWidth, nHeightNumeric200, 200Visible area size
EventCategoryDescription
OnScrollActionScroll position changed
OnResizeLayoutContainer resized
PlatformNative Widget
WindowsWindow (WS_HSCROLL | WS_VSCROLL)
macOSNSScrollView + NSView
LinuxGtkScrolledWindow + GtkViewport

TStaticText CT_STATICTEXT = 31

Label with a visible border frame. Similar to TLabel but with a sunken, raised, or simple border style.

PropertyTypeDefaultDescription
cTextString""Display text
nBorderStyleNumeric00=None, 1=Single, 2=Sunken
nAlignmentNumeric00=Left, 1=Center, 2=Right
PlatformNative Widget
WindowsSTATIC (SS_SUNKEN | SS_LEFT)
macOSNSTextField (bordered, non-editable)
LinuxGtkLabel + GtkFrame

TLabeledEdit CT_LABELEDEDIT = 32

Composite control that combines a TLabel and a TEdit into a single component. Simplifies form layout.

PropertyTypeDefaultDescription
cTextString""Edit text content
cLabelTextString"Label"Caption for the label part
nLabelPositionNumeric00=Left, 1=Top, 2=Right, 3=Bottom
nLabelSpacingNumeric3Gap between label and edit (pixels)
lReadOnlyLogical.F.Prevent editing
EventCategoryDescription
OnChangeActionEdit text changed
OnEnterFocusEdit received focus
OnExitFocusEdit lost focus
// Labeled edits for a quick data entry form
@ 20, 20 LABELEDEDIT oName LABEL "Full Name:" OF oForm SIZE 200, 24
@ 50, 20 LABELEDEDIT oEmail LABEL "Email:" OF oForm SIZE 200, 24
10 Additional Controls

These enhanced controls provide graphical elements, masked input, grid editing, and composite widgets. Available on all platforms using native or owner-drawn rendering.

On This Page

TBitBtn CT_BITBTN = 12 TSpeedButton CT_SPEEDBTN = 27 TImage CT_IMAGE = 14 TShape CT_SHAPE = 15 TBevel CT_BEVEL = 16 TMaskEdit CT_MASKEDIT = 28 TStringGrid CT_STRINGGRID = 29 TScrollBox CT_SCROLLBOX = 30 TStaticText CT_STATICTEXT = 31 TLabeledEdit CT_LABELEDEDIT = 32