Some extra controls commonly used in Lazarus forms
TPageFlag
- enumerated type containing possible values for page flags for notebook pages

TPageFlag - enumerated type containing possible values for page flags for notebook pages

    pfAdded,  // handle of page added to notebook handle
        pfAdding, // currently handle of page adding to notebook handle
        pfRemoving, // currently removing page handle from notebook handle
        pfInserting // currently inserting page into notebook

Internal flag set after page handle was connected to the notebook handle
TPageFlags
- set of TPageFlag
TPage
: One of the pages in a tabbed Notebook

TPage: One of the pages in a tabbed Notebook

Inherits most of its properties from TCustomPage

HowToUseStdCtrls Multi-PageControls
TNotebook
is a container for a series of pages placed together

TNotebook is a control which can hold a series of pages placed together. Only one page is shown at a time and this control is completely custom drawn, which means that it is available and looks the same in any widgetset which supports TCustomControl. The pages are containers which can hold controls. This control never has tabs. If you are looking for a control with tabs and pages, please see TPageControl instead.

To use a Notebook, select its icon from the 'Additional' tab of the Component Palette and place it on the Form. Adjust its size, position, alignment and anchoring as required, by moving the object on the Form or by using the Object Inspector.

Pages are added to the NoteBook by selecting the control and right-clicking with the mouse to get a pop-up menu whose first item is 'Add Page'. Pages already in the NoteBook can be edited by selecting the appropriate ActivePage in the Object Inspector and modifying its properties or adding additional components to that Page.

Set of Options for this Notebook. Include nboShowCloseButtons, nboMultiLine

Set of Options for this Notebook. Include nboShowCloseButtons, nboMultiLine

To use the Options, select the tag in the Object Inspector, then select for inclusion any of the listed options, setting them True or False as appropriate.

For example, setting nboShowCloseButtons to True will cause a CloseButton (a small CheckBox with an 'x' in it) to appear on each Tab of the NoteBook, allowing the tabbed Page to be closed when the user clicks on the CloseButton.

TTimer
: An elapsed timer useful in many applications

TTimer: An elapsed timer useful in many applications

Inherits most of its properties from TCustomTimer

TIdleTimerAutoEvent
- enumerated class containing events relevant to a timer

TIdleTimerAutoEvent - enumerated class containing events relevant to a timer

    itaOnIdle,
        itaOnIdleEnd,
        itaOnUserInput

TIdleTimerAutoEvents
- set of TIdleTimerAutoEvent
TIdleTimer
: A timer to measure idle time between processes

TIdleTimer: A timer to measure idle time between processes

Inherits most of its properties from TCustomTimer

SetAutoEnabled
- specifies whether AutoEnable is allowed
DoOnIdle
- performs the code for timer idling
DoOnIdleEnd
- performs the code for the end of idling
DoOnUserInput
- performs the code for responding to user input
Create
: constructor for TIdleTimer: calls inherited Create then sets up operating mode (autostart and autoend)
TCustomTimer.Create
Destroy
- destructor for TIdleTimer: turns off AutoEnabled then calls inherited Destroy
TCustomTimer.Destroy
TShapeType
- enumerated type containing several standard geometric shapes

TShapeType - enumerated type containing several standard geometric shapes:

    stRectangle
      stSquare
      stRoundRect
      stRoundSquare
      stEllipse
      stCircle
      stSquaredDiamond
      stDiamond

TShape
- An arbitrary graphic geometrical shape placed on the Form. It may be one of a series of standard shapes defined by TShapeType

TShape: An arbitrary graphic geometrical shape placed on the Form. It may be one of a series of standard shapes defined by TShapeType (stRectangle, stSquare, stRoundRect, stRoundSquare, stEllipse, stCircle, stSquaredDiamond, stDiamond).

It can be displayed using the Paint method and the Brush and Pen tools.

Create
- constructor for TShape: calls inherited Create, sets default styles and bounds, creates pen and brush
TGraphicControl.Create
Destroy
- destructor for TShape: frees pen and brush, then calls inherited Destroy
TGraphicControl.Destroy
StyleChanged
- method for handling change of style by Sender
The Brush to be used for colouring this shape
The Pen to be used for drawing this shape
Which Shape? (Rectangle, Square, RoundRect, RoundSquare, Ellipse, Circle, SquaredDiamond, Diamond)

Which Shape?

stRectangle,

stSquare,

stRoundRect,

stRoundSquare,

stEllipse,

stCircle,

stSquaredDiamond,

stDiamond

TResizeStyle
- enumerated type for style of resizing using splitters
rsLine
- draw a line, don't update splitter position during moving rsNone - draw nothing and don't update splitter position during moving rsPattern - draw a dot pattern, don't update splitter position during moving rsUpdate - draw nothing, update splitter position during moving
TCanResizeEvent
- generic event handling method for resizing using splitter
TCustomSplitter
: the base type for

TSplitter

TCustomSplitter: the base type for

TSplitter

A Splitter is a vertical or horizontal bar that can be placed on a panel or form, to separate sub-panels functionally and allow re-sizing of the constituent sub-panels

This class defines many of the basic properties for the children classes, such as positioning, sizing and alignment

    { TCustomSplitter is a control for interactively resizing another control.
        It is a vertical or horizontal bar anchored to a side of a control.
        You can either set the Align property to alLeft (alRight,alTop,alBottom),
        then it will become a vertical bar, aligned to the left and when the user
        moves it with the mouse, the control to the left with the same Align=alLeft
        will be resized.
        The second more flexible possibility is to set the properties Align=alNone,
        AnchorSides and ResizeAnchor.
        }

FindAlignOtherControl
- returns another alignment control (the splitter may have to align two controls)
StartSplitterMove
- method for starting movement of the splitter, given the mouse position MouseXY
FindAlignControl
- returns the main alignment control
CheckAlignment
- ensure control is correctly aligned
CheckNewSize
- ensure new size is appropriate: returns True if sucessful
Create
- constructor for TCustomSplitter: calls inherited Create then sets initial alignment, size and style
TCustomControl.Create
Style for resizing - as a line, a pattern, full update, or none
AutoSnap - automatically snaps to a grid point or grid line in the Form designer
Boolean property, true if snapping to grid positions
Whether the edges of the splitter bar are bevelled
Minimum size for splitter - default 30 pixels
Event handler for receiving permission to resize
Event handler for occasion when splitter has moved
AnchorSplitter
- anchor the splitter to Acontrol using the specified Kind of anchor
ResizeControl
- the control that is to be re-sized with the splitter
GetOtherResizeControl
- find out which other control is to be re-sized
MoveSplitter
- by an amount specified by Offset
SetSplitterPosition
- to specified NewPosition
GetSplitterPosition
- returns the current position of the splitter
ResizeAnchor
- the kind of anchor to be used for resizing
TSplitter
: A vertical or horizontal bar placed on a panel or form, to separate sub-panels functionally

TSplitter: A vertical or horizontal bar that can be placed on a panel or form, to separate sub-panels functionally and allow re-sizing of the constituent sub-panels

The splitter extends for the full height (if vertical) or full width (if horizontal) of the parent control (form or panel) and is anchored to the edges; its position along the length or height of the parent is determined by the programmer or user by moving the whole control with the mouse, and its size can be adjusted using the sizing bars and with the ResizeAnchor property

HowToUseStdCtrls
TPaintBox
: a painted rectangular box with defined size and color

TPaintBox: a painted rectangular box with defined size and colour

HowToUseStdCtrls
Create
- constructor for TPaintBox: calls inherited Create then sets initial bounds and style
TGraphicControl.Create
TCustomImage
- the base type for

TImage
TCustomImage

: The base type for

TImage
. This is a control of the class

TGraphicControl
, designed to be lightweight and fast
TGraphicControl
PictureChanged
- software emulaton of the OnPictureChanged event
DestRect
- returns the location of the destination rectangle
Create
- constructor for TCustomImage: calls inherited Create then sets default style, bounds and local variables: creates space for the picture
TGraphicControl.Create
Destroy
- destructor for TCustomImage: frees picture then calls inherited Destroy
TGraphicControl.Destroy
Should image be centered?
Boolean property - True if image is to be centered
Picture

- the actual image for display
True if picture is to be stretched
True if you can see through the image
True if image is proportional
TImage
- a graphic image placed on the form; usually loaded from a picture file.

TImage

: a graphic image placed on the form; usually loaded from a picture file.

The actual image is found in Picture or Canvas

Inherits most of its properties from its ancestors, TCustomImage, TGraphicControl and TControl

HowToUseStdCtrls
TControl.AutoSize
TBevelStyle
- enumerated type for bevel style: lowered or raised
TBevelShape
- enumerated type for shape of bevel

TBevelShape - enumerated type for shape of bevel

    bsBox
      bsFrame
      bsTopLine
      bsBottomLine
      bsLeftLine
      bsRightLine

A bevel placed around the edge of buttons and other components

Its appearance is governed by and

Virtual Paint method called in response to paint requests received by the parent control.
TGraphicControl.Create
Create
- constructor for TBevel: calls inherited Create then sets initial style, shape and bounds

Either reads a flag containing alignment instructions (FAlign) or writes alignment instructions (SetAlign)

May have no alignment, may have custom or client alignment, or can be aligned to top, bottom, left or right

Determines how the control is to be anchored to its parent control

Either reads a flag containing the set of anchors to be used, or writes a set of anchors. If they have been written, this is indicated in IsAnchorsStored

Determines the border spacing for this control

Reads flag to find stored spacing values required for the border of the control, or writes the flag to set the spacing.

The properties are defined in the parent class TControlBorderSpacing

Determine Constraints (max and min height and width) for this control; reads the size constraints or stores new ones.

Name
is the name of the component. This name should be a valid identifier, i.e. must start with a letter, and can contain only letters, digits and the underscore character. When attempting to set the name of a component, the name will be checked for validity. Furthermore, when a component is owned by another component, the name must be either empty or must be unique among the child component names.
Attempting to set the name to an invalid value will result in an exception being raised.
Shape
- whether a box, a frame or a line along one of the edges
Style
- whether raised or lowered

    The Visible property represents the ability to see a visual control.
              If Visible is True the control is shown, otherwise it is hidden.
              Calling Show sets, among others, Visible to True.
              Setting Visible to False is equivalent to calling Hide method.

The Visible property does not depend on control's parent visibility. Use IsVisible method to consider this and get real visibility.
TColumnLayout
- enumerated type for layout where data are arranged in columns
TCustomRadioGroup:
the base type for TRadioGroup

A group of related but mutually exclusive radio buttons, selectable by the user.

This class defines Items, where the captions of the individual radio boxes are stored, Rows and Columns for arranging the radio boxes, and ColumnLayout to determine whether the data are arranged down the columns first, or across the rows first.

UpdateRadioButtonStates
including implementing any pending changes
SetColumns
- specifies the number of columns for displaying the items
SetItemIndex
- specifies an index for an item
GetItemIndex
- returns an index for an item
The Index value in the list of Items (a stringlist with the names of the selections for radio buttons)
Items
- a string list containing the captions for the radio boxes
Columns
- the number of columns in which the

Items
(radio buttons) are to be arranges
ColumnLayout
-

HorizontalThenVertical
or vice versa
Event called when the selected item changes

TCustomRadioGroup.OnClick is different from the usual event TControl.OnClick. Instead of occuring on a mouse click on the control, this event is occurs when the currently selected item changes. It will not occur if a click does not make the selection change, will not occur upon clicking a already selected item and will occur if one changes the selection via the keyboard. It also occurs when the item is changed programmatically. This is done for Delphi compatibility.

Note that Lazarus also offers another event for the same task with a better name: see TCustomRadioGroup.OnSelectionChanged for more details.

Event called when the selected item changes

This event was introduced in Lazarus 0.9.31 and it is called when the selected item is changed. It is triggered when this is done by the user via, for example the mouse or keyboard, and is also triggered when the selected item is changed programatically.

Create
- constructor for TCustomRadioGroup: calls inherited Create, then sets list of buttons, and initialises layout and sizing properties
TCustomGroupBox.Create
Destroy
- destructor for TCustomRadioGroup: frees items and buttons, then calls inherited Destroy
TWinControl.Destroy
CanModify
- if True, modification of the RadioGroup is permitted
Rows
- the number of rows in which Items (radio boxes) are held
Number of rows
TRadioGroup
: A group of related but mutually exclusive radio buttons, requiring the user to select one af a set of alternatives

TRadioGroup: A group of related but mutually exclusive radio buttons, requiring the user to select one af a set of alternatives. As one button becomes selected, the remaining buttons in the group become automatically deselected.

To Use this control, place it in the required position on the form, then in the Object Inspector select Items and click on the ellipsis (...) to open the string editor. Type in the captions to accompany each check box, then close the string editor and you will see a series of Radio Boxes with their captions displayed beside them. (Note - unlike TCheckGroup, there is no special RadioGroup editor)

Inherits properties from TCustomRadioGroup and TCustomGroupBox

TRadioGroup behaves differently from a group of

TRadioButton controls placed arbitrarily around a form.

In the case of TRadioButton, the mutual exclusivity is a feature that applies to any RadioButton anywhere in the Form, and the RadioButtons can be rearranged in any order or placed anywhere within the containing Form, while in TRadioGroup the exclusivity applies only to buttons within the Group, which are ordered strictly according to their ItemIndex within the Items stringlist.

TRadioButton is an entity in itself, with a number of additional properties, whereas the buttons within

TRadioGroup are not separate entities, but rather are simply entries in a list of strings, each of which is associated with the on-screen image of a

RadioButton.

The example shows the difference between the use of TRadioButton and TRadioGroup

HowToUseStdCtrls TRadioButton
Caption
- the text string appearing above the whole RadioGroup box
Items
- a string list containing the captions of the radio boxes

Items - a string list containing the captions of the radio boxes

Use the String List editor, opened by selecting Items and the ellipsis (...) in the Object Inspector, to insert the captions for the radio boxes, and determine their order and layout using the Rows, Columns and ColumnLayout properties

TCheckGroupClicked
- generic event handler method for a click in a check group
TCustomCheckGroup
: The base type for

TCheckGroup

TCustomCheckGroup: The base type for

TCheckGroup

This class defines Items, where the captions for individual check boxes are stored, Rows and Columns for arranging the check boxes, and ColumnLayout to determine whether the data are arranged down the columns first, or across the rows first.

TCustomGroupBox
SetItems
- specify the strings that form the Items of the group
SetColumns
- specifies the nuber of coulmns in which the Items are arranged
DefineProperties
- overrides the method inherited from TComponent, defines the top, left properties
TComponent.DefineProperties
Reads data from a stream
Writes Data to a stream
Create
- constructor for TCustomCheckGroup: calls inherited Create, then sets styles, creates lists, initialises sizing and layout properties
TCustomGroupBox.Create
Destroy
- destructor for TCustomCheckGroup: frees items and buttons, then calls inherited Destroy
TWinControl.Destroy
Rows
- the number of rows in which the Items (check boxes) are arranged
The number of rows holding items
Items
- a string list for the captions of the check boxes
Whether an individual entry in the list is Checked
CheckEnabled
- whether a given (indexed) entry in the list is allowed to be checked
Columns
- the number of columns in which the

Items
(check boxes) are to be arranges
ColumnLayout
-

HorizontalThenVertical
or vice versa
OnItemClick
- event handler for mouse click on one of the Items in the Check Group
AutoFill
- whether Check Boxes should be automatically filled in (checked)
TCheckGroup
: A group of Check Boxes physically and logically grouped together on a form

TCheckGroup: A group of Check Boxes physically and logically grouped together on a form

To Use this control, place it in the required position on the form, then either right-click on the control to see the pop-up CheckGroup editor, or in the Object Inspector select Items and click on the ellipsis (...) to open the string editor. In either case, type in the captions to accompany each check box, then close the string or CheckGroup editor and you will see a series of boxes with their captions displayed beside them.

Inherits properties from TCustomCheckGroup and TCustomGroupBox

HowToUseStdCtrls TRadioGroup
Caption
: the string which appears at the top of the Check Group Box

Caption: the string which appears as a caption at the top of the Check Group Box to describe the function of the Check Group as a whole

Items
- a string list containing the captions of the check boxes

Items - a string list containing the captions of the check boxes

Use the String List editor or the CheckGroup editor (opened by right-clicking on the control in the Form) to insert the captions for the check boxes, and determine their order and layout

TBoundLabel
: A label bound to another object, for example in

TLabeledEdit
TBoundLabel
: A label bound to another object, for example in

TLabeledEdit
TLabeledEdit
Create
- constructor for TBoundLabel: calls inherited Create, makes itself a SubComponent to the Owner, and sets its caption to the owner name
TCustomLabel.Create
FocusControl
- whether this control has focus
Caption : the caption which will appear on the Bound Label, to identify its function
TLabelPosition
- enumerated type for position of a label relative to an edit box: above, below, left, right
Custom Labelled Edit

TCustomLabeledEdit

: The base type for

LabeledEdit.

Note particularly the EditLabel property (see TBoundLabel), which contains the label attached to the Edit control.

TCustomEdit TCustomLabel
DoPositionLabel
- perform the code for positioning the label
CreateInternalLabel
- method for internally creating label
Create
- constructor for TCustomLabeledEdit: calls inherited Create then sets initial position and label spacing
TCustomEdit.Create TBoundLabel.Create
EditLabel
- the label attached to the edit box
LabelPosition

- whether above, below, to the left or to the right of the Edit box
LabelSpacing

- the distance between the Label and the Edit box
Labelled Edit: An Edit Box with a permanently attached Label

TLabeledEdit

: An Edit Box with a permanently attached Label

Saves time and effort over placing separate Label and Edit Box on Form. The properties are described in the parent component, TCustomLabeledEdit from which most of the properties are inherited

TCustomEdit TBoundLabel
Text

: the text-string being entered or edited in the Labelled Edit box
The base class for a general container which can hold other objects. It has a customizable border and a central text.

TCustomPanel: The base type for TPanel

A Panel is a defined rectangular area of the form into which other components can be placed to group them functionally and geographically.

TCustomPanel defines the positioning and bevelling properties of any descendent classes, and provides methods for painting and writing text to the panel.

UpdateBordersAndBevels
- make sure any changes to borders and bevels are accurately shown
UpdateParentColorChange
- update any pending changes in parent colour
Create
- constructor for TCustomPanel: calls inherited Create then sets initial style, bevel, colour, alignment and bounds
TCustomControl.Create
Alignment
- whether text is left or right justified, or centered
BevelInner
- determines the nature of the Inner Bevel of the panel (whether raised, lowered etc)
BevelOuter
- determines the nature of the Outer Bevel of the panel (whether raised, lowered etc)
BevelWidth
- the Width of the panel's bevel in pixels
FullRepaint
- if True, the panel needs to be fully repainted after each change
The main class for a general container which can hold other objects. It has a customizable border and a central text.

A Panel is a defined rectangular area of the form into which other components can be placed to group them functionally and geographically.

TCustomTrayIcon
- the base class for

TTrayIcon
, a multiplatform System Tray component.
TTrayIcon
is a multiplatform System Tray component. It adds an icon to the tray and signifies an application that is inactive but ready to be activated. Under Windows the System tray is usually located on the bottom-right corner of the screen, but it may be elsewhere. On other operating systems this position varies.
Create
creates a new instance of a TCustomTrayIcon class. If AOwner is not Nil, the new component attempts to insert itself in the list of owned components of the owner.
Create
- constructor for TCustomTrayIcon: performs inherited Create then creates icon, timer and initialises balloon timeout
TComponent.Create
Destroy
sends a opRemove notification to all components in the free-notification list. After that, all owned components are destroyed by calling DestroyComponents (and hence removed from the list of owned components). When this is done, the component removes itself from its owner's child component list. After that, the parent's destroy method is called.
Destroy
- destructor for TCustomTrayIcon: frees icon and timer then calls inherited Destroy
TComponent.Destroy
Hide - Removes the icon from the System Tray
Show - Shows the icon on the System Tray
ShowBalloonHint
displays a smal balloon-like window near the tray icon. It can be used to send notifications about the status of an action, or notify of a received message or any other event which doesn't require an imediate response. The Ballon window disappears after BallonHintTimeout milliseconds or when the user clicks it or it's close button.
Find the position of the Tray Icon and thus a position suitable to display the hinting BalloonHint. Under Windows an approximate location is detected.
the set of kinds of balloon flag that can be displayed (may be None, Info, Warning or Error)
The text to be shown in the hinting balloon
The period after which the hinting balloon disappears
The title to be shown on the hinting balloon
The canvas of the Tray Icon
PopUpMenu - a popup menu which is displayed when right mouse button is clicked over icon - separate from hint balloon
The Icon or picture that is to be displayed
A simple hint that is shown when the mouse hovers over the icon.
Determines if Icon should be painted to the System Tray. This can be set to false if one wishes to instead paint to the Canvas of the Tray Icon.
It is set to true when the icon is shown and remains true until Hide is called. Setting Visible has the same effect as calling Hide or Show.
Event Handler for Mouse Click on Tray Icon
Event handler for mouse double-click
Event handler if mouse button is pressed down
Event handler if mouse button is up
Event handler for mouse movement
Use this to implement custom drawing to the icon. Draw using the canvas property of the icon. Note: Does not work on win32.

Assign copies the contents of

Source to

Self, if the classes of the destination and source classes are compatible.

The TPersistent implementation of Assign does nothing but calling the AssignTo method of source. This means that if the destination class does not know how to assign the contents of the source class, the source class instance is asked to assign itself to the destination class. This means that it is necessary to implement only one of the two methods so that two classes can be assiged to one another.

In general, a statement of the form

Destination:=Source;

(where Destination and Source are classes) does not achieve the same as a statement of the form

Destination.Assign(Source);

After the former statement, both Source and Destination will point to the same object. The latter statemtent will copy the contents of the Source class to the Destination class.

Multi-PageControls
- controls that offer a selection of alternative pages for display

Multi-PageControls - controls that offer a selection of alternative pages for display

A number of controls, found in Units ExtCtrls and ComCtrls, offer the ability to create multi-page forms with a series of Tabs along one edge that allow the user to select one of the Pages for display and interaction.

These include: TPageControl, TNoteBook, TTabControl and THeaderControl (the Header Control components have a very different structure and function). Icons for all of these exist on the Additional or Common Controls tabs of the Component Palette in the Lazarus IDE.

While the various components may look superficially similar, they differ in properties, inheritance, method of adding additional pages, behaviour at run-time, methods for referencing pages and so on.

We have to be very clear when using the various properties, to distinguish between the word 'Tab' as referring to a Tab indicating an identifier for a page, and 'Tab' as referring to the TAB key on the standard keyboard. In common with most Lazarus components, it is possible to enable each control to be included in the TabOrder of TabStops for a Form, so that the component can be reached by repeated pressing of the TAB key, and we must not confuse this use of 'Tab' with the use to denote a Page.

The properties CanTab, TabStop and TabOrder refer to the use of the TAB key to navigate to the relevant control.

Properties such as Tabs, TabIndex, IndexOfTabAt(), TabIndexAtClientPos(), TabPosition, TabHeight, TabWidth, TabVisible, OnCloseTabClicked refer to the use for Page selection.

TTabControl and

TPageControl are both descended from

TCustomNoteBook (which is in turn descended from

TWinControl) and have many inherited properties in common.

TPageControl has, in general, more advanced features and is probably intended to replace

TNoteBook.

The following table summarises the main differences between the two components.

| Property or method | TNoteBook | TPageControl
Pages, ActivePage | String, TPage | TTabSheet, a more advanced version of TPage
Drag/Drop/Dock | Drag properties, but minimal Dock or Drop | Full Drag, Drop, Dock properties and methods
Indexing | PageIndex | ActivePageIndex, TabIndex
Showing/Hiding Tabs | ShowTabs | TabVisible in TTabSheet
Hints | No Hinting methods | ShowHint, ParentShowHint
Font | No Font properties | Font, ParentFont
Sensing position of Tab | None | TabPosition, OnGetSiteInfo
Options | Published property Options, include nboShowCloseButtons, nboMultiLine | No published Options property, but inherits Options (public property) from TCustomNoteBook, so they could be set explicitly in code

The individual Pages in both of the above controls (descended from TCustomNoteBook) are separate and can have their own specific collections of widgets which appear only when the relevant Page is selected by its Tab.

In contrast, the TTabControl component (descended from TCustomTabControl) has only one display area (Protected property DisplayRect), but the image displayed in it is determined by which tab has been selected. Each Tab has an index value which is used to select the appropriate image from an indexed ImageList and display it in the Display Rectangle.

The properties of the Tabs in TTabControl are very configurable compared with those in the controls derived from TCustomNoteBook, allowing for instance the creation of multi-line captions, the placement of images on Tabs, the possibility of the Owner routine determining the drawing of the tab, the configuration of Tab size, the selection of multiple tabs. The trade-off is that the display area is restricted in what it can display, and is essentially confined to display of images.

To use any of the above controls, select them from the relevant tab on the IDE Component Palette and drop them on the form in the required position. Fill in as many relevant properties as you can in the Object Inspector.

To add Tabs or Pages to the controls, select the control with a left mouse click or by selecting from the Component menu in the Object Inspector, then right-click on the component to get a pop-up menu, whose first item will be 'Add Page' or 'Add Tab'.

The Tabs in TTabControl can be edited by selecting 'Tabs' in the Object Inspector, clicking on the ellipsis (...) and using the string editor that pops up.

The pages inTNoteBook or TPageControl can be edited by selecting the ActivePage in the Object Inspector and then editing the properties of the individual page.

THeaderControl offers a widget that could be placed along the edge of a Panel or Form, allowing a highly customised mechanism for selection. However, there are no intrinsically associated display areas, and it is the developer's responsibility to supply an index associated with the selection from the

THeaderControl and determining what action is to occur or what is to be displayed in any attached Panel or Form.

When the control is first selected from the Component Palette and placed on a Form, it consists of an unadorned rectangle. However, selecting the control and right-clicking (or selecting the 'Sections' property in the Object Inspector) gives access to a Sections editor (a StringList editor) and Sections can be added to the control. The sections are separated by vertical lines, and each section can have a string inserted as a label, associated with an Index value. The Sections can be rearranged, re-ordered, or be individually painted.

In a typical application a THeaderControl and a TPanel or TForm would be docked together, and code would be written to find which Section of the Header had been selected, then use its index to control the display in the other docked control.

SetItems
- specifies the strings that form the Items of the group
CheckItemIndexChanged
- find out if the index for an item has changes
AutoFill
- whether responses to Items should automatically be filled in
Operating system Handle for the Tray Icon
InternalUpdate
- updates any pending changes
The behavior of this method depends on the widgetset and it was added to provide an way to update items which either cannot be updated automatically upon change or would be too inneficient to be updated on each change. One example of this is the tray icon menu under LCL-Carbon. It is not automatically updated when changes are done to it's associated LCL TPopUpMenu, but changes are updated when InternalUpdate is called. This happens because the tray icon menus are Cocoa menus which don't match the Carbon menus from LCL-Carbon. Similar things happen in various other widgetsets, so InternalUpdate can be expected to update the menu and/or icon of the tray icon, if this is necessary. If such an update is not required, for example because it is automatically updated on each change, then InternalUpdate will simply do nothing, so it is always a safe function to call, regardless of the widgetset.
OnPictureChanged
- event handler for a change in the picture
TBalloonFlags
enumerated type for flags on Tray Icon balloons
TCustomIdleTimer
- base class for TIdleTimer
SetAutoEnabled
puts the supplied boolean value into the AutoEnabled property and updates handlers
DoOnIdle
- action to be taken if the timer is idle
DoOnIdleEnd
-action to be taken at the end of an idle period
DoOnUserInput
- action to be taken when user input is detected
TComponent.Loaded
Loaded
- calls inherited method and updates Handlers
Create
- constructor for TCustomIdleTimer: calls inherited Create and initialises some local event variables
Destroy
- destructor for TCustomIdleTimer: calls inherited Destroy after setting the AutoEnabled property False
AutoEnabled
- if True, Timer is automatically enabled
AutoStartEvent
- the event that triggers autostart (either idle time-out or user input)
AutoEndEvent
- the event that causes the automatic end of the timer
FireOnIdle
- boolean property determining whether the timer should fire when idle