Reorganize Properties sections by control type

Replaces the flat per-property layout in protocol.md and README.md
with per-control subsections, each listing its supported properties.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Duensing 2026-03-05 16:23:49 -06:00
parent da21cc71f6
commit 3b4d97b0dc
2 changed files with 428 additions and 412 deletions

View file

@ -372,414 +372,306 @@ CTRL.SET 1 3 Text="world" Enabled=0
## Properties
### Caption
### Common Properties
- **Applies to:** Label, Button, CheckBox, GroupBox, RadioButton, Panel, MenuItem, RadioGroup, BitBtn, SpeedButton
- **Format:** Quoted string
- **Example:** `Caption="Submit"`
These properties apply to all or most controls:
The display text for labels, buttons, check boxes, group boxes, radio
buttons, panels, menu items, radio groups, and bitmap/speed buttons.
| Property | Format | Description |
|-----------|-------------------------------|-------------------------------|
| Enabled | `0` or `1` | Disable or enable the control |
| Visible | `0` or `1` | Hide or show the control |
| TabOrder | Integer | Keyboard tab order within the form (all windowed controls except Label and Image) |
| PopupMenu | Integer (ctrlId of PopupMenu) | Associates a right-click context menu with the control |
### Text
### Label, Button, GroupBox
- **Applies to:** Edit, ComboBox, Memo, MaskEdit
- **Format:** Quoted string
- **Example:** `Text="Hello world"`
| Property | Format |
|----------|---------------|
| Caption | Quoted string |
The editable text content. For Memo controls, use `\n` for line
breaks within the quoted string:
The display text for the control.
```
CTRL.SET 1 5 Text="Line one\nLine two\nLine three"
```
Example: `Caption="Submit"`
### Items
### Edit
- **Applies to:** ListBox, ComboBox, RadioGroup, TabSet, Notebook, TabbedNotebook, Outline, Header
- **Format:** Quoted string, items separated by `\n`
- **Example:** `Items="Red\nGreen\nBlue"`
| Property | Format | Description |
|-----------|---------------|------------------------------------|
| Text | Quoted string | Editable text content |
| MaxLength | Integer | Max characters (0 = no limit) |
| ReadOnly | `0` or `1` | Prevent user editing when enabled |
Example: `Text="Hello world" MaxLength=50`
### CheckBox, RadioButton
| Property | Format | Description |
|----------|---------------|----------------------|
| Caption | Quoted string | Display text |
| Checked | `0` or `1` | Checked or unchecked |
Example: `Caption="Accept terms" Checked=1`
### ListBox
| Property | Format | Description |
|-----------|-------------------------------------|---------------|
| Items | Quoted string (`\n`-delimited) | Item list |
| ItemIndex | Integer (-1 = none) | Selected item |
Replaces the entire item list. The control is cleared before the
new items are added.
### Checked
Example: `Items="Red\nGreen\nBlue" ItemIndex=0`
- **Applies to:** CheckBox, RadioButton, MenuItem
- **Format:** `0` (unchecked) or `1` (checked)
- **Example:** `Checked=1`
### ComboBox
### Enabled
| Property | Format | Description |
|-----------|-------------------------------------|-----------------|
| Text | Quoted string | Editable text |
| Items | Quoted string (`\n`-delimited) | Drop-down items |
| ItemIndex | Integer (-1 = none) | Selected item |
- **Applies to:** All control types
- **Format:** `0` (disabled) or `1` (enabled)
- **Example:** `Enabled=0`
Example: `Items="Red\nGreen\nBlue" ItemIndex=1`
### Visible
### Memo
- **Applies to:** All control types
- **Format:** `0` (hidden) or `1` (visible)
- **Example:** `Visible=0`
| Property | Format | Description |
|------------|--------------------------------------|------------------|
| Text | Quoted string (`\n` for line breaks) | Text content |
| ReadOnly | `0` or `1` | Prevent editing |
| ScrollBars | Integer 0-3 | Scroll bar style |
### MaxLength
ScrollBars values:
- `0` — ssNone (no scroll bars)
- `1` — ssHorizontal
- `2` — ssVertical
- `3` — ssBoth
- **Applies to:** Edit, MaskEdit
- **Format:** Integer (0 = no limit)
- **Example:** `MaxLength=50`
Example:
Maximum number of characters the user can type.
```
CTRL.SET 1 5 Text="Line one\nLine two\nLine three" ScrollBars=2
```
### ReadOnly
### Image
- **Applies to:** Edit, Memo
- **Format:** `0` (editable) or `1` (read-only)
- **Example:** `ReadOnly=1`
| Property | Format | Description |
|-------------|--------------------------|--------------------------|
| Picture | Quoted string (filename) | BMP file to display |
| Stretch | `0` or `1` | Stretch to fill bounds |
| Center | `0` or `1` | Center within bounds |
| Transparent | `0` or `1` | Transparent background |
### ScrollBars
Picture path is resolved relative to the client's `BasePath` setting.
Subdirectories are allowed. Only BMP files are supported.
- **Applies to:** Memo
- **Format:** Integer 0-3
- **Values:**
- `0` — ssNone (no scroll bars)
- `1` — ssHorizontal
- `2` — ssVertical
- `3` — ssBoth
- **Example:** `ScrollBars=2`
### ItemIndex
- **Applies to:** ListBox, ComboBox, RadioGroup, TabSet, Notebook, TabbedNotebook
- **Format:** Integer (-1 = no selection)
- **Example:** `ItemIndex=2`
### TabOrder
- **Applies to:** All windowed controls (all types except Label and Image)
- **Format:** Integer
- **Example:** `TabOrder=3`
Controls the keyboard tab navigation order within the form.
### Stretch
- **Applies to:** Image
- **Format:** `0` (off) or `1` (on)
- **Example:** `Stretch=1`
When enabled, the image is stretched to fill the control bounds.
### Center
- **Applies to:** Image
- **Format:** `0` (off) or `1` (on)
- **Example:** `Center=1`
When enabled, the image is centered within the control bounds.
### Transparent
- **Applies to:** Image
- **Format:** `0` (off) or `1` (on)
- **Example:** `Transparent=1`
When enabled, the image background is transparent.
### Picture
- **Applies to:** Image
- **Format:** Quoted string (filename)
- **Example:** `Picture="images\logo.bmp"`
BMP file to display. The path is resolved relative to the client's
`BasePath` setting. Subdirectories are allowed.
Example: `Picture="images\logo.bmp" Stretch=1`
**Note:** `dfm2form` does not emit Picture from DFM files because
image data is stored as a binary blob in the DFM. Set Picture at
runtime via `CTRL.SET` or by manually editing the `.form` file.
### BevelOuter
### Panel
- **Applies to:** Panel
- **Format:** Integer 0-2
- **Values:**
- `0` — bvNone
- `1` — bvLowered
- `2` — bvRaised
- **Example:** `BevelOuter=2`
| Property | Format | Description |
|-------------|---------------|--------------|
| Caption | Quoted string | Display text |
| BevelOuter | Integer 0-2 | Outer bevel |
| BevelInner | Integer 0-2 | Inner bevel |
| BorderStyle | `0` or `1` | Border |
### BevelInner
Bevel values: `0` (bvNone), `1` (bvLowered), `2` (bvRaised).
BorderStyle values: `0` (bsNone), `1` (bsSingle).
- **Applies to:** Panel
- **Format:** Integer 0-2
- **Values:**
- `0` — bvNone
- `1` — bvLowered
- `2` — bvRaised
- **Example:** `BevelInner=1`
Example: `BevelOuter=2 BevelInner=1 BorderStyle=0`
### BorderStyle (Panel)
### ScrollBar
- **Applies to:** Panel
- **Format:** `0` (bsNone) or `1` (bsSingle)
- **Example:** `BorderStyle=1`
| Property | Format | Description |
|-------------|---------|---------------------------------------|
| Kind | Integer | `0` (sbHorizontal), `1` (sbVertical) |
| Min | Integer | Minimum value |
| Max | Integer | Maximum value |
| Position | Integer | Current position |
| LargeChange | Integer | Change on track click |
| SmallChange | Integer | Change on arrow click |
### Kind
Example: `Kind=1 Min=0 Max=100 Position=50 LargeChange=10 SmallChange=1`
- **Applies to:** ScrollBar, BitBtn
- **Format:** Integer
- **Values (ScrollBar):** `0` (sbHorizontal), `1` (sbVertical)
- **Values (BitBtn):** `0` (bkCustom), `1` (bkOK), `2` (bkCancel),
`3` (bkHelp), `4` (bkYes), `5` (bkNo), `6` (bkClose), `7` (bkAbort),
`8` (bkRetry), `9` (bkIgnore), `10` (bkAll)
- **Example:** `Kind=1`
### MediaPlayer
### Min
| Property | Format | Description |
|------------|---------------|-----------------------------------|
| FileName | Quoted string | Media file path |
| DeviceType | Quoted string | MCI device type |
| AutoOpen | `0` or `1` | Open file automatically |
| Command | Quoted string | Pseudo-property (triggers method) |
- **Applies to:** ScrollBar
- **Format:** Integer
- **Example:** `Min=0`
FileName path is resolved relative to the client's `BasePath` setting.
### Max
DeviceType values: `dtAutoSelect`, `dtAVIVideo`, `dtCDAudio`, `dtDAT`,
`dtDigitalVideo`, `dtMMMovie`, `dtOther`, `dtOverlay`, `dtScanner`,
`dtSequencer`, `dtVCR`, `dtVideodisc`, `dtWaveAudio`.
- **Applies to:** ScrollBar
- **Format:** Integer
- **Example:** `Max=100`
Command triggers a method call instead of setting a value. Valid
commands: `Open`, `Play`, `Stop`, `Close`, `Pause`, `Resume`,
`Rewind`, `Next`, `Previous`.
### Position
Example: `FileName="sounds\intro.wav" DeviceType="dtWaveAudio" AutoOpen=1`
- **Applies to:** ScrollBar
- **Format:** Integer
- **Example:** `Position=50`
### MainMenu, PopupMenu
### LargeChange
No type-specific properties. One MainMenu per form (auto-attached).
PopupMenu is associated with any control via the common `PopupMenu`
property.
- **Applies to:** ScrollBar
- **Format:** Integer
- **Example:** `LargeChange=10`
### MenuItem
The amount the position changes when the user clicks the scroll bar
track.
| Property | Format | Description |
|----------|---------------|------------------------------|
| Caption | Quoted string | Menu item text |
| Parent | Integer | ctrlId of parent menu/item |
| Checked | `0` or `1` | Check mark |
| ShortCut | Integer | Delphi ShortCut value |
### SmallChange
ShortCut uses Delphi's encoding (virtual key + modifier flags).
- **Applies to:** ScrollBar
- **Format:** Integer
- **Example:** `SmallChange=1`
Example: `Caption="&Open" Parent=2 ShortCut=16463`
The amount the position changes when the user clicks an arrow button.
### RadioGroup
### FileName
| Property | Format | Description |
|-----------|--------------------------------|---------------------|
| Caption | Quoted string | Group label |
| Items | Quoted string (`\n`-delimited) | Radio button labels |
| ItemIndex | Integer (-1 = none) | Selected item |
| Columns | Integer | Column count |
- **Applies to:** MediaPlayer
- **Format:** Quoted string (file path)
- **Example:** `FileName="sounds\intro.wav"`
Example: `Caption="Color" Items="Red\nGreen\nBlue" Columns=2 ItemIndex=0`
Media file to open. The path is resolved relative to the client's
`BasePath` setting.
### BitBtn
### DeviceType
| Property | Format | Description |
|-----------|---------------|------------------------|
| Caption | Quoted string | Button text |
| Kind | Integer 0-10 | Predefined button kind |
| Layout | Integer 0-3 | Glyph position |
| NumGlyphs | Integer 1-4 | Glyph images in bitmap |
- **Applies to:** MediaPlayer
- **Format:** Quoted string
- **Example:** `DeviceType="dtWaveAudio"`
Kind values: `0` (bkCustom), `1` (bkOK), `2` (bkCancel), `3` (bkHelp),
`4` (bkYes), `5` (bkNo), `6` (bkClose), `7` (bkAbort), `8` (bkRetry),
`9` (bkIgnore), `10` (bkAll).
MCI device type. Valid values: `dtAutoSelect`, `dtAVIVideo`,
`dtCDAudio`, `dtDAT`, `dtDigitalVideo`, `dtMMMovie`, `dtOther`,
`dtOverlay`, `dtScanner`, `dtSequencer`, `dtVCR`, `dtVideodisc`,
`dtWaveAudio`.
Layout values: `0` (blGlyphLeft), `1` (blGlyphRight), `2` (blGlyphTop),
`3` (blGlyphBottom).
### AutoOpen
NumGlyphs: number of glyph images (up, disabled, clicked, down).
- **Applies to:** MediaPlayer
- **Format:** `0` (off) or `1` (on)
- **Example:** `AutoOpen=1`
Example: `Caption="OK" Kind=1 Layout=0 NumGlyphs=2`
When enabled, the media file is opened automatically when FileName
is set.
### SpeedButton
### Command
| Property | Format | Description |
|------------|---------------|-----------------------------|
| Caption | Quoted string | Button text |
| Layout | Integer 0-3 | Glyph position |
| NumGlyphs | Integer 1-4 | Glyph images in bitmap |
| GroupIndex | Integer | Radio group (0 = no group) |
| Down | `0` or `1` | Pressed state |
| AllowAllUp | `0` or `1` | Allow all buttons unpressed |
- **Applies to:** MediaPlayer
- **Format:** Quoted string
- **Example:** `Command="Play"`
Pseudo-property that triggers a method call instead of setting a
value. Valid commands: `Open`, `Play`, `Stop`, `Close`, `Pause`,
`Resume`, `Rewind`, `Next`, `Previous`.
### Parent
- **Applies to:** MenuItem
- **Format:** Integer (ctrlId of parent menu or menu item)
- **Example:** `Parent=1`
Specifies the parent for a menu item. The parent can be a MainMenu,
PopupMenu, or another MenuItem (for submenus).
### Columns
- **Applies to:** RadioGroup
- **Format:** Integer
- **Example:** `Columns=2`
Number of columns for the radio button layout.
### ShortCut
- **Applies to:** MenuItem
- **Format:** Integer (Delphi ShortCut value)
- **Example:** `ShortCut=16467`
Keyboard accelerator for the menu item. Uses Delphi's ShortCut
encoding (virtual key + modifier flags).
### PopupMenu
- **Applies to:** Any visual control
- **Format:** Integer (ctrlId of a PopupMenu)
- **Example:** `PopupMenu=2`
Associates a PopupMenu with a control. When the user right-clicks
the control, the popup menu is displayed.
### Layout
- **Applies to:** BitBtn, SpeedButton
- **Format:** Integer 0-3
- **Values:**
- `0` — blGlyphLeft
- `1` — blGlyphRight
- `2` — blGlyphTop
- `3` — blGlyphBottom
- **Example:** `Layout=2`
Position of the glyph relative to the caption text.
### NumGlyphs
- **Applies to:** BitBtn, SpeedButton
- **Format:** Integer (1-4)
- **Example:** `NumGlyphs=2`
Number of glyph images in the bitmap (up, disabled, clicked, down).
### GroupIndex
- **Applies to:** SpeedButton
- **Format:** Integer (0 = no group)
- **Example:** `GroupIndex=1`
Layout values: `0` (blGlyphLeft), `1` (blGlyphRight), `2` (blGlyphTop),
`3` (blGlyphBottom).
Speed buttons with the same non-zero GroupIndex act as a radio group.
Down is only meaningful when GroupIndex is non-zero.
### Down
Example: `GroupIndex=1 Down=1 AllowAllUp=0`
- **Applies to:** SpeedButton
- **Format:** `0` (up) or `1` (down)
- **Example:** `Down=1`
### TabSet, Notebook, TabbedNotebook
Whether the speed button is pressed. Only meaningful when
GroupIndex is non-zero.
| Property | Format | Description |
|-----------|--------------------------------|-------------|
| Items | Quoted string (`\n`-delimited) | Tab/page list |
| ItemIndex | Integer (-1 = none) | Active tab |
### AllowAllUp
Example: `Items="General\nAdvanced\nAbout" ItemIndex=0`
- **Applies to:** SpeedButton
- **Format:** `0` (off) or `1` (on)
- **Example:** `AllowAllUp=1`
### MaskEdit
When enabled, all speed buttons in a group can be unpressed.
| Property | Format | Description |
|-----------|---------------|-----------------------------------|
| Text | Quoted string | Editable text content |
| MaxLength | Integer | Max characters (0 = no limit) |
| EditMask | Quoted string | Input mask (mask;save;blank char) |
### EditMask
Example: `EditMask="(999) 000-0000;1;_"`
- **Applies to:** MaskEdit
- **Format:** Quoted string
- **Example:** `EditMask="(999) 000-0000;1;_"`
### Outline
Input mask string (mask;save literals;blank char).
| Property | Format | Description |
|--------------|--------------------------------|---------------|
| Items | Quoted string (`\n`-delimited) | Tree items |
| OutlineStyle | Integer 0-6 | Display style |
### OutlineStyle
OutlineStyle values:
- `0` — osText
- `1` — osPlusMinusText
- `2` — osPlusMinus
- `3` — osPictureText
- `4` — osPicturePlusMinusText
- `5` — osTreeText
- `6` — osTreePictureText
- **Applies to:** Outline
- **Format:** Integer 0-6
- **Values:**
- `0` — osText
- `1` — osPlusMinusText
- `2` — osPlusMinus
- `3` — osPictureText
- `4` — osPicturePlusMinusText
- `5` — osTreeText
- `6` — osTreePictureText
- **Example:** `OutlineStyle=5`
Example: `OutlineStyle=5`
### Shape
### Bevel
- **Applies to:** Bevel
- **Format:** Integer 0-5
- **Values:**
- `0` — bsBox
- `1` — bsFrame
- `2` — bsTopLine
- `3` — bsBottomLine
- `4` — bsLeftLine
- `5` — bsRightLine
- **Example:** `Shape=2`
| Property | Format | Description |
|----------|-------------|----------------|
| Shape | Integer 0-5 | Bevel shape |
| Style | `0` or `1` | Lowered/raised |
### Style (Bevel)
Shape values:
- `0` — bsBox
- `1` — bsFrame
- `2` — bsTopLine
- `3` — bsBottomLine
- `4` — bsLeftLine
- `5` — bsRightLine
- **Applies to:** Bevel
- **Format:** `0` (bsLowered) or `1` (bsRaised)
- **Example:** `Style=1`
Style values: `0` (bsLowered), `1` (bsRaised).
### ColCount
Example: `Shape=2 Style=1`
- **Applies to:** StringGrid
- **Format:** Integer (default 5)
- **Example:** `ColCount=10`
### Header
Number of columns in the grid.
| Property | Format | Description |
|----------|--------------------------------|-----------------|
| Items | Quoted string (`\n`-delimited) | Section headers |
### RowCount
Example: `Items="Name\nAge\nCity"`
- **Applies to:** StringGrid
- **Format:** Integer (default 5)
- **Example:** `RowCount=20`
### ScrollBox
Number of rows in the grid.
No type-specific properties.
### FixedCols
### StringGrid
- **Applies to:** StringGrid
- **Format:** Integer (default 1)
- **Example:** `FixedCols=1`
| Property | Format | Description |
|------------------|---------------------------------------------------------|--------------------------|
| ColCount | Integer (default 5) | Number of columns |
| RowCount | Integer (default 5) | Number of rows |
| FixedCols | Integer (default 1) | Non-scrollable left cols |
| FixedRows | Integer (default 1) | Non-scrollable top rows |
| DefaultColWidth | Integer (pixels) | Default column width |
| DefaultRowHeight | Integer (pixels) | Default row height |
| Options | Integer (bitmask) | Grid options |
| Cells | Quoted string (tab-delimited cols, `\n`-delimited rows) | Bulk-load all cells |
| Cell | Quoted string (`col,row,value`) | Set a single cell |
Number of non-scrollable columns on the left.
### FixedRows
- **Applies to:** StringGrid
- **Format:** Integer (default 1)
- **Example:** `FixedRows=1`
Number of non-scrollable rows at the top.
### DefaultColWidth
- **Applies to:** StringGrid
- **Format:** Integer (pixels)
- **Example:** `DefaultColWidth=80`
### DefaultRowHeight
- **Applies to:** StringGrid
- **Format:** Integer (pixels)
- **Example:** `DefaultRowHeight=20`
### Options (StringGrid)
- **Applies to:** StringGrid
- **Format:** Integer (bitmask)
- **Example:** `Options=1549`
Bitmask of TGridOption values:
Options bitmask of TGridOption values:
| Bit | Value | Option | Description |
|-----|--------|---------------------|---------------------------|
@ -797,22 +689,13 @@ Bitmask of TGridOption values:
| 11 | 0x0800 | goTabs | Tab between cells |
| 12 | 0x1000 | goThumbTracking | Track scrollbar thumb |
### Cells
- **Applies to:** StringGrid
- **Format:** Quoted string (tab-delimited columns, `\n`-delimited rows)
- **Example:** `Cells="Name\tAge\nAlice\t30\nBob\t25"`
Bulk-loads all cell data. Columns are separated by tab characters,
Cells is a bulk-load property: columns are separated by tab characters,
rows by newlines. Row 0 is the first row (typically fixed header).
Cell sets a single cell value: column and row are zero-based indices.
### Cell
Example: `Cells="Name\tAge\nAlice\t30\nBob\t25"`
- **Applies to:** StringGrid
- **Format:** Quoted string (`col,row,value`)
- **Example:** `Cell="1,2,Hello"`
Sets a single cell value. Column and row are zero-based indices.
Example: `Cell="1,2,Hello"`
### BasePath

View file

@ -134,73 +134,206 @@ RadioGroup components do not support opt-in events.
## Properties
| Property | Applies To | Value Format |
|-------------|---------------------------------------------|-------------------------------------------|
| Caption | Label, Button, CheckBox, GroupBox, RadioButton, Panel, MenuItem, RadioGroup, BitBtn, SpeedButton | Quoted string |
| Text | Edit, ComboBox, Memo, MaskEdit | Quoted string (`\n` for line breaks) |
| Items | ListBox, ComboBox, RadioGroup, TabSet, Notebook, TabbedNotebook, Outline, Header | Quoted string (`\n`-delimited) |
| Checked | CheckBox, RadioButton, MenuItem | 0 or 1 |
### Common Properties
| Property | Applies To | Format |
|-----------|--------------|-------------------------------|
| Enabled | All | 0 or 1 |
| Visible | All | 0 or 1 |
| MaxLength | Edit, MaskEdit | Integer |
| ReadOnly | Edit, Memo | 0 or 1 |
| ScrollBars | Memo | 0-3 (ssNone..ssBoth) |
| ItemIndex | ListBox, ComboBox, RadioGroup, TabSet, Notebook, TabbedNotebook | Integer (-1 = none) |
| TabOrder | All windowed controls | Integer |
| Stretch | Image | 0 or 1 |
| Center | Image | 0 or 1 |
| Transparent | Image | 0 or 1 |
| Picture | Image | Quoted string (filename, BMP only) |
| BevelOuter | Panel | 0-2 (bvNone, bvLowered, bvRaised) |
| BevelInner | Panel | 0-2 (bvNone, bvLowered, bvRaised) |
| BorderStyle | Panel | 0-1 (bsNone, bsSingle) |
| Kind | ScrollBar, BitBtn | Integer (see below) |
| Min | ScrollBar | Integer |
| Max | ScrollBar | Integer |
| Position | ScrollBar | Integer |
| LargeChange | ScrollBar | Integer |
| SmallChange | ScrollBar | Integer |
| FileName | MediaPlayer | Quoted string (media file path) |
| DeviceType | MediaPlayer | Quoted string (e.g., `dtWaveAudio`) |
| AutoOpen | MediaPlayer | 0 or 1 |
| Command | MediaPlayer | Quoted string (pseudo-property, see below)|
| Parent | MenuItem | Integer (ctrlId of parent menu/item) |
| Columns | RadioGroup | Integer (number of columns) |
| ShortCut | MenuItem | Integer (Delphi ShortCut value) |
| TabOrder | All windowed | Integer |
| PopupMenu | Any TControl | Integer (ctrlId of PopupMenu) |
| Layout | BitBtn, SpeedButton | 0-3 (blGlyphLeft..blGlyphBottom) |
| NumGlyphs | BitBtn, SpeedButton | Integer (1-4) |
| GroupIndex | SpeedButton | Integer (0 = no group) |
| Down | SpeedButton | 0 or 1 |
| AllowAllUp | SpeedButton | 0 or 1 |
| EditMask | MaskEdit | Quoted string |
| OutlineStyle| Outline | 0-6 (osText..osTreePictureText) |
| Shape | Bevel | 0-5 (bsBox..bsRightLine) |
| Style | Bevel | 0-1 (bsLowered, bsRaised) |
| ColCount | StringGrid | Integer (default 5) |
| RowCount | StringGrid | Integer (default 5) |
| FixedCols | StringGrid | Integer (default 1) |
| FixedRows | StringGrid | Integer (default 1) |
| DefaultColWidth | StringGrid | Integer (pixels) |
| DefaultRowHeight| StringGrid | Integer (pixels) |
| Options | StringGrid | Integer (bitmask, see below) |
| Cells | StringGrid | Quoted string (tab-delimited cols, `\n`-delimited rows) |
| Cell | StringGrid | Quoted string (`col,row,value`) |
File path properties (Picture, FileName) are resolved relative to the
client's `BasePath` setting. Subdirectories are allowed (e.g.,
`Picture="images\logo.bmp"` with `BasePath=C:\MYAPP` resolves to
`C:\MYAPP\images\logo.bmp`).
### Label, Button, GroupBox
Command is a pseudo-property that triggers a method call on the
MediaPlayer rather than setting a value. Valid commands: `Open`,
`Play`, `Stop`, `Close`, `Pause`, `Resume`, `Rewind`, `Next`,
`Previous`.
| Property | Format |
|----------|---------------|
| Caption | Quoted string |
StringGrid Options is an integer bitmask of TGridOption values:
### Edit
| Property | Format |
|-----------|---------------|
| Text | Quoted string |
| MaxLength | Integer |
| ReadOnly | 0 or 1 |
### CheckBox, RadioButton
| Property | Format |
|----------|---------------|
| Caption | Quoted string |
| Checked | 0 or 1 |
### ListBox
| Property | Format |
|-----------|--------------------------------|
| Items | Quoted string (`\n`-delimited) |
| ItemIndex | Integer (-1 = none) |
### ComboBox
| Property | Format |
|-----------|--------------------------------|
| Text | Quoted string |
| Items | Quoted string (`\n`-delimited) |
| ItemIndex | Integer (-1 = none) |
### Memo
| Property | Format |
|------------|--------------------------------------|
| Text | Quoted string (`\n` for line breaks) |
| ReadOnly | 0 or 1 |
| ScrollBars | 0-3 (ssNone..ssBoth) |
### Image
| Property | Format |
|-------------|------------------------------------|
| Picture | Quoted string (filename, BMP only) |
| Stretch | 0 or 1 |
| Center | 0 or 1 |
| Transparent | 0 or 1 |
File path resolved relative to client's `BasePath` setting.
### Panel
| Property | Format |
|-------------|------------------------------------|
| Caption | Quoted string |
| BevelOuter | 0-2 (bvNone, bvLowered, bvRaised) |
| BevelInner | 0-2 (bvNone, bvLowered, bvRaised) |
| BorderStyle | 0-1 (bsNone, bsSingle) |
### ScrollBar
| Property | Format |
|-------------|-----------------------------------|
| Kind | 0 (sbHorizontal), 1 (sbVertical) |
| Min | Integer |
| Max | Integer |
| Position | Integer |
| LargeChange | Integer |
| SmallChange | Integer |
### MediaPlayer
| Property | Format |
|------------|-------------------------------------|
| FileName | Quoted string (media file path) |
| DeviceType | Quoted string (e.g., `dtWaveAudio`) |
| AutoOpen | 0 or 1 |
| Command | Quoted string (pseudo-property) |
File path resolved relative to client's `BasePath` setting.
Command triggers a method call rather than setting a value. Valid
commands: `Open`, `Play`, `Stop`, `Close`, `Pause`, `Resume`,
`Rewind`, `Next`, `Previous`.
### MainMenu, PopupMenu
No type-specific properties. One MainMenu per form (auto-attached).
PopupMenu is associated with controls via the common `PopupMenu`
property.
### MenuItem
| Property | Format |
|----------|--------------------------------------|
| Caption | Quoted string |
| Parent | Integer (ctrlId of parent menu/item) |
| Checked | 0 or 1 |
| ShortCut | Integer (Delphi ShortCut value) |
### RadioGroup
| Property | Format |
|-----------|--------------------------------|
| Caption | Quoted string |
| Items | Quoted string (`\n`-delimited) |
| ItemIndex | Integer (-1 = none) |
| Columns | Integer |
### BitBtn
| Property | Format |
|-----------|----------------------------------|
| Caption | Quoted string |
| Kind | 0-10 (bkCustom..bkAll) |
| Layout | 0-3 (blGlyphLeft..blGlyphBottom) |
| NumGlyphs | Integer (1-4) |
### SpeedButton
| Property | Format |
|------------|----------------------------------|
| Caption | Quoted string |
| Layout | 0-3 (blGlyphLeft..blGlyphBottom) |
| NumGlyphs | Integer (1-4) |
| GroupIndex | Integer (0 = no group) |
| Down | 0 or 1 |
| AllowAllUp | 0 or 1 |
### TabSet, Notebook, TabbedNotebook
| Property | Format |
|-----------|--------------------------------|
| Items | Quoted string (`\n`-delimited) |
| ItemIndex | Integer (-1 = none) |
### MaskEdit
| Property | Format |
|-----------|---------------|
| Text | Quoted string |
| MaxLength | Integer |
| EditMask | Quoted string |
### Outline
| Property | Format |
|--------------|---------------------------------|
| Items | Quoted string (`\n`-delimited) |
| OutlineStyle | 0-6 (osText..osTreePictureText) |
### Bevel
| Property | Format |
|----------|----------------------------|
| Shape | 0-5 (bsBox..bsRightLine) |
| Style | 0-1 (bsLowered, bsRaised) |
### Header
| Property | Format |
|----------|--------------------------------|
| Items | Quoted string (`\n`-delimited) |
### ScrollBox
No type-specific properties.
### StringGrid
| Property | Format |
|------------------|---------------------------------------------------------|
| ColCount | Integer (default 5) |
| RowCount | Integer (default 5) |
| FixedCols | Integer (default 1) |
| FixedRows | Integer (default 1) |
| DefaultColWidth | Integer (pixels) |
| DefaultRowHeight | Integer (pixels) |
| Options | Integer (bitmask, see below) |
| Cells | Quoted string (tab-delimited cols, `\n`-delimited rows) |
| Cell | Quoted string (`col,row,value`) |
Options is an integer bitmask of TGridOption values:
| Bit | Value | Option |
|--------|--------|---------------------|
|-----|--------|---------------------|
| 0 | 0x0001 | goFixedVertLine |
| 1 | 0x0002 | goFixedHorzLine |
| 2 | 0x0004 | goVertLine |