lazarus/docs/xml/lcl/forms.xml
2024-10-20 01:57:10 +01:00

21149 lines
671 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Documentation for LCL (Lazarus Component Library) and LazUtils (Lazarus
Utilities) are published under the Creative Commons Attribution-ShareAlike 4.0
International public license.
https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
file://../../cc-by-sa-4-0.txt
Copyright (c) 1997-2024, by the Lazarus Development Team.
-->
<fpdoc-descriptions>
<package name="lcl">
<!--
====================================================================
Forms
====================================================================
-->
<module name="Forms">
<short>
Implements Forms which are the basis for the LCL Graphical User Interface.
</short>
<descr>
<p>
<file>forms.pp</file> contains classes, types, and routines used to implement
forms, which are the basis for the graphical user interface in the Lazarus
Component Library (<b>LCL</b>).
</p>
<p>
The following components are added to the Lazarus IDE component palette:
</p>
<p>
<b>Standard</b> Tab
</p>
<ul>
<li>TFrame</li>
</ul>
<p>
<b>Additional</b> Tab
</p>
<ul>
<li>TScrollBox</li>
<li>TApplicationProperties</li>
</ul>
<p>
The unit also includes the <var>TApplication</var> and <var>TScreen</var>
classes used in the <var>Application</var> and <var>Screen</var> singletons.
</p>
</descr>
<element name="Classes"/>
<element name="SysUtils"/>
<element name="Types"/>
<element name="TypInfo"/>
<element name="Math"/>
<element name="CustApp"/>
<element name="LCLStrConsts"/>
<element name="LCLType"/>
<element name="LCLProc"/>
<element name="LCLIntf"/>
<element name="LCLVersion"/>
<element name="LCLClasses"/>
<element name="InterfaceBase"/>
<element name="LResources"/>
<element name="Graphics"/>
<element name="Menus"/>
<element name="LMessages"/>
<element name="CustomTimer"/>
<element name="ActnList"/>
<element name="ClipBrd"/>
<element name="HelpIntfs"/>
<element name="Controls"/>
<element name="ImgList"/>
<element name="Themes"/>
<element name="LazFileUtils"/>
<element name="LazUTF8"/>
<element name="Maps"/>
<element name="IntegerList"/>
<element name="LazMethodList"/>
<element name="LazLoggerBase"/>
<element name="LazUtilities"/>
<element name="GraphType"/>
<element name="UITypes"/>
<element name="System.UITypes"/>
<element name="TProcedure">
<short>Type used for a procedure that takes no arguments.</short>
<descr>
<p>
Used to define members in control classes.
</p>
</descr>
<seealso/>
</element>
<element name="TProcedureOfObject">
<short>
Type used for an object procedure that takes no arguments.
</short>
<descr>
<p>
<var>TProcedureOfObject</var> is a type which represents a parameter-less
object procedure. It is used in control classes to represent an event handler
which when signalled expects no arguments - not even a Sender object instance.
For example: TCustomUpDown uses it for its internal mouse timer event.
</p>
</descr>
<seealso/>
</element>
<element name="TPosition">
<short>Represents the Position and Size of a Form on Screen.</short>
<descr>
<p>
<var>TPosition</var> is an enumerated type with values that describe the
policy used to position and size a form instance in an application. TPosition
is the type used to implement the <var>Position</var> property in
<var>TCustomForm</var>. TPosition is used in the implementation of the
<var>MoveToDefaultPosition</var> method in TCustomForm.
</p>
</descr>
<seealso>
<link id="TCustomForm.Position"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
</seealso>
</element>
<element name="TPosition.poDesigned">
<short>
The Form appears exactly as it is positioned and sized in the Form Designer.
</short>
</element>
<element name="TPosition.poDefault">
<short>
The window manager decides how the form is to appear, in a default position
and size.
</short>
</element>
<element name="TPosition.poDefaultPosOnly">
<short>
Keeps the designed form size, but position determined by window manager.
</short>
</element>
<element name="TPosition.poDefaultSizeOnly">
<short>
Keeps the designed form position, but size determined by window manager.
</short>
</element>
<element name="TPosition.poScreenCenter">
<short>Centers the form on screen.</short>
</element>
<element name="TPosition.poDesktopCenter">
<short>
Centers the form on the desktop (not recommended, use poScreenCenter).
</short>
</element>
<element name="TPosition.poMainFormCenter">
<short>Centers the form on the Main Form.</short>
</element>
<element name="TPosition.poOwnerFormCenter">
<short>Centers the form on its Owner form.</short>
</element>
<element name="TWindowState">
<short>Represents the actual State of the window on the screen.</short>
<descr>
<p>
The actual meaning of each value depends on the platform:
</p>
<dl>
<dt>Windows and Mac OS X</dt>
<dd>These operating systems support all values.</dd>
<dt>X11</dt>
<dd>
The window state is a hint sent to the Window Manager, so more primitive
Window Managers might ignore these hints.
</dd>
<dt>Windows CE</dt>
<dd>
In Windows CE platforms where Application.ApplicationType = atKeyPadDevice or
atPDA (like in Windows Phone, PocketPC and Windows Mobile), wsMinimized and
wsNormal are understood as wsMaximized, which is the normal state for windows
in this platform. An exception are windows with BorderStyle=bsDialog or
bsNone, which are allowed to have a custom position and size. For more
information please read the <url
href="http://wiki.lazarus.freepascal.org/Windows_CE_Development_Notes#Positioning_and_size_of_Dialogs_and_Forms">Lazarus
Wiki article</url>.
</dd>
<dt>Android</dt>
<dd>In this platform windows are always fullscreen.</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TWindowState.wsNormal">
<short>Neither maximized nor minimized.</short>
</element>
<element name="TWindowState.wsMinimized">
<short>
The window is minimized and is not shown in the screen, but only in the
taskbar.
</short>
</element>
<element name="TWindowState.wsMaximized">
<short>
The window appears maximized. The exact behavior is up to the window manager,
but usually the window appear occupying all of the work area of a monitor.
</short>
</element>
<element name="TWindowState.wsFullScreen">
<short>
The window appears in full screen mode, when allowed by the platform. It
will, for example, attempt to appear on the top of task bars and other static
platform user interface elements. wsFullScreen is converted to wsMaximized
for use on the Windows platform; the API does not provide a full screen
option.
</short>
</element>
<!-- Modified in 43d7f203. -->
<element name="TCloseAction">
<short>
Represents actions that can occur when a form is closed.
</short>
<descr/>
<version>
Modified in LCL 3.0 to be an alias to TCloseAction in System.UITypes for FPC
3.3.0 or higher.
</version>
<seealso>
<link id="TCustomForm.OnClose">TCustomForm.OnClose</link>
<!--
Uncomment when the topic exists in RTL documentation.
<link id="#rtl.system.uitypes.TCloseAction">TCloseAction</link>
-->
</seealso>
</element>
<element name="TCloseAction.caNone">
<short>Do nothing.</short>
</element>
<element name="TCloseAction.caHide">
<short>The form is hidden.</short>
</element>
<element name="TCloseAction.caFree">
<short>The form is destroyed.</short>
</element>
<element name="TCloseAction.caMinimize">
<short>The form is minimized.</short>
</element>
<!-- Added in 43d7f203. -->
<element name="caNone">
<short>
Represents the caNone enumeration value in TCloseAction.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the constant in SystemUITypes for FPC 3.3.0 or
higher.
</version>
<seealso/>
</element>
<element name="caHide">
<short>
Represents the caHide enumeration value in TCloseAction.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the constant in SystemUITypes for FPC 3.3.0 or
higher.
</version>
<seealso/>
</element>
<element name="caFree">
<short>
Represents the caFree enumeration value in TCloseAction.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the constant in SystemUITypes for FPC 3.3.0 or
higher.
</version>
<seealso/>
</element>
<element name="caMinimize">
<short>
Represents the caMinimize enumeration value in TCloseAction.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the constant in SystemUITypes for FPC 3.3.0 or
higher.
</version>
<seealso/>
</element>
<element name="TCustomHintAction">
<short>
Represents a standard action used to get a Hint value.
</short>
<descr>
<p>
<var>TCustomHintAction</var> is a <var>TCustomAction</var> descendant.
TCustomHintAction publishes the Hint property available in the ancestor.
TCustomHintAction is the base class for THintAction defined in the
<file>StdActns</file> unit.
</p>
<p>
TCustomHintAction is used in <var>TApplication</var> when setting the value
for its Hint property and its <var>OnHint</var> event handler has not been
assigned. TCustomHintAction is also used in the <var>ExecuteAction</var>
method in <var>TStatusBar</var> when its <var>AutoHint</var> property is
enabled.
</p>
</descr>
<seealso>
<link id="TApplication.Hint"/>
<link id="TApplication.OnHint"/>
<link id="#lcl.comctrls.TStatusBar.ExecuteAction">TStatusBar.ExecuteAction</link>
<link id="#lcl.stdactns.THintAction">THintAction</link>
</seealso>
</element>
<element name="TCustomHintAction.Hint" link="#lcl.actnlist.TCustomAction.Hint"/>
<element name="TScrollBarKind">
<short>The orientation of a scroll bar.</short>
<descr/>
<seealso/>
</element>
<element name="TScrollBarKind.sbHorizontal">
<short>Horizontal scroll bar.</short>
</element>
<element name="TScrollBarKind.sbVertical">
<short>Vertical scroll bar.</short>
</element>
<element name="TScrollBarInc">
<short>The range for scroll bar increments.</short>
<descr/>
<seealso/>
</element>
<element name="TScrollBarStyle">
<short>Scroll bar style flags.</short>
<descr/>
<seealso/>
</element>
<element name="TScrollBarStyle.ssRegular">
<short>Default style; not used in the current LCL version.</short>
</element>
<element name="TScrollBarStyle.ssFlat">
<short>
Scroll bar appears flat; Not used in the current LCL version.
</short>
</element>
<element name="TScrollBarStyle.ssHotTrack">
<short>
Scroll bar sends HotTrack messages; Not used in the current LCL version.
</short>
</element>
<element name="EScrollBar">
<short>Exception class raised in <link id="TControlScrollBar"/>.</short>
<descr/>
<seealso/>
</element>
<element name="TControlScrollBar">
<short>Scroll bar type used in TScrollingWinControl.</short>
<descr>
<p>
Scrollable controls supply their own <b>integrated</b> scroll bars, one for
horizontal and one for vertical scrolling. This class allows access to (one
of) these integrated scroll bars.
</p>
<p>
A scrollable control has both a physical (visible) client size, and a logical
(virtual) client size.
</p>
<p>
The <var>Range</var> property reflects the total virtual client size, in
pixels.
</p>
<p>
The <var>Page</var> property corresponds to physical (visible) client size,
in pixels, excluding the scroll bars. It also determines the size of the
slider, relative to the total Range.
</p>
<p>
The <var>Position</var> property reflects the virtual origin of the visible
client area, equivalent to the top coordinate of the slider. The Position can
be changed by the user or by code.
</p>
<p>
Scroll bars usually appear only when Range is larger than Page, i.e. when the
entire content cannot be shown in the visible area for a control. See the
scroll bar properties in <var>TScrollingWinControl</var> for more details.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl"/>
<link id="TScrollBox"/>
<link id="TCustomForm"/>
</seealso>
</element>
<element name="TControlScrollBar.FAutoRange">
<short>
The virtual scroll range (Range - ClientSize), at least zero and never
negative.
</short>
</element>
<element name="TControlScrollBar.FIncrement" link="#lcl.forms.TControlScrollBar.Increment"/>
<element name="TControlScrollBar.FKind" link="#lcl.forms.TControlScrollBar.Kind"/>
<element name="TControlScrollBar.FPage" link="#lcl.forms.TControlScrollBar.Page"/>
<element name="TControlScrollBar.FRange" link="#lcl.forms.TControlScrollBar.Range"/>
<element name="TControlScrollBar.FSmooth" link="#lcl.forms.TControlScrollBar.Smooth"/>
<element name="TControlScrollBar.FTracking" link="#lcl.forms.TControlScrollBar.Tracking"/>
<element name="TControlScrollBar.FVisible" link="#lcl.forms.TControlScrollBar.Visible"/>
<element name="TControlScrollBar.FOldScrollInfo"/>
<element name="TControlScrollBar.FOldVisible"/>
<element name="TControlScrollBar.FOldScrollInfoValid"/>
<element name="TControlScrollBar.FControl">
<short>The associated TScrollingWinControl instance.</short>
</element>
<element name="TControlScrollBar.FPosition" link="#lcl.forms.TControlScrollBar.Position"/>
<element name="TControlScrollBar.ControlHandle">
<short>
Gets the Handle for the associated TScrollingWinControl instance.
</short>
<descr>
<p>
Provides the handle passed as an argument to routines in the LCL interface,
including:
</p>
<ul>
<li>GetScrollInfo</li>
<li>SetScrollInfo</li>
<li>GetScrollbarSize</li>
<li>GetScrollbarVisible</li>
</ul>
</descr>
<seealso>
<link id="#lcl.lclintf.GetScrollInfo">GetScrollInfo</link>
<link id="#lcl.lclintf.SetScrollInfo">SetScrollInfo</link>
<link id="#lcl.lclintf.GetScrollbarSize">GetScrollbarSize</link>
<link id="#lcl.lclintf.GetScrollbarVisible">GetScrollbarVisible</link>
</seealso>
</element>
<element name="TControlScrollBar.ControlHandle.Result">
<short>The handle for the associated control.</short>
</element>
<element name="TControlScrollBar.GetAutoScroll">
<short>
Gets the AutoScroll state for the associated TScrollingWinControl control.
</short>
<descr>
<remark>
<var>GetAutoScroll</var> is <b>not</b> used as the read access specifier for
the AutoScroll property. It is used in methods to ensure that the class
reflects the current state for its associated control.
</remark>
</descr>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
</seealso>
</element>
<element name="TControlScrollBar.GetAutoScroll.Result">
<short>
<b>True</b> when the Control for the class instance has set its AutoScroll
property.
</short>
</element>
<element name="TControlScrollBar.GetIncrement">
<short>Gets the value for the Increment property.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Increment"/>
</seealso>
</element>
<element name="TControlScrollBar.GetIncrement.Result">
<short>Value for the property.</short>
</element>
<element name="TControlScrollBar.GetPage">
<short>Gets the value for the Page property.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Page"/>
</seealso>
</element>
<element name="TControlScrollBar.GetPage.Result">
<short>Value for the property.</short>
</element>
<element name="TControlScrollBar.GetPosition">
<short>Gets the value for the Position property.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Position"/>
</seealso>
</element>
<element name="TControlScrollBar.GetPosition.Result">
<short>Value for the property.</short>
</element>
<element name="TControlScrollBar.GetRange">
<short>Gets the value for the Range property.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Range"/>
</seealso>
</element>
<element name="TControlScrollBar.GetRange.Result">
<short>Value for the property.</short>
</element>
<element name="TControlScrollBar.GetSize">
<short>Gets the value for the Size property.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Size"/>
</seealso>
</element>
<element name="TControlScrollBar.GetSize.Result">
<short>Value for the property.</short>
</element>
<element name="TControlScrollBar.GetSmooth">
<short>Gets the value for the Smooth property.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Smooth"/>
</seealso>
</element>
<element name="TControlScrollBar.GetSmooth.Result">
<short>Value for the property.</short>
</element>
<element name="TControlScrollBar.HandleAllocated">
<short>
<b>True</b> when the associated TScrollingWinControl and its handle are valid.
</short>
<descr>
<p>
Used in methods which call LCL interface routines to avoid exceptions
resulting from an unassigned control or an invalid handle value.
</p>
</descr>
<seealso/>
</element>
<element name="TControlScrollBar.HandleAllocated.Result">
<short>
<b>True</b> when the associated TScrollingWinControl and its handle are valid.
</short>
</element>
<element name="TControlScrollBar.IsRangeStored">
<short>Implements the storage specifier for the Range property.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Range"/>
<link id="TScrollingWinControl.AutoScroll"/>
</seealso>
</element>
<element name="TControlScrollBar.IsRangeStored.Result">
<short><b>True</b> when AutoScroll is enabled for the scroll bar.</short>
</element>
<element name="TControlScrollBar.ControlUpdateScrollBars">
<short>Forces the associated control to update its scroll bars.</short>
<descr>
<p>
Calls the <var>UpdateScrollBars</var> method in the associated
<var>TScrollingWinControl</var> instance when its handle has been allocated.
No actions are performed in the method during LCL component streaming and
when the component is freed.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.UpdateScrollBars"/>
</seealso>
</element>
<element name="TControlScrollBar.InternalSetRange">
<short>
Validates and applies the specified Range and updates the scroll bars.
</short>
<descr>
<p>
Ensures that <var>AValue</var> is not less than zero (<b>0</b>). Applies the
range limited value to the member for the <var>Range</var> property, and
calls <var>ControlUpdateScrollBars</var> to refresh the scroll bars for the
associated <var>TScrollingWinControl</var> instance.
</p>
<p>
InternalSetRange is called when the <var>SetRange</var> method updates the
value for the Range property.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.ControlUpdateScrollBars"/>
<link id="TControlScrollBar.SetRange"/>
<link id="TControlScrollBar.Range"/>
<link id="TScrollingWinControl.UpdateScrollBars"/>
</seealso>
</element>
<element name="TControlScrollBar.InternalSetRange.AValue">
<short>Value checked and applied to the Range property.</short>
</element>
<element name="TControlScrollBar.ScrollHandler">
<short>Handler for scroll bar movement messages.</short>
<descr>
<p>
<var>ScrollHandler</var> is a method used to ensure that the control message
in <var>Message</var> is applied to the <var>Position</var> property for the
scroll bar. ScrollHandler uses the <var>ScrollCode</var> member from the
<var>TLMScroll</var> instance to determine the actions needed in the method.
It handles the following ScrollCode values:
</p>
<dl>
<dt>SB_LINEUP</dt>
<dd>Decreases Position by the value in Increment.</dd>
<dt>SB_LINEDOWN</dt>
<dd>Increases Position by the value in Increment.</dd>
<dt>SB_PAGEUP</dt>
<dd>Decreases Position by the value in Page.</dd>
<dt>SB_PAGEDOWN</dt>
<dd>Increases Position by the value in Page.</dd>
<dt>SB_THUMBPOSITION</dt>
<dd>Sets Position to the value in the Pos member in Message.</dd>
<dt>SB_THUMBTRACK</dt>
<dd>
Sets Position to the value in the Pos member in Message when Tracking is
enabled. No actions are performed when Tracking is set to <b>False</b>.
</dd>
<dt>SB_TOP</dt>
<dd>Sets Position to 0 (zero).</dd>
<dt>SB_BOTTOM</dt>
<dd>Sets Position to the value in the Range property.</dd>
</dl>
<p>
No actions are performed in the method if Message has any other value in its
ScrollCode member. No actions are performed in the method at design-time.
</p>
<p>
ScrollHandler ensures the new value for the Position property is in the
range <b>0..<var>Range</var></b>. Calls <var>InvalidateScrollInfo</var> to
force scroll bar information to be re-initialized. Calls
<var>SetPosition</var> to apply the new value for the Position property and
scrolls the associated <var>TScrollingWinControl</var> accordingly. Sets the
<var>Result</var> member in Message to <b>1</b> to indicate the control
message was handled in the method.
</p>
<p>
ScrollHandler is called when the <var>WMHScroll</var> or <var>WMVScroll</var>
methods in the associated TScrollingWinControl instance are used to handle
scroll messages.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Increment"/>
<link id="TControlScrollBar.Page"/>
<link id="TControlScrollBar.Position"/>
<link id="TControlScrollBar.Range"/>
<link id="TScrollingWinControl.WMHScroll"/>
<link id="TScrollingWinControl.WMVScroll"/>
</seealso>
</element>
<element name="TControlScrollBar.ScrollHandler.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TControlScrollBar.SetIncrement" link="#lcl.forms.TControlScrollBar.Increment"/>
<element name="TControlScrollBar.SetIncrement.AValue">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.SetPage" link="#lcl.forms.TControlScrollBar.Page"/>
<element name="TControlScrollBar.SetPage.AValue">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.SetPosition" link="#lcl.forms.TControlScrollBar.Position"/>
<element name="TControlScrollBar.SetPosition.Value">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.SetRange" link="#lcl.forms.TControlScrollBar.Range"/>
<element name="TControlScrollBar.SetRange.AValue">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.SetSize" link="#lcl.forms.TControlScrollBar.Size"/>
<element name="TControlScrollBar.SetSize.AValue">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.SetSmooth" link="#lcl.forms.TControlScrollBar.Smooth"/>
<element name="TControlScrollBar.SetSmooth.AValue">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.SetTracking" link="#lcl.forms.TControlScrollBar.Tracking"/>
<element name="TControlScrollBar.SetTracking.AValue">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.SetVisible" link="#lcl.forms.TControlScrollBar.Visible"/>
<element name="TControlScrollBar.SetVisible.AValue">
<short>New value for the property.</short>
</element>
<element name="TControlScrollBar.UpdateScrollBar">
<short>
Updates the state and position for the scroll bar on the associated control.
</short>
<descr>
<p>
<var>UpdateScrollBar</var> is a procedure used to update the state and
position for the scroll bar on the associated control.
</p>
<p>
If the associated control is a <var>TScrollingWinControl</var> instance,
<var>TScrollInfo</var> is captured using the Range, Position, and Page
properties. The scroll bar information is applied to the associated control by
calling SetScrollInfo. The visibility for the scroll bar is updated by calling
ShowScrollBar.
</p>
<remark>
TScrollInfo values and visibility are not applied when a handle has not been
allocated for the control, when the scroll information has not been changed, or
when when the control is not a TScrollingWinControl class instance.
</remark>
<p>
UpdateScrollBar applies the current value in Position to a visible scroll bar
in the class instance. If the associated control is a TScrollingWinControl
instance, the Smooth property is used to determine whether Increment needs to
be adjusted to a value that is 10% of the Page size for the control. Increment
is not modified if Smooth is set to <b>False</b>.
</p>
<p>
UpdateScrollBar is used in the implementation of the ControlUpdateScrollBars
method.
</p>
</descr>
<version>
Modified in LCL version 3.0 to omit updates to scroll bar information if the
values have not been changed.
</version>
<seealso>
<link id="TControlScrollBar.Increment"/>
<link id="TControlScrollBar.Page"/>
<link id="TControlScrollBar.Position"/>
<link id="TControlScrollBar.Smooth"/>
<link id="TControlScrollBar.Range"/>
<link id="TControlScrollBar.Visible"/>
<link id="TControlScrollBar.ControlUpdateScrollBars"/>
</seealso>
</element>
<element name="TControlScrollBar.InvalidateScrollInfo">
<short>Renders scroll information invalid for the control.</short>
<descr>
<p>
<var>InvalidateScrollInfo</var> is used to mark the current
<var>TScrollInfo</var> in the control as invalid. This occurs when a new
value is assigned to the <var>Position</var> property, and when
<var>ScrollHandler</var> applies position information found in
<var>TLMScroll</var> messages. Calling InvalidateScrollInfo results in
TScrollInfo being updated and applied for scrolling window controls in the
<var>UpdateScrollBar</var> method.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Position"/>
<link id="TControlScrollBar.UpdateScrollBar"/>
<link id="TControlScrollBar.ScrollHandler"/>
<link id="#lcl.lmessages.TLMScroll">TLMScroll</link>
</seealso>
</element>
<element name="TControlScrollBar.GetHorzScrollBar">
<short>Gets the horizontal scroll bar for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TControlScrollBar.GetHorzScrollBar.Result">
<short>TControlScrollBar instance representing the scroll bar.</short>
</element>
<element name="TControlScrollBar.GetVertScrollBar">
<short>Get the vertical scroll bar for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TControlScrollBar.GetVertScrollBar.Result">
<short>
Scroll bar for the control, or Nil when not a TScrollingWinControl descendant.
</short>
</element>
<element name="TControlScrollBar.ScrollBarShouldBeVisible">
<short>Determines whether a scroll bar is required.</short>
<descr/>
<seealso>
<link id="TControlScrollBar.Page"/>
<link id="TControlScrollBar.Range"/>
<link id="TControlScrollBar.Visible"/>
</seealso>
</element>
<element name="TControlScrollBar.ScrollBarShouldBeVisible.Result">
<short>
<b>True</b> when Visible, and Range is larger than the Page size.
</short>
</element>
<element name="TControlScrollBar.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the constructor for the class instance, and calls the inherited
constructor on entry.
</p>
<p>
Create sets the associated control for the class instance and the Kind
property to the values specified in the AControl and AKind arguments. Create
sets the default values for properties, including:
</p>
<dl>
<dt>Page</dt>
<dd>Set to 80.</dd>
<dt>Increment</dt>
<dd>Set to 8.</dd>
<dt>Position and Range</dt>
<dd>Set to 0 (zero).</dd>
<dt>Smooth, Tracking</dt>
<dd>Both are set to <b>False</b>.</dd>
<dt>Visible</dt>
<dd>Set to <b>True</b>.</dd>
</dl>
</descr>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TControlScrollBar.Create.AControl">
<short>The windowed control in which the scroll bar is found.</short>
</element>
<element name="TControlScrollBar.Create.AKind">
<short>The scroll bar orientation.</short>
</element>
<element name="TControlScrollBar.Assign">
<short>
If Source is a <var>TControlScrollBar</var>, copies properties to itself,
else performs inherited <var>Assign</var>.
</short>
<descr>
<p>
Assigns the contents of the source object to the current object; in
particular finds the Increment, Position, Range and whether smooth scrolling
is to be feature and whether the scroll bar is visible.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Increment"/>
<link id="TControlScrollBar.Position"/>
<link id="TControlScrollBar.Range"/>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TControlScrollBar.Assign.Source">
<short>
TControlScrollBar instance with the values copied in the method.
</short>
</element>
<element name="TControlScrollBar.IsScrollBarVisible">
<short>
Determines if the scroll bar is visible using the state from the widgetset
class.
</short>
<descr>
<p>
<var>IsScrollBarVisible</var> is a <var>Boolean</var> function used to
determine if the scroll bar for the associated control is visible. The return
value defaults to the value in the <var>Visible</var> property. If the handle
has been allocated for the control, the <var>GetScrollbarVisible</var>
routine from the LCL interface is used to get the visibility for the scroll
bar <var>Kind</var>.
</p>
<p>
IsScrollBarVisible is used in the implementation of the
<var>ClientSizeWithBar</var> and <var>ClientSizeWithoutBar</var> methods.
</p>
</descr>
<seealso/>
</element>
<element name="TControlScrollBar.IsScrollBarVisible.Result">
<short><b>True</b> if the scroll bar is visible.</short>
</element>
<element name="TControlScrollBar.ScrollPos">
<short>The Position for the scroll bar, or zero if not Visible.</short>
<descr/>
<seealso/>
</element>
<element name="TControlScrollBar.ScrollPos.Result">
<short>The scroll bar Position, or zero if not Visible.</short>
</element>
<element name="TControlScrollBar.GetOtherScrollBar">
<short>
Gets the scroll bar with the opposite orientation (horz/vert) of the current
instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TControlScrollBar.GetOtherScrollBar.Result">
<short>TControlScrollBar instance for the opposite orientation.</short>
</element>
<element name="TControlScrollBar.Size">
<short>Height or width for the scroll bar.</short>
<descr>
<p>
<var>Size</var> is a read-only <var>Integer</var> property with the width or
height in pixels for the scroll bar indicated in the Kind property. For a
horizontal scroll bar (Kind is sbHorizontal), the return value is the height
of the scroll bar. Conversely, for a vertical scroll bar (Kind is sbVertical)
the value is the width of the scroll bar.
</p>
<p>
Size calls the GetScrollbarSize routine in the LCL interface to get the
return value when the Handle for the control has been allocated. Otherwise,
the GetSystemMetrics method in the widgetset class is called to get
the return value.
</p>
<p>
Use ControlSize, ClientSize, ClientSizeWithBar, and ClientSizeWithoutBar methods to get the control or client width for the control.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Kind"/>
<link id="TControlScrollBar.ControlSize"/>
<link id="TControlScrollBar.ClientSize"/>
<link id="TControlScrollBar.ClientSizeWithBar"/>
<link id="TControlScrollBar.ClientSizeWithoutBar"/>
<link id="TScrollBarKind"/>
</seealso>
</element>
<element name="TControlScrollBar.ControlSize">
<short>Returns the size for the associated control.</short>
<descr>
<p>
<var>ControlSize</var> is an <var>Integer</var> function used to get the size
for the associated control in the class instance. Uses the value in
<var>Kind</var> to determine the control property used as the return value.
When Kind is <var>sbVertical</var>, the <var>Width</var> for the associated
Control is used. When Kind is <var>sbHorizontal</var>, the <var>Height</var>
for the associated Control is used.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Kind"/>
<link id="TControlScrollBar.Create"/>
<link id="TScrollBarKind"/>
</seealso>
</element>
<element name="TControlScrollBar.ControlSize.Result">
<short>Size for the associated control.</short>
</element>
<element name="TControlScrollBar.ClientSize">
<short>
Gets the size for the scroll bar based on the client area in the associated
control.
</short>
<descr>
<p>
<var>ClientSize</var> is an <var>Integer</var> function used to get the size
from the client area in the associated control. ClientSize uses the value in
Kind to determine whether the height or width for the associated control is
used as the return value. For example:
</p>
<dl>
<dt>sbVertical</dt>
<dd>Returns the client width from the associated control.</dd>
<dt>sbHorizontal</dt>
<dd>Returns the client height from the associated control.</dd>
</dl>
<p>
ClientSize is used in methods like <var>ClientSizeWithBar</var> and
<var>ClientSizeWithoutBar</var> to get the size for the scroll bar adjusted
for scroll bar spacing returned from <var>GetSystemMetrics</var>.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Kind"/>
<link id="TControlScrollBar.FControl"/>
<link id="TControlScrollBar.ClientSizeWithBar"/>
<link id="TControlScrollBar.ClientSizeWithoutBar"/>
</seealso>
</element>
<element name="TControlScrollBar.ClientSize.Result">
<short>Size from the client area in the associated control.</short>
</element>
<element name="TControlScrollBar.ClientSizeWithBar">
<short>
Calculates the size of the associated control when the scroll bar is Visible.
</short>
<descr>
<p>
<var>ClientSizeWithBar</var> is an <var>Integer</var> function used to
calculate the client area for the associated control when the scroll bar is
<var>Visible</var>. The return value contains the calculated value from
<var>ClientSize</var>. If the scroll bar is not Visible, additional spacing
(for the SM_SWSCROLLBARSPACING system metric) between the scroll bar and its
associated control is removed from the return value.
</p>
<p>
ClientSizeWithBar is used in the implementation of the
<var>ComputeScrollbars</var> method in <var>TScrollingWinControl</var> when
the <var>Range</var> for the scroll bar would exceed the space available on
the control, and in the <var>GetPreferredSizeClientFrame</var> method.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.ClientSize"/>
<link id="TControlScrollBar.Visible"/>
<link id="TControlScrollBar.Range"/>
<link id="TScrollingWinControl.ComputeScrollbars"/>
<link id="TScrollingWinControl.GetPreferredSizeClientFrame"/>
</seealso>
</element>
<element name="TControlScrollBar.ClientSizeWithBar.Result">
<short>
Size for the client area after adjusting for a visible scroll bar.
</short>
</element>
<element name="TControlScrollBar.ClientSizeWithoutBar">
<short>
Calculates the size of the associated control when the scroll bar is not
Visible.
</short>
<descr>
<p>
<var>ClientSizeWithoutBar</var> is an <var>Integer</var> function used to
calculate the client area for the associated control when the scroll bar is
<var>Visible</var>. The return value contains the calculated value from
<var>ClientSize</var>. If the scroll bar is Visible, additional spacing (for
the SM_SWSCROLLBARSPACING system metric) between the scroll bar and its
associated control is added to the return value.
</p>
<p>
ClientSizeWithoutBar is used in the implementation of the
<var>ComputeScrollbars</var> and <var>GetPreferredSizeClientFrame</var>
methods in <var>TScrollingWinControl</var>.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.ClientSize"/>
<link id="TControlScrollBar.Visible"/>
<link id="TControlScrollBar.Range"/>
<link id="TScrollingWinControl.ComputeScrollbars"/>
<link id="TScrollingWinControl.GetPreferredSizeClientFrame"/>
</seealso>
</element>
<element name="TControlScrollBar.ClientSizeWithoutBar.Result">
<short>Size for the client area when the scroll bar is hidden.</short>
</element>
<element name="TControlScrollBar.Increment">
<short>
Number of pixels the display area is scrolled for scroll bar or mouse wheel
movements.
</short>
<descr>
<p>
<var>Increment</var> is a <var>TScrollBarInc</var> property which indicates
the amount the client area in the associated control is scrolled when the
<b>Up</b> or <b>Down</b> navigation arrows on the scroll bar are clicked. It is also used for movements of the mouse wheel on the control. The default
value is <b>8</b> pixels.
</p>
<p>
The value in Increment may be automatically recalculated in the
<var>UpdateScrollBar</var> method when the <var>Smooth</var> property is
enabled and the associated control is a <var>TScrollingWinControl</var>
descendant. This is done to ensure that Increment contains 10% of the value
for the <var>Page</var> property.
</p>
<p>
Increment is used in the <var>ScrollHandler</var> method when updating the
<var>Position</var> property for scroll bar messages received in the control.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.UpdateScrollBar"/>
<link id="TControlScrollBar.ControlUpdateScrollBars"/>
<link id="TControlScrollBar.Smooth"/>
<link id="TControlScrollBar.Page"/>
<link id="TControlScrollBar.ScrollHandler"/>
<link id="TScrollingWinControl"/>
<link id="TScrollBarInc"/>
</seealso>
</element>
<element name="TControlScrollBar.Kind">
<short>The orientation for the scroll bar: horizontal or vertical.</short>
<descr>
<p>
<var>Kind</var> is a read-only <var>TScrollBarKind</var> property which
indicates the orientation for the scroll bar. The value for Kind is passed as
an argument to the <var>Create</var> constructor, and stored in the property.
The value in Kind is used in methods which update properties or state for the
control, such as:
</p>
<ul>
<li>Position</li>
<li>Range</li>
<li>Page</li>
<li>Tracking</li>
<li>Size</li>
<li>ClientSize</li>
<li>ControlSize</li>
<li>IsScrollBarVisible</li>
<li>GetOtherScrollBar</li>
<li>UpdateScrollBar</li>
</ul>
</descr>
<seealso>
<link id="TControlScrollBar.Create"/>
</seealso>
</element>
<element name="TControlScrollBar.Page">
<short>
Number of pixels needed for a page on the associated control.
</short>
<descr>
<p>
<var>Page</var> is a <var>TScrollBarInc</var> property with the number of
pixels needed for a page using the orientation in Kind for the scroll bar.
This is the amount that the associated control is scrolled when the track bar
or direction indicators are clicked on the scroll bar. The default value for
the property is 80 pixels.
</p>
<p>
When the associated control is a TScrollingWinControl descendant, the scroll
information is retrieved using the Handle for the control. The property value
may be changed when the associated control calls its UpdateScrollbars method.
This can occur when the handle is created for the associated control, or when
its AutoScroll property is changed.
</p>
<p>
Changing the value for the property causes the ControlUpdateScrollBars method
to be called to update the scroll bars in the associated control.
</p>
</descr>
<seealso/>
</element>
<element name="TControlScrollBar.Smooth">
<short>
Enables smooth scrolling, with automatic adjustment of Increment and Page.
</short>
<descr>
<p>
<var>Smooth</var> is a <var>Boolean</var> property that indicates if the
associated control is scrolled using an Increment value computed to be 10% of
the Page size for the scroll bar. Set Smooth to <b>True</b> when the scroll
bar should use a scrolling increment based on the size of the client area in
the associated control. When Smooth is set to <b>False</b>, the
<var>Increment</var> property determines the size for the scroll operation
when the Up or Down arrows are clicked.
</p>
<p>
Smooth is used in the <var>UpdateScrollBar</var> method, and when set to
<b>True</b> causes the value in Increment to be recalculated using the
proportional size value. Smooth is relevant when the associated control is
descended from <var>TScrollingWinControl</var>.
</p>
<p>
The default value for the property is <b>False</b>.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Increment"/>
<link id="TControlScrollBar.Page"/>
<link id="TControlScrollBar.UpdateScrollBar"/>
<link id="TScrollingWinControl"/>
</seealso>
</element>
<element name="TControlScrollBar.Position">
<short>Position of the scroll bar slider in the range 0..Range-Page.</short>
<descr>
<p>
The Position reflects the top coordinate of the slider, which is Range-Page
when the slider is at the bottom of the bar.
</p>
</descr>
<seealso/>
</element>
<element name="TControlScrollBar.Range">
<short>
The size of the logical display area on the associated control for the scroll
bar orientation.
</short>
<descr>
<p>
<var>Range</var> is an <var>Integer</var> property with the number of pixels
needed for the logical display area on the control where the scroll bar is
used. It measures the size of the scrolled content in the direction indicated
by the Kind property. The default value for the property is 0, and indicates
the dimensions for the scrollable content is smaller than the Page size for
the scroll bar.
</p>
<p>
The values in Range and other properties are updated when the associated
control recalculates sizes and positions for its scroll bars.
</p>
<p>
Use Position to determine the origin for the scrollable content displayed in
the visible area on the associated control.
</p>
<p>
Use Page to determine the number of pixels along the scroll bar orientation
needed for the visible area on the associated control.
</p>
</descr>
<seealso/>
</element>
<element name="TControlScrollBar.Tracking">
<short>
Enables feedback when the slider is dragged.
</short>
<descr>
<p>
If it takes a significant amount of time to repaint the associated control at
a new position, Tracking should be set to <b>False</b> to prevent flicker.
This causes the control to be updated when the slider is released.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TControlScrollBar.Visible">
<short>Hides the scroll bar when <b>False</b> (default <b>True</b>).</short>
<descr>
<p>
The scroll bar is visible only if (Visible = True) <b>and</b>
(Range &gt; Page).
</p>
<p>
Set Visible to <b>False</b> to hide the scroll bar. The content on the associated control can still be scrolled in program code.
</p>
<p>
Use IsScrollBarVisible to get the current visible state for the scroll bar.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.IsScrollBarVisible"/>
</seealso>
</element>
<element name="TScrollingWinControl">
<short>Implements a windowed control with scroll bars.</short>
<descr>
<p>
This class introduces a logical (virtual) client area, part of which is
visible in the physical (visible) client area. <link
id="TControlScrollBar">ScrollBars</link> allow the user to scroll through the
logical client area.
</p>
<p>
TScrollingWinControl is the ancestor for components like
<var>TScrollBox</var> and <var>TCustomDesignControl</var>, and indirectly for
<var>TCustomFrame</var> and <var>TCustomForm</var>.
</p>
</descr>
<seealso>
<link id="TControlScrollBar"/>
<link id="TScrollBox"/>
<link id="TCustomDesignControl"/>
<link id="TCustomFrame"/>
<link id="TCustomForm"/>
<link id="TFrame"/>
<link id="TForm"/>
</seealso>
</element>
<element name="TScrollingWinControl.FHorzScrollBar"/>
<element name="TScrollingWinControl.FVertScrollBar"/>
<element name="TScrollingWinControl.FAutoScroll"/>
<element name="TScrollingWinControl.FIsUpdating">
<short>
Prevents recursive updates, <b>True</b> while an update is already in
progress.
</short>
</element>
<element name="TScrollingWinControl.SetHorzScrollBar"/>
<element name="TScrollingWinControl.SetHorzScrollBar.Value"/>
<element name="TScrollingWinControl.SetVertScrollBar"/>
<element name="TScrollingWinControl.SetVertScrollBar.Value"/>
<element name="TScrollingWinControl.HideScrollbars">
<short>Hides scroll bars with valid handles.</short>
</element>
<element name="TScrollingWinControl.WSRegisterClass" link="#lcl.lclclasses.TLCLComponent.WSRegisterClass"/>
<element name="TScrollingWinControl.AlignControls">
<short>
Aligns the controls which have the class instance as their Parent.
</short>
<descr>
<p>
Calls the inherited method to align the specified control and its children to
the parent control. Ensures that the page, range, and position in the scroll
bars are recalculated when <var>AutoScroll</var> is enabled and both
<var>HorzScrollBar</var> and <var>VertScrollBar</var> are assigned.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="#lcl.controls.TWinControl.AlignControls">TWinControl.AlignControls</link>
</seealso>
</element>
<element name="TScrollingWinControl.AlignControls.AControl">
<short>Control aligned in the method.</short>
</element>
<element name="TScrollingWinControl.AlignControls.ARect">
<short>Client rectangle used in the operation.</short>
</element>
<element name="TScrollingWinControl.AutoScrollEnabled">
<short>Indicates if automatic scrolling is enabled for the control.</short>
<descr>
<p>
<var>AutoScrollEnabled</var> is a <var>Boolean</var> function which indicates
if automatic scrolling is enabled for the control. The return value is
<b>True</b> when the control is <b>NOT</b> automatically resized, or used as
a dock site by an active docking manager.
</p>
<p>
Use the <var>AutoSize</var> property to enabled or disable automatic control
resizing. Set the <var>UseDockManager</var> property to <b>False</b> to
disable using the control as a <var>DockSite</var> for other controls.
</p>
</descr>
<seealso>
<link id="TScrollBox.AutoSize"/>
<link id="TScrollBox.DockSite"/>
<link id="TWinControl.UseDockManager"/>
</seealso>
</element>
<element name="TScrollingWinControl.AutoScrollEnabled.Result">
<short>
<b>True</b> when not automatically resized or used as a dock site.
</short>
</element>
<element name="TScrollingWinControl.CalculateAutoRanges">
<short>Sets or resets the ranges used for scroll bars on the control.</short>
<descr>
<p>
<var>CalculateAutoRanges</var> calculates the preferred size for the control
- both with and without scroll bars. The Range properties in HorzScrollBar
and VertScrollBar are updated to reflect the logical (virtual) size for the
content on the control. The Range value is set to 0 if the scroll bar is not
visible.
</p>
<p>
Used in the implementation of the ComputeScrollbars method.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.ComputeScrollbars"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TScrollingWinControl.GetPreferredSizeClientFrame"/>
<link id="#lcl.controls.TControl.GetPreferredSize">TControl.GetPreferredSize</link>
</seealso>
</element>
<element name="TScrollingWinControl.CreateWnd">
<short>Creates the window handle for the control.</short>
<descr>
<p>
Ensures that the scroll bar page, range, and visibility are assigned when
the handles for the windowed control are created. Temporarily disables
auto-sizing in the method, and re-enables auto-sizing prior to exit. Calls
the inherited method to create the window and its handles.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.UpdateScrollBars"/>
<link id="#lcl.controls.TWinControl.CreateWnd">TWinControl.CreateWnd</link>
</seealso>
</element>
<element name="TScrollingWinControl.GetClientScrollOffset">
<short>The origin for the physical client area.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.GetClientScrollOffset">TControl.GetClientScrollOffset</link>
</seealso>
</element>
<element name="TScrollingWinControl.GetClientScrollOffset.Result">
<short>The scroll bar Positions, or (0,0) if scroll bars are not used.</short>
</element>
<element name="TScrollingWinControl.GetLogicalClientRect">
<short>Returns the logical size of the client area on the control.</short>
<descr>
<p>
<var>GetLogicalClientRect</var> is an overridden method in
<var>TScrollingWinControl</var>; it re-implements the method introduced in
the ancestor class. The return value contains the value in the ClientRect
property. It ensures that the Right and Bottom members in the return value
are updated (when needed) to reflect the current Range values for the
respective visible scroll bars.
</p>
</descr>
<seealso>
<link id="TControlScrollBar.Visible"/>
<link id="TControlScrollBar.Range"/>
<link id="#lcl.controls.TControl.GetLogicalClientRect">TControl.GetLogicalClientRect</link>
<link id="#lcl.controls.TControl.ClientRect">TControl.ClientRect</link>
</seealso>
</element>
<element name="TScrollingWinControl.GetLogicalClientRect.Result">
<short>
TRect instance with the client rectangle adjusted for scroll bars visible on
the control.
</short>
</element>
<element name="TScrollingWinControl.DoOnResize">
<short>Performs actions needed when the control has been resized.</short>
<descr>
<p>
<var>DoOnResize</var> is an overridden method in
<var>TScrollingWinControl</var>. It calls the inherited method on entry to
signal the OnResize event handler (when assigned). Other OnResize handlers
for the application are also signalled.
</p>
<p>
When AutoScroll is enabled, the UpdateScrollbars method is called to
recalculate the page, range, and visibility for the scroll bars on the
control. This action is <b>not</b> performed if either VertScrollBar or
HorzScrollBar has not been assigned.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
<link id="TScrollingWinControl.UpdateScrollbars"/>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="#lcl.controls.TControl.DoOnResize">TControl.DoOnResize</link>
<link id="#lcl.controls.TControl.OnResize">TControl.OnResize</link>
<link id="#lcl.controls.TControl.DoCallNotifyHandler">TControl.DoCallNotifyHandler</link>
</seealso>
</element>
<element name="TScrollingWinControl.GetPreferredSizeClientFrame">
<short>
Calculates the size of the client area for the control excluding visible
scroll bars.
</short>
<descr/>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="#lcl.controls.TControl.Height">TControl.Height</link>
<link id="#lcl.controls.TControl.Width">TControl.Width</link>
<link id="#lcl.controls.TControl.ClientHeight">TControl.ClientHeight</link>
<link id="#lcl.controls.TControl.ClientWidth">TControl.ClientWidth</link>
</seealso>
</element>
<element name="TScrollingWinControl.GetPreferredSizeClientFrame.aWidth">
<short>Width of the client area.</short>
</element>
<element name="TScrollingWinControl.GetPreferredSizeClientFrame.aHeight">
<short>Height of the client area.</short>
</element>
<element name="TScrollingWinControl.WMSize">
<short>Performs actions needed to handle WMSize messages.</short>
<descr>
<p>
<var>WMSize</var> is a procedure used to perform actions needed to handle
WMSize messages for the control. WMSize calls the inherited WMSize method to
set the bounds for the control, optionally using the bounds from the parent
control.
</p>
<p>
WMSize provides support for setting the window state based on size messages
that originate in the LCL interface, and calls <var>Resizing</var> to realize
the new window state.
</p>
</descr>
<seealso>
<link id="TCustomForm.WMSize"/>
<link id="TControl.WMSize"/>
<link id="TScrollingWinControl.Resizing"/>
<link id="TWindowState"/>
</seealso>
</element>
<element name="TScrollingWinControl.WMSize.Message">
<short>Message examined in the method.</short>
</element>
<element name="TScrollingWinControl.WMHScroll">
<short>
Delegates scroll messages to the handler for the horizontal scroll bar.
</short>
<descr/>
<seealso>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TControlScrollBar.ScrollHandler"/>
</seealso>
</element>
<element name="TScrollingWinControl.WMHScroll.Message">
<short>
Message forwarded to the scroll bar.
</short>
</element>
<element name="TScrollingWinControl.WMVScroll">
<short>
Delegates scroll messages to the handler for the vertical scroll bar.
</short>
<descr/>
<seealso>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TControlScrollBar.ScrollHandler"/>
</seealso>
</element>
<element name="TScrollingWinControl.WMVScroll.Message">
<short>
Message forwarded to the scroll bar.
</short>
</element>
<element name="TScrollingWinControl.ComputeScrollbars">
<short>
Updates Page, AutoRange, IsScrollBarVisible, and returns <b>True</b> when
changed.
</short>
<descr/>
<seealso/>
</element>
<element name="TScrollingWinControl.ComputeScrollbars.Result">
<short>
<b>True</b> when something has been changed in the scroll bar settings.
</short>
</element>
<element name="TScrollingWinControl.SetAutoScroll">
<short>Sets the value for the AutoScroll property.</short>
<descr>
<p>
When the property is changed to <b>True</b>, the <var>UpdateScrollBars</var>
method is called to calculate the page, range, and visibility for
<var>HorzScrollBar</var> and <var>VertScrollBar</var>. When changed to
<b>False</b>, the <var>HideScrollbars</var> method is called to reset the
page, range, and visibility for the scroll bars. If the BoundsRect is updated
in either method, the original value is restored prior to exit.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TScrollingWinControl.UpdateScrollBars"/>
<link id="#lcl.forms.TScrollingWinControl.AutoScroll">TScrollingWinControl.AutoScroll</link>
</seealso>
</element>
<element name="TScrollingWinControl.SetAutoScroll.Value">
<short>New value for the property.</short>
</element>
<element name="TScrollingWinControl.Loaded">
<short>
Performs actions when the component has been loaded from the LCL streaming
mechanism.
</short>
<descr>
<p>
<var>Loaded</var> is an overridden method in <var>TScrollingWinControl</var>,
and calls the inherited method on entry. It calls <var>UpdateScrollBars</var>
to compute the page, auto ranges, and visibility for the scroll bars when
<var>AutoScroll</var> is enabled.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TScrollingWinControl.UpdateScrollBars"/>
<link id="#lcl.controls.TWinControl.Loaded">TWinControl.Loaded</link>
</seealso>
</element>
<element name="TScrollingWinControl.Resizing">
<short>
Performs actions needed when the control processes the WMSize message.
</short>
<descr>
<p>
Resizing is an empty implementation in TScrollingWinControl. It must be
implemented in a descendent class.
</p>
</descr>
<seealso>
<link id="TCustomForm.WindowState"/>
<link id="TCustomForm.Resizing"/>
<link id="TWindowState"/>
</seealso>
</element>
<element name="TScrollingWinControl.Resizing.State">
<short>
Window state for the windowed control.
</short>
</element>
<element name="TScrollingWinControl.AutoScroll">
<short>
Indicates whether scroll bars are automatically displayed or hidden when
needed.
</short>
<descr>
<p>
<var>AutoScroll</var> is a <var>Boolean</var> property which indicates if
scroll bars are automatically displayed or hidden on the control as needed.
The default value for the property is <b>False</b>.
</p>
<p>
Changing the value for the property causes the <var>Visible</var> property in
both <var>HorzScrollBar</var> and <var>VertScrollBar</var> to be updated (if
needed). When set to <b>True</b>, the <var>UpdateScrollBars</var> method is
called to calculate the page, range, and visibility for the scroll bars. When
set to <var>False</var>, the <var>HideScrollbars</var> method is called to
reset and hide the scroll bars (when assigned).
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.UpdateScrollbars"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.VertScrollBar"/>
</seealso>
</element>
<element name="TScrollingWinControl.SetAutoSize">
<short>Sets the value for the AutoSize property.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.AutoSize">TControl.AutoSize</link>
</seealso>
</element>
<element name="TScrollingWinControl.SetAutoSize.Value">
<short>New value for the property.</short>
</element>
<element name="TScrollingWinControl.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance, and
calls the inherited method on entry. It allocates resources needed for the
<var>VertScrollBar</var> and <var>HorzScrollBar</var> properties, sets the
default value in <var>AutoScroll</var> to <b>False</b>, and sets the initial
bounds for the class instance.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.AutoScroll"/>
</seealso>
</element>
<element name="TScrollingWinControl.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TScrollingWinControl.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy frees resources allocated for the <var>HorzScrollBar</var> and
<var>VertScrollBar</var> properties. Destroy calls the inherited destructor
prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.VertScrollBar"/>
</seealso>
</element>
<element name="TScrollingWinControl.ScreenToClient">
<short>
Converts the specified screen coordinates to client-relative coordinates.
</short>
<descr>
<p>
<var>ScreenToClient</var> is an overridden method in
<var>TScrollingWinControl</var>.
</p>
<p>
ScreenToClient calls the inherited method to get the TPoint instance with the
client coordinates used in the return value. The X and Y members in the
return value are updated to reflect the current scroll offsets for the
control. This gives the origin on the logical display area for the visible
area on the control.
</p>
<p>
ScreenToClient is used, along with ClientToScreen, in inherited methods which
respond to changes in the mouse pointer position for a control. This includes
context menu display and drag-and-dock operations.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.ClientToScreen"/>
<link id="#lcl.controls.TControl.ScreenToClient">TControl.ScreenToClient</link>
</seealso>
</element>
<element name="TScrollingWinControl.ScreenToClient.Result">
<short>
TPoint instance with the client-relative coordinates for the specified value.
</short>
</element>
<element name="TScrollingWinControl.ScreenToClient.APoint">
<short>
TPoint instance with the screen coordinates converted in the method.
</short>
</element>
<element name="TScrollingWinControl.ClientToScreen">
<short>
Converts the specified client coordinates to absolute screen coordinates.
</short>
<descr>
<p>
<var>ClientToScreen</var> is an overridden method in
<var>TScrollingWinControl</var>.
</p>
<p>
ClientToScreen calls the inherited method to get the TPoint instance with the
screen coordinates for the client coordinates in APoint. The X and Y members
in the return value are updated to reflect the current scroll offsets for the
control. This gives the screen coordinates where the origin for the logical
display area is located on the control.
</p>
<p>
ClientToScreen is used, along with ScreenToClient, in inherited methods which
respond to changes in the mouse pointer position for a control. This includes
context menu display and drag-and-dock operations.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.ScreenToClient"/>
<link id="#lcl.controls.TControl.ClientToScreen">TControl.ClientToScreen</link>
</seealso>
</element>
<element name="TScrollingWinControl.ClientToScreen.Result">
<short>
TPoint instance with the screen coordinates for the specified value.
</short>
</element>
<element name="TScrollingWinControl.ClientToScreen.APoint">
<short>
TPoint instance with the client-relative coordinates converted in the method.
</short>
</element>
<element name="TScrollingWinControl.UpdateScrollbars">
<short>Initializes or updates the scroll bars for the control.</short>
<descr>
<p>
<var>UpdateScrollbars</var> is a method used to update the scroll bars used
on the windowed control.
</p>
<p>
When automatic scrollbars are enabled using AutoScroll, the scroll bar
information is initialized as needed for the visible scroll bars. The
UpdateScrollBar method in both VertScrollBar and HorzScrollBar is called to
recalculate the current page and range for the scroll bars.
</p>
<p>
No actions are performed in the method if a handle has not been allocated for
the control, or when either HorzScrollBar or VertScrollBar has not been
assigned.
</p>
<p>
Recursive calls to the method are ignored.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
<link id="TScrollingWinControl.ComputeScrollbars"/>
<link id="TControlScrollBar.UpdateScrollBar"/>
</seealso>
</element>
<element name="TScrollingWinControl.GetControlClassDefaultSize" link="#lcl.controls.TControl.GetControlClassDefaultSize"/>
<element name="TScrollingWinControl.GetControlClassDefaultSize.Result"/>
<element name="TScrollingWinControl.ScrollBy">
<short>
Tells the widget to scroll the client area by the specified relative values.
</short>
<descr>
<p>
ScrollBy calls the inherited ScrollBy_WS to apply the relative horizontal and
vertical values to the widgetset class instance. An exception is raised if
the handle has not been allocated. The still visible part doesn't deserve a
repaint (optimization).
</p>
</descr>
<seealso/>
</element>
<element name="TScrollingWinControl.ScrollBy.DeltaX">
<short>Horizontal distance for the scroll operation.</short>
</element>
<element name="TScrollingWinControl.ScrollBy.DeltaY">
<short>Vertical distance for the scroll operation.</short>
</element>
<element name="TScrollingWinControl.ScrollInView">
<short>
Aligns the specified control to its parent and scrolls it into view.
</short>
<descr>
<p>
<var>ScrollInView</var> is a method used to align and scroll the control in
<var>AControl</var> into the visible area for the scrolling window control.
No actions are performed in the method under the following conditions:
</p>
<ul>
<li>AControl has not been assigned (contains <b>Nil</b>).</li>
<li>The control is not the Parent (or ancestor) for AControl.</li>
<li>
Neither horizontal nor vertical scroll bars are displayed for the
control.
</li>
</ul>
<p>
The origin for AControl relative to its <var>Parent</var> is determined by
calling the <var>ClientToParent</var> method. <var>OffsetRect</var> (in Types)
is called to apply the offset to the display rectangle for AControl. The
adjusted coordinates are used to reposition the visible scroll bars so that
AControl is visible in the client area for the scrolling window control.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.VertScrollBar"/>
<link id="TScrollingWinControl.HorzScrollBar"/>
<link id="TScrollingWinControl.AlignControls"/>
<link id="TControlScrollBar.Position"/>
<link id="#lcl.controls.TControl.ClientToParent">TControl.ClientToParent</link>
<link id="#rtl.types.OffsetRect">OffsetRect</link>
</seealso>
</element>
<element name="TScrollingWinControl.ScrollInView.AControl">
<short>Control to make visible in the scrolling window control.</short>
</element>
<element name="TScrollingWinControl.HorzScrollBar">
<short>The horizontal scroll bar for the control.</short>
<descr>
<p>
<var>HorzScrollBar</var> is a <var>TControlScrollBar</var> property with the
horizontal scroll bar for the scrolling window control. The scroll bar is
displayed for the control when its <var>Visible</var> property is
<b>True</b>, or when <var>Width</var> is larger than the
<var>ClientWidth</var> for the control and <var>AutoScroll</var> is enabled.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
<link id="TScrollingWinControl.AutoScrollEnabled"/>
<link id="TControlScrollBar.Visible"/>
<link id="#lcl.controls.TControl.ClientWidth">TControl.ClientWidth</link>
<link id="#lcl.controls.TControl.Width">TControl.Width</link>
</seealso>
</element>
<element name="TScrollingWinControl.VertScrollBar">
<short>The vertical scroll bar for the control.</short>
<descr>
<p>
VertScrollBar is a TControlScrollBar property with the vertical scroll bar
for the scrolling window control. The scroll bar is displayed for the control
when its <var>Visible</var> property is <b>True</b>, or when
<var>Height</var> is larger than the <var>ClientHeight</var> for the control
and <var>AutoScroll</var> is enabled.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.AutoScroll"/>
<link id="TScrollingWinControl.AutoScrollEnabled"/>
<link id="TControlScrollBar.Visible"/>
<link id="#lcl.controls.TControl.ClientHeight">TControl.ClientHeight</link>
<link id="#lcl.controls.TControl.Height">TControl.Height</link>
</seealso>
</element>
<element name="TScrollBox">
<short>Implements a windowed control with scroll bars.</short>
<descr>
<p>
<var>TScrollBox</var> is a <var>TScrollingWinControl</var> descendant that
implements a windowed control with scroll bars. It uses the logical and
physical display areas introduced in the ancestor class, and allows a
scrollable area to be displayed on a form or panel. The logical (or virtual)
client area represents the dimensions needed for the child Controls added to
the class instance. When the logical display area is larger than the visible
area for the control, scroll bars allow the content to be moved into the
visible area for the control.
</p>
<p>
TScrollBox sets the visibility for properties inherited from the ancestor
class. TScrollBox includes an overridden constructor which sets the default
values for properties in the class instance.
</p>
<p>
Child Controls can be added to the class instance at design-time, or at
run-time by setting the scroll box as the Parent for a control.
</p>
<p>
The AutoScroll property indicates whether the scroll bars are automatically
displayed (or hidden) as needed when the control is resized, or when child
Controls are updated. This includes setting the page, range, and visibility
for the scroll bars. Use the HorzScrollBar and VertScrollBar properties to
access scroll bar page, range, and visibility when AutoScroll is not enabled.
</p>
<p>
An example application using TScrollBox is located in the
<file>examples/imgviewer</file> directory.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl"/>
</seealso>
</element>
<element name="TScrollBox.WSRegisterClass" link="#lcl.lclclasses.TLCLComponent.WSRegisterClass"/>
<element name="TScrollBox.SetParentBackground">
<short>
Sets the value for the ParentBackground property.
</short>
<descr>
<p>
<var>SetParentBackground</var> is an overridden method in
<var>TScrollBox</var> which implements the write access specifier for the
ParentBackground property. It calls the inherited method on entry to update
the values in the ControlStyle property and invalidate the control. It calls
the UpdateParentColorChange method to include or exclude csOpaque as needed in
ControlStyle; the value is included when ParentBackground is changed to
<b>True</b>.
</p>
</descr>
<seealso>
<link id="TScrollBox.ParentBackground"/>
<link id="TScrollBox.UpdateParentColorChange"/>
<link id="TControl.SetParentBackground">TControl.SetParentBackground</link>
</seealso>
</element>
<element name="TScrollBox.SetParentBackground.AParentBackground">
<short>
New value for the ParentBackground property.
</short>
</element>
<element name="TScrollBox.CMParentColorChanged">
<short>
Handles the CM_PARENTCOLORCHANGED message for the control.
</short>
<descr>
<p>
<var>CMParentColorChanged</var> is an overridden method in
<var>TScrollBox</var> used to handle a <b>CM_PARENTCOLORCHANGED</b> message
received for the control. It calls the UpdateParentColorChange method to
include or exclude csOpaque in the ControlStyle property; csOpaque is included
if either ParentColor or ParentBackground is set to <b>True</b>. Otherwise,
the value is excluded from ControlStyle.
</p>
<p>
CMParentColorChanged calls the inherited method to update the Color property
when ParentColor is enabled.
</p>
</descr>
<seealso>
<link id="TScrollBox.ParentBackground"/>
<link id="TScrollBox.ParentColor"/>
<link id="TScrollBox.Color"/>
<link id="#lcl.controls.TControl.CMParentColorChanged">TControl.CMParentColorChanged</link>
<link id="#lcl.controls.TControl.ControlStyle">TControl.ControlStyle</link>
<link id="#lcl.controls.TControlStyleType">TControlStyleType</link>
</seealso>
</element>
<element name="TScrollBox.CMParentColorChanged.Message">
<short>
Control message handled in the method.
</short>
</element>
<element name="TScrollBox.Loaded">
<short>
Performs actions when a component has been loaded during LCL component
streaming.
</short>
<descr>
<p>
<var>Loaded</var> is an overridden method in <var>TScrollBox</var> used to
perform actions needed when a component has been loaded from a resource during
LCL streaming. It calls the inherited method (in TScrollingWinControl) on
entry to resize its child Controls and update its scroll bars. It calls the
UpdateParentColorChange method to set the opacity for the control based on the
values in ParentColor and ParentBackground.
</p>
</descr>
<seealso>
<link id="TScrollBox.ParentBackground"/>
<link id="TScrollBox.ParentColor"/>
<link id="TScrollBox.Color"/>
<link id="TScrollBox.UpdateParentColorChange"/>
<link id="#lcl.controls.TControl.ControlStyle">TControl.ControlStyle</link>
<link id="#lcl.controls.TControlStyleType">TControlStyleType</link>
</seealso>
</element>
<element name="TScrollBox.UpdateParentColorChange">
<short>
Updates ControlStyle flags to set the opacity for the control.
</short>
<descr>
<p>
<var>UpdateParentColorChange</var> is method used to update the ControlStlye
property when the value in ParentColor or ParentBackground has been changed.
</p>
<p>
If either ParentColor or ParentBackground is set to True, the control needs to
be transparent so that the parent background color is seen as the control
background color. This is achieved by excluding the value csOpaque from the
ControlStyle property.
</p>
<p>
If both ParentColor and ParentBackground are set to False, csOpaque is
included in the ControlStyle property.
</p>
<p>
UpdateParentColorChange is also called when the control is Loaded during LCL
streaming or when the CM_PARENTCOLORCHANGED message is handled for the control.
</p>
</descr>
<seealso/>
</element>
<element name="TScrollBox.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance. It
calls the inherited method on entry, an updates the component and control
style flags as needed for the class instance. It sets the default values for
the following properties:
</p>
<ul>
<li>AutoScroll (True)</li>
<li>BorderStyle (bsSingle)</li>
</ul>
</descr>
<seealso>
<link id="#lcl.forms.TScrollingWinControl.Create">TScrollingWinControl.Create</link>
</seealso>
</element>
<element name="TScrollBox.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TScrollBox.Align" link="#lcl.controls.TControl.Align"/>
<element name="TScrollBox.Anchors" link="#lcl.controls.TControl.Anchors"/>
<element name="TScrollBox.AutoSize" link="#lcl.controls.TControl.AutoSize"/>
<element name="TScrollBox.AutoScroll">
<short>
Indicates whether scroll bars are automatically displayed or hidden when
needed.
</short>
<descr>
<p>
<var>AutoScroll</var> is a <var>Boolean</var> property which indicates if
scroll bars are automatically displayed or hidden on the control as needed.
The default value for the property is <b>True</b> in TScrollBox.
</p>
<p>
Changing the value for the property causes the Visible property in both
HorzScrollBar and VertScrollBar to be updated (if needed). When set to
<b>True</b>, the UpdateScrollBars method is called to calculate the page,
range, and visibility for the scroll bars. When set to <b>False</b>, the
HideScrollbars method is called to reset and hide the scroll bars (when
assigned).
</p>
</descr>
<seealso>
<link id="#lcl.forms.TScrollingWinControl.AutoScroll">TScrollingWinControl.AutoScroll</link>
<link id="#lcl.forms.TScrollingWinControl.UpdateScrollbars">TScrollingWinControl.UpdateScrollbars</link>
<link id="#lcl.forms.TScrollingWinControl.HorzScrollBar">TScrollingWinControl.HorzScrollBar</link>
<link id="#lcl.forms.TScrollingWinControl.VertScrollBar">TScrollingWinControl.VertScrollBar</link>
</seealso>
</element>
<element name="TScrollBox.BorderSpacing" link="#lcl.controls.TControl.BorderSpacing"/>
<element name="TScrollBox.BiDiMode" link="#lcl.controls.TControl.BiDiMode"/>
<element name="TScrollBox.BorderStyle">
<short>Line style used to draw the border around the control.</short>
<descr>
<p>
The default value for the property is bsSingle in TScrollBox.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.BorderStyle">TWinControl.BorderStyle</link>
</seealso>
</element>
<element name="TScrollBox.ChildSizing" link="#lcl.controls.TWinControl.ChildSizing"/>
<element name="TScrollBox.ClientHeight" link="#lcl.controls.TControl.ClientHeight"/>
<element name="TScrollBox.ClientWidth" link="#lcl.controls.TControl.ClientWidth"/>
<element name="TScrollBox.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element name="TScrollBox.DockSite" link="#lcl.controls.TWinControl.DockSite"/>
<element name="TScrollBox.DragCursor" link="#lcl.controls.TControl.DragCursor"/>
<element name="TScrollBox.DragKind" link="#lcl.controls.TControl.DragKind"/>
<element name="TScrollBox.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element name="TScrollBox.Enabled" link="#lcl.controls.TControl.Enabled"/>
<element name="TScrollBox.Color" link="#lcl.controls.TControl.Color"/>
<element name="TScrollBox.Font" link="#lcl.controls.TControl.Font"/>
<element name="TScrollBox.ParentBackground">
<short>
Indicates if the control uses the background from its Parent control.
</short>
<descr>
<p>
ParentBackground is a Boolean property which indicates if the background for
the Parent control is drawn as the background for the current control
instance. The default value in TScrollBox is <b>True</b>.
</p>
<p>
ParentBackground is <b>True</b> when csParentBackground is included in the
ControlStyle property. Setting the value in ParentBackground causes
ControlStyle to be updated to include or exclude the csParentBackground
enumeration value. csOpaque is added to or removed from ControlStyle by
calling the UpdateParentColorChange method. The style flags are included in
ControlStyle when ParentBackground is set to <b>True</b>, and excluded when
set to <b>False</b>.
</p>
</descr>
<seealso>
<link id="TScrollBox.UpdateParentColorChange"/>
<link id="#lcl.controls.TControl.ParentBackground">TControl.ParentBackground</link>
<link id="#lcl.controls.TControl.ParentColor">TControl.ParentColor</link>
<link id="#lcl.controls.TControl.Color">TControl.Color</link>
<link id="#lcl.controls.TControl.ControlStyle">TControl.ControlStyle</link>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
<link id="#lcl.controls.TControlStyle">TControlStyle</link>
<link id="#lcl.controls.TControlStyleType">TControlStyleType</link>
</seealso>
</element>
<element name="TScrollBox.ParentBiDiMode" link="#lcl.controls.TControl.ParentBiDiMode"/>
<element name="TScrollBox.ParentColor" link="#lcl.controls.TControl.ParentColor"/>
<element name="TScrollBox.ParentFont" link="#lcl.controls.TControl.ParentFont"/>
<element name="TScrollBox.ParentShowHint" link="#lcl.controls.TControl.ParentShowHint"/>
<element name="TScrollBox.PopupMenu" link="#lcl.controls.TControl.PopupMenu"/>
<element name="TScrollBox.ShowHint" link="#lcl.controls.TControl.ShowHint"/>
<element name="TScrollBox.TabOrder" link="#lcl.controls.TWinControl.TabOrder"/>
<element name="TScrollBox.TabStop" link="#lcl.controls.TWinControl.TabStop"/>
<element name="TScrollBox.Visible" link="#lcl.controls.TControl.Visible"/>
<element name="TScrollBox.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TScrollBox.OnConstrainedResize" link="#lcl.controls.TControl.OnConstrainedResize"/>
<element name="TScrollBox.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element name="TScrollBox.OnDockDrop" link="#lcl.controls.TWinControl.OnDockDrop"/>
<element name="TScrollBox.OnDockOver" link="#lcl.controls.TWinControl.OnDockOver"/>
<element name="TScrollBox.OnDragDrop" link="#lcl.controls.TControl.OnDragDrop"/>
<element name="TScrollBox.OnDragOver" link="#lcl.controls.TControl.OnDragOver"/>
<element name="TScrollBox.OnEndDock" link="#lcl.controls.TControl.OnEndDock"/>
<element name="TScrollBox.OnEndDrag" link="#lcl.controls.TControl.OnEndDrag"/>
<element name="TScrollBox.OnEnter" link="#lcl.controls.TWinControl.OnEnter"/>
<element name="TScrollBox.OnExit" link="#lcl.controls.TWinControl.OnExit"/>
<element name="TScrollBox.OnGetSiteInfo" link="#lcl.controls.TWinControl.OnGetSiteInfo"/>
<element name="TScrollBox.OnMouseDown" link="#lcl.controls.TControl.OnMouseDown"/>
<element name="TScrollBox.OnMouseEnter" link="#lcl.controls.TControl.OnMouseEnter"/>
<element name="TScrollBox.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="TScrollBox.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="TScrollBox.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="TScrollBox.OnMouseWheel" link="#lcl.controls.TControl.OnMouseWheel"/>
<element name="TScrollBox.OnMouseWheelDown" link="#lcl.controls.TControl.OnMouseWheelDown"/>
<element name="TScrollBox.OnMouseWheelUp" link="#lcl.controls.TControl.OnMouseWheelUp"/>
<element name="TScrollBox.OnMouseWheelHorz" link="#lcl.controls.TControl.OnMouseWheelHorz"/>
<element name="TScrollBox.OnMouseWheelLeft" link="#lcl.controls.TControl.OnMouseWheelLeft"/>
<element name="TScrollBox.OnMouseWheelRight" link="#lcl.controls.TControl.OnMouseWheelRight"/>
<element name="TScrollBox.OnResize" link="#lcl.controls.TControl.OnResize"/>
<element name="TScrollBox.OnStartDock" link="#lcl.controls.TControl.OnStartDock"/>
<element name="TScrollBox.OnStartDrag" link="#lcl.controls.TControl.OnStartDrag"/>
<element name="TScrollBox.OnUnDock" link="#lcl.controls.TWinControl.OnUnDock"/>
<element name="TScrollBox.OnPaint" link="#lcl.controls.TCustomControl.OnPaint"/>
<element name="TCustomDesignControl">
<short>
Provides a designer surface for scaling and layout of its child controls.
</short>
<descr>
<p>
<var>TCustomDesignControl</var> is a <var>TScrollingWinControl</var>
descendant which provides a designer surface used for scaling and layout of
its child controls.
</p>
<p>
Properties are provided to set the display density (Pixels Per Inch) for
design-time and run-time usage, and to Scale child controls. Methods are also
provided to use <var>TLayoutAdjustmentPolicy</var> to layout and to re-size
the child controls.
</p>
<p>
An overridden <var>Loaded</var> method is provided to adjust the design-time
PPI (when scaling is enabled in the application).
</p>
<p>
TCustomDesignControl is used as the ancestor for <var>TCustomFrame</var> and
<var>TCustomForm</var>.
</p>
</descr>
<seealso>
<link id="TApplication.Scaled"/>
<link id="TCustomForm"/>
<link id="TCustomFrame"/>
<link id="GetParentDesignControl"/>
<link id="NeedParentDesignControl"/>
</seealso>
</element>
<element name="TCustomDesignControl.FScaled"/>
<element name="TCustomDesignControl.FDesignTimePPI"/>
<element name="TCustomDesignControl.FPixelsPerInch"/>
<element name="TCustomDesignControl.DesignTimePPIIsStored"/>
<element name="TCustomDesignControl.DesignTimePPIIsStored.Result"/>
<element name="TCustomDesignControl.SetDesignTimePPI">
<short>Sets the value for the DesignTimePPI property.</short>
<descr/>
<seealso>
<link id="TCustomDesignControl.DesignTimePPI"/>
</seealso>
</element>
<element name="TCustomDesignControl.SetDesignTimePPI.ADesignTimePPI">
<short>New value for the property.</short>
</element>
<element name="TCustomDesignControl.SetScaled">
<short>Sets the value for the Scaled property.</short>
<descr/>
<seealso>
<link id="TCustomDesignControl.Scaled"/>
</seealso>
</element>
<element name="TCustomDesignControl.SetScaled.AScaled">
<short>New value for the property.</short>
</element>
<element name="TCustomDesignControl.DoAutoAdjustLayout">
<short>
Applies size and layout changes to the design surface and its Parent control.
</short>
<descr>
<p>
<var>DoAutoAdjustLayout</var> is a procedure used to perform actions needed
to apply size and layout changes to the design surface and its
<var>Parent</var> control.
</p>
<p>
<var>DoAutoAdjustLayout</var> adjusts the height and width for the design
surface by the specified scaling factors. Similarly, the
<var>BorderSpacing</var> and <var>Constraints</var> in the control are
adjusted using the scaling factors. Finally, the <var>SetBounds</var> method
is called to apply the new values for Height and Width to the design surface.
</p>
<remark>
No actions are performed in the method when the Parent property has not been
assigned (contains <b>Nil</b>). In addition, no actions are performed when
<var>AMode</var> omits the <var>lapAutoAdjustWithoutHorizontalScrolling</var>
and <var>lapAutoAdjustForDPI</var> enumeration values.
</remark>
</descr>
<seealso>
<link id="#lcl.controls.TControl.AutoAdjustLayout">TControl.AutoAdjustLayout</link>
<link id="#lcl.controls.TControl.Constraints">TControl.Constraints</link>
<link id="#lcl.controls.TControl.BorderSpacing">TControl.BorderSpacing</link>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
<link id="#lcl.controls.TLayoutAdjustmentPolicy">TLayoutAdjustmentPolicy</link>
</seealso>
</element>
<element name="TCustomDesignControl.DoAutoAdjustLayout.AMode">
<short>TLayoutAdjustmentPolicy applied in the method.</short>
</element>
<element name="TCustomDesignControl.DoAutoAdjustLayout.AXProportion">
<short>Horizontal scaling factor applied in the method.</short>
</element>
<element name="TCustomDesignControl.DoAutoAdjustLayout.AYProportion">
<short>Vertical scaling factor applied in the method.</short>
</element>
<element name="TCustomDesignControl.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance.
Create calls the inherited method using the value in <var>TheOwner</var> as
the owner of the class instance. Create sets the default values for the
following properties:
</p>
<ul>
<li>Scaled</li>
<li>DesignTimePPI</li>
<li>PixelsPerInch</li>
</ul>
<p>
When scaling is enabled in the Application, the value in
<var>DesignTimePPI</var> is used as the <var>PixelsPerInch</var> setting in
the <var>Font</var> property.
</p>
</descr>
<seealso>
<link id="TCustomDesignControl.Scaled"/>
<link id="TCustomDesignControl.PixelsPerInch"/>
<link id="TCustomDesignControl.Scaled"/>
<link id="TApplication.Scaled"/>
<link id="#lcl.controls.TControl.Font">TControl.Font</link>
</seealso>
</element>
<element name="TCustomDesignControl.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TCustomDesignControl.AutoAdjustLayout">
<short>
Applies a new display density (Pixels Per Inch) for a layout policy to the
control.
</short>
<descr>
<p>
<var>AutoAdjustLayout</var> is used to set the value in the
<var>PixelsPerInch</var> property to the value specified in <var>AToPPI</var>
for the <var>lapAutoAdjustForDPI</var> layout policy. AutoAdjustLayout calls
the inherited method.
</p>
<remark>
No additional actions are performed in the method when <var>AMode</var>
contains a value other than <var>lapAutoAdjustForDPI</var>.
</remark>
</descr>
<seealso>
<link id="TCustomDesignControl.PixelsPerInch"/>
<link id="TCustomDesignControl.DoAutoAdjustLayout"/>
<link id="TLayoutAdjustmentPolicy"/>
</seealso>
</element>
<element name="TCustomDesignControl.AutoAdjustLayout.AMode">
<short>Layout policy to use for the design surface.</short>
</element>
<element name="TCustomDesignControl.AutoAdjustLayout.AFromPPI">
<short>Original display density setting.</short>
</element>
<element name="TCustomDesignControl.AutoAdjustLayout.AToPPI">
<short>New display density setting.</short>
</element>
<element name="TCustomDesignControl.AutoAdjustLayout.AOldFormWidth">
<short>Original form width.</short>
</element>
<element name="TCustomDesignControl.AutoAdjustLayout.ANewFormWidth">
<short>New form width.</short>
</element>
<element name="TCustomDesignControl.DesignTimePPI">
<short>Design-time Pixels Per Inch for the designer surface.</short>
<descr>
<p>
<var>DesignTimePPI</var> is an <var>Integer</var> property that contains the
display density (or Pixels Per Inch) used on the designer surface. The
default value for the property is <b>96</b>.
</p>
<p>
The property value is normally set when the component is loaded using the LCL
streaming mechanism. It can be assigned at design-time to the value in
<var>ADesignTimePPI</var> only when the new value matches the display density
for the current Screen where the designer surface is used. The value can be
changed at run-time, but the programmer must ensure that the value is valid
for the intended usage.
</p>
<p>
An <var>EInvalidOperation</var> exception is raised if an invalid value is
specified at design-time.
</p>
<p>
When scaling is enabled in the Application, the value in DesignTimePPI is
assigned to the <var>Font</var> for the designer surface.
</p>
<p>
Use <var>PixelsPerInch</var> to access the run-time display density for the
designer surface.
</p>
</descr>
<seealso>
<link id="TCustomDesignControl.PixelsPerInch"/>
<link id="TCustomDesignControl.Scaled"/>
<link id="TApplication.Scaled"/>
<link id="#lcl.controls.TControl.Font">TControl.Font</link>
</seealso>
</element>
<element name="TCustomDesignControl.PixelsPerInch">
<short>Run-time Pixels Per Inch for the designer surface.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDesignControl.Scaled">
<short>
Indicates if the design surface is scaled to reflect changes in display
density (Pixels Per Inch).
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomFrame">
<short>The base type for <var>TFrame</var>.</short>
<descr>
<p>
<var>TCustomFrame</var> is a <var>TCustomDesignControl</var> descendant which
implements the base class for <var>TFrame</var>. A Frame is a named container
for related components. Groups of controls can be place on a frame, and
re-used in your applications.
</p>
<p>
A Frame has behavior very similar to a Form. Their unique ability is that
they can be embedded into forms or other frames in the designer. Like forms,
they are stored in two separate files: the code is stored in a .pas unit
file, and the design is stored in a .lfm file.
</p>
<p>
Frames can be created and designed in the Lazarus IDE by creating a new Frame
module, and using the unit in your application. An existing frame can be
added using the TFrame component on the Standard tab in the Lazarus IDE; you
will be prompted for the TFrame class to use for the component.
</p>
<p>
Frames can also be created in code at run-time. They do not have to be
installed in the Lazarus IDE. For example:
</p>
<code>
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
Frame: TFrame;
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses
Unit2{TFrame1}, Unit3{TFrame2}, Unit4{TFrame3};
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Frame := TFrame1.Create(GroupBox1);
Frame.Parent := GroupBox1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Frame) then
begin
Frame := TFrame1.Create(GroupBox1);
Frame.Parent := GroupBox1;
end else if Frame is TFrame1 then begin
Frame.Free;
Frame := TFrame2.Create(GroupBox1);
Frame.Parent := GroupBox1;
end else if Frame is TFrame2 then begin
Frame.Free;
Frame := TFrame3.Create(GroupBox1);
Frame.Parent := GroupBox1;
end else begin
FreeAndNil(Frame);
end;
end;
end.
</code>
<p>
One drawback is that complex inheritance hierarchies for <var>TFrame</var>
classes can be problematic; they do not propagate changes to all derived
frames in a multi-level inheritance tree.
</p>
</descr>
<seealso>
<link id="TFrame"/>
<link id="TCustomDesignControl"/>
</seealso>
</element>
<element name="TCustomFrame.AddActionList">
<short>
Adds the specified list of Actions to the Parent form for the frame class.
</short>
<descr>
<remark>
No actions are performed in the method when a Parent form has not been
assigned for the class instance.
</remark>
<p>
AddActionList is called from the Notification method when a TCustomActionList
instance has been added to the control. This occurs when a new Parent is
assigned for the frame instance.
</p>
</descr>
<seealso>
<link id="TCustomFrame.Notification"/>
<link id="GetParentForm"/>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
</seealso>
</element>
<element name="TCustomFrame.AddActionList.ActionList">
<short>List of Actions added in the method.</short>
</element>
<element name="TCustomFrame.RemoveActionList">
<short>Removes the specified list of Actions from the Parent form.</short>
<descr>
<remark>
No actions are performed in the method when a Parent form has not been
assigned for the class instance.
</remark>
<p>
RemoveActionList is called from the Notification method when the
TCustomActionList instance has been added to the control. This occurs when a
new Parent which contains an action list is assigned for the frame instance.
</p>
</descr>
<seealso>
<link id="TCustomFrame.Notification"/>
<link id="GetParentForm"/>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
</seealso>
</element>
<element name="TCustomFrame.RemoveActionList.ActionList">
<short>List of Actions removed in the method.</short>
</element>
<element name="TCustomFrame.ReadDesignLeft">
<short>Implements reading the Left property for the designer surface.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomFrame.ReadDesignLeft.Reader"/>
<element name="TCustomFrame.ReadDesignTop">
<short>Implements reading the Right property for the designer surface.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomFrame.ReadDesignTop.Reader"/>
<element name="TCustomFrame.WriteDesignLeft">
<short>Implements writing the Left property for the designer surface.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomFrame.WriteDesignLeft.Writer"/>
<element name="TCustomFrame.WriteDesignTop">
<short>Implements writing the Top property for the designer surface.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomFrame.WriteDesignTop.Writer"/>
<element name="TCustomFrame.WSRegisterClass" link="#lcl.lclclasses.TLCLComponent.WSRegisterClass"/>
<element name="TCustomFrame.GetChildren">
<short>
Invokes <var>Proc</var> for all Controls and also for all Components without
a Parent.
</short>
<descr/>
<seealso>
<link id="#lcl.controls.TWinControl.GetChildren">TWinControl.GetChildren</link>
</seealso>
</element>
<element name="TCustomFrame.GetChildren.Proc">
<short>The callback method.</short>
</element>
<element name="TCustomFrame.GetChildren.Root">
<short>Components are enumerated only if Root=Self.</short>
</element>
<element name="TCustomFrame.Notification">
<short>Adds or removes an action list for the control.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.Notification">TControl.Notification</link>
<link id="#rtl.classes.TComponent.Notification">TComponent.Notification</link>
</seealso>
</element>
<element name="TCustomFrame.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TCustomFrame.Notification.Operation">
<short>Operation for the notification.</short>
</element>
<element name="TCustomFrame.SetColor">
<short>Sets the value for the Color property.</short>
<descr>
<p>
<var>SetColor</var> is an overridden method in <var>TCustomFrame</var> used
to set the value for the <var>Color</var> property. It calls the inherited
method on entry.
</p>
<p>
When the value for the Color property is set to <var>clDefault</var>, or has
the same value as the Color property in <var>Parent</var>, no additional
actions are performed in the method. Otherwise, the value in ParentBackground
is set to <b>False</b>.
</p>
</descr>
<seealso>
<link id="TCustomFrame.ParentBackground"/>
<link id="#lcl.controls.TControl.Color">TControl.Color</link>
</seealso>
</element>
<element name="TCustomFrame.SetColor.Value">
<short>New value for the property.</short>
</element>
<element name="TCustomFrame.SetParent">
<short>Sets the value for the Parent property.</short>
<descr>
<p>
Updates the action list for child components or nested frames by calling
AddActionList or RemoveActionList. Frees the Handle for the control when
Parent has not already been assigned. Calls the inherited method to update
the value in Parent. Performs automatic layout adjustments when the
PixelsPerInch settings for the Parent and the frame instance have different
value.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
<link id="#lcl.controls.TControl.SetParent">TControl.SetParent</link>
</seealso>
</element>
<element name="TCustomFrame.SetParent.AParent">
<short>New value for the Parent property.</short>
</element>
<element name="TCustomFrame.SetParentBackground">
<short>
Sets the value for the ParentBackground property.
</short>
<descr>
<p>
Ensures that Color is changed to the value in the Parent control when the
property is set to <b>True</b>. Color is set to clDefault when the property
is set to <b>False</b>. Calls UpdateOpaque to ensure that the csOpaque style
flag is applied to the ControlStyle property as needed.
</p>
</descr>
<seealso>
<link id="TCustomFrame.ParentBackground"/>
</seealso>
</element>
<element name="TCustomFrame.SetParentBackground.AParentBackground">
<short>
New value for the ParentBackground property.
</short>
</element>
<element name="TCustomFrame.CMParentColorChanged">
<short>Handles the CM_PARENTCOLORCHANGED message for the control.</short>
<descr>
<p>
<var>CMParentColorChanged</var> is an overridden method in TCustomFrame. It
calls the inherited method on entry to update the values in Color and
ParentColor. If the control has finished loading using the LCL component
streaming mechanism, the UpdateOpaque method is called to update flag values
in the ControlStyle property. ControlStyle is not updated if csLoading is
included in the ComponentState property.
</p>
</descr>
<seealso>
<link id="TCustomFrame.UpdateOpaque"/>
<link id="#lcl.controls.TControl.CMParentColorChanged">TControl.CMParentColorChanged</link>
<link id="#lcl.controls.TControl.ParentColor">TControl.ParentColor</link>
<link id="#lcl.controls.TControl.Color">TControl.Color</link>
<link id="#rtl.classes.TComponent.ComponentState">TComponent.ComponentState</link>
</seealso>
</element>
<element name="TCustomFrame.CMParentColorChanged.Message">
<short>Control message handled in the method.</short>
</element>
<element name="TCustomFrame.DefineProperties">
<short>
Defines non-published properties that are included in LCL component streaming.
</short>
<descr>
<p>
<var>DefineProperties</var> is an overridden method used to include
non-published properties in the values read and written during LCL component
streaming. In TCustomFrame, design-time information for the Top and Left
coordinates for the frame are included (when available) in the specified
TFiler instance.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.DefineProperties">TControl.DefineProperties</link>
</seealso>
</element>
<element name="TCustomFrame.DefineProperties.Filer">
<short>TFiler instance where property definitions are added.</short>
</element>
<element name="TCustomFrame.CalculatePreferredSize">
<short>
Gets the preferred height and width for the control used during auto-sizing.
</short>
<descr>
<p>
<var>CalculatePreferredSize</var> is an overridden method in
<var>TCustomFrame</var>. It ensures that the inherited method is <b>not</b>
called when the frame is an un-parented component and visible on the form
designer. This allows the dimensions to be freely resized on the design
surface. Values in the PreferredWidth, PreferredHeight, and WithThemeSpace
arguments are not modified at design-time.
</p>
<p>
If the frame has an Owner (parent form) at run-time, the inherited method is
called to get the values used in the LCL auto-sizing algorithms.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.CalculatePreferredSize">TWinControl.CalculatePreferredSize</link>
</seealso>
</element>
<element name="TCustomFrame.CalculatePreferredSize.PreferredWidth">
<short>Preferred width for the control.</short>
</element>
<element name="TCustomFrame.CalculatePreferredSize.PreferredHeight">
<short>Preferred height for the control.</short>
</element>
<element name="TCustomFrame.CalculatePreferredSize.WithThemeSpace">
<short>
<b>True</b> if additional space is reserved in the width or height for theme
details.
</short>
</element>
<element name="TCustomFrame.UpdateOpaque">
<short>
Updates control style flags to reflect the transparency for the frame.
</short>
<descr>
<p>
<var>UpdateOpaque</var> is a method used to update <var>ControlStyle</var>
flags to reflect the transparency for the frame. When
<var>ParentBackground</var> is <b>True</b>, the value <var>csOpaque</var> is
excluded from the <var>ControlStyle</var> property to allow the frame to be
drawn with transparency. When set to <b>False</b>, csOpaque is included in
ControlStyle.
</p>
<p>
UpdateOpaque is called when the value for the ParentBackground has been
changed, and when the <var>CM_PARENTCOLORCHANGED</var> control message is
handled for the frame.
</p>
</descr>
<seealso>
<link id="TCustomFrame.ParentBackground"/>
<link id="#lcl.controls.TControl.ControlStyle">TControl.ControlStyle</link>
</seealso>
</element>
<element name="TCustomFrame.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the overridden constructor for the class instance. Create calls the
inherited method using AOwner as the owner for the class instance. Create
sets the ControlStyle property to the following enumeration values:
</p>
<ul>
<li>csAcceptsControls</li>
<li>csCaptureMouse</li>
<li>csClickEvents</li>
<li>csSetCaption</li>
<li>csDoubleClicks</li>
<li>csParentBackground</li>
</ul>
<p>
Create uses the default size for its class type to set the initial bounds for
the control.
</p>
</descr>
<errors>
Raises an EResNotFound exception at run-time if the ClassType for the class
instance
is not derived from TFrame.
</errors>
<seealso>
<link id="#rtl.classes.TComponent.Create">TComponent.Create</link>
</seealso>
</element>
<element name="TCustomFrame.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TCustomFrame.GetControlClassDefaultSize">
<short>Gets the default dimensions for a new instance of the class.</short>
<descr>
<p>
GetControlClassDefaultSize is an overridden method in TCustomFrame, and does
not call the inherited method. The return value is a TSize instance with the
width and height for the new class instance in its X and Y members. The
default dimensions in TCustomFrame are 320 pixels wide (X member) by 240
pixels tall (Y member).
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.GetControlClassDefaultSize"/>
</seealso>
</element>
<element name="TCustomFrame.GetControlClassDefaultSize.Result">
<short>
TSize type with the width and height for the new class instance.
</short>
</element>
<element name="TCustomFrame.ParentBackground">
<short>Indicates if the control uses the background from the parent.</short>
<descr>
<p>
The write access specifier is overridden in <var>TCustomFrame</var>. It calls
the inherited method on entry.
</p>
<p>
If the new property value is <b>True</b> and ParentColor is <b>True</b>, the
color assigned to the <var>Parent</var> control is stored in the
<var>Color</var> property. Otherwise, Color is set to the value
<var>clDefault</var>. The <var>UpdateOpaque</var> method is called to adjust
the control style flags for the control.
</p>
<p>
The default value for the property is <b>True</b>.
</p>
</descr>
<seealso>
<link id="TCustomFrame.UpdateOpaque"/>
<link id="#lcl.controls.TControl.ParentBackground">TControl.ParentBackground</link>
<link id="#lcl.controls.TControl.Color">TControl.Color</link>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
</seealso>
</element>
<element name="TCustomFrameClass">
<short>Class type used to create new instances of TCustomFrame.</short>
<descr/>
<seealso>
<link id="TCustomFrame"/>
</seealso>
</element>
<element name="TFrame">
<short>
Frames can be designed like Forms and used like custom controls, without much
coding or installation in the IDE.
</short>
<descr>
<p>
<var>TFrame</var> is a <var>TCustomFrame</var> descendant which implements a
named container for related components. Groups of controls can be place on a
frame, and re-used in your applications.
</p>
<p>
A Frame has behavior very similar to a Form. Their unique ability is that
they can be embedded into forms or other frames in the designer. Like forms,
they are stored in two separate files: the code is stored in a .pas unit
file, and the design is stored in a .lfm file.
</p>
<p>
Frames can be created and designed in the Lazarus IDE by creating a new Frame
module, and using the unit in your application. An existing frame can be
added using the TFrame component on the Standard tab in the Lazarus IDE; you
will be prompted for the TFrame class to use for the component.
</p>
<p>
Frames can be created and designed in the Lazarus IDE by creating a new Frame
module, and using the unit in your application. An existing frame can be
added using the TFrame component on the Standard tab in the Lazarus IDE; you
will be prompted for the TFrame class to use for the component.
</p>
<p>
Frames can also be created in code at run-time. They do not have to be
installed in the Lazarus IDE. For example:
</p>
<code>
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
Frame: TFrame;
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses
Unit2{TFrame1}, Unit3{TFrame2}, Unit4{TFrame3};
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Frame := TFrame1.Create(GroupBox1);
Frame.Parent := GroupBox1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Frame) then
begin
Frame := TFrame1.Create(GroupBox1);
Frame.Parent := GroupBox1;
end else if Frame is TFrame1 then begin
Frame.Free;
Frame := TFrame2.Create(GroupBox1);
Frame.Parent := GroupBox1;
end else if Frame is TFrame2 then begin
Frame.Free;
Frame := TFrame3.Create(GroupBox1);
Frame.Parent := GroupBox1;
end else begin
FreeAndNil(Frame);
end;
end;
end.
</code>
<p>
One drawback is that complex inheritance hierarchies for <var>TFrame</var>
classes can be problematic; they do not propagate changes to all derived
frames in a multi-level inheritance tree.
</p>
<p>
TFrame contains a new property which indicates the LCL (Lazarus Component
Library) version number used in the container. An overridden constructor is
also introduced to initialize the value in the LCLVersion property. TFrame
sets the visibility for properties defined in ancestor classes.
</p>
</descr>
<seealso/>
</element>
<element name="TFrame.FLCLVersion"/>
<element name="TFrame.LCLVersionIsStored" link="#lcl.forms.TFrame.LCLVersion"/>
<element name="TFrame.LCLVersionIsStored.Result"/>
<element name="TFrame.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance. It
sets the value for the LCLVersion property to the lcl_version constant
defined in the <file>lclversion.pas</file> unit. Create calls the inherited
constructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TFrame.LCLVersion"/>
<link id="TCustomFrame.Create"/>
<link id="#lcl.lclversion.lcl_version">lcl_version</link>
</seealso>
</element>
<element name="TFrame.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TFrame.Align" link="#lcl.controls.TControl.Align"/>
<element name="TFrame.Anchors" link="#lcl.controls.TControl.Anchors"/>
<element name="TFrame.AutoScroll" link="#lcl.forms.TScrollingWinControl.AutoScroll"/>
<element name="TFrame.AutoSize" link="#lcl.controls.TControl.AutoSize"/>
<element name="TFrame.BiDiMode" link="#lcl.controls.TControl.BiDiMode"/>
<element name="TFrame.BorderSpacing" link="#lcl.controls.TControl.BorderSpacing"/>
<element name="TFrame.ChildSizing" link="#lcl.controls.TWinControl.ChildSizing"/>
<element name="TFrame.ClientHeight" link="#lcl.controls.TControl.ClientHeight"/>
<element name="TFrame.ClientWidth" link="#lcl.controls.TControl.ClientWidth"/>
<element name="TFrame.Color" link="#lcl.controls.TControl.Color"/>
<element name="TFrame.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element name="TFrame.DesignTimePPI" link="#lcl.forms.TCustomDesignControl.DesignTimePPI"/>
<element name="TFrame.DockSite" link="#lcl.controls.TWinControl.DockSite"/>
<element name="TFrame.DragCursor" link="#lcl.controls.TControl.DragCursor"/>
<element name="TFrame.DragKind" link="#lcl.controls.TControl.DragKind"/>
<element name="TFrame.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element name="TFrame.Enabled" link="#lcl.controls.TControl.Enabled"/>
<element name="TFrame.Font" link="#lcl.controls.TControl.Font"/>
<element name="TFrame.LCLVersion">
<short>LCL version number for the frame instance.</short>
<descr>
<p>
The value in <var>LCLVersion</var> is assigned in the Create constructor
using the lcl_version constant defined in the <file>lclversion.pas</file>
unit. Its value is stored during LCL component streaming if a value has not
been assigned to the Parent for the control.
</p>
</descr>
<seealso>
<link id="TForm.LCLVersion"/>
<link id="TForm.Create"/>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
<link id="#lcl.lclversion.lcl_version">lcl_version</link>
</seealso>
</element>
<element name="TFrame.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TFrame.OnConstrainedResize" link="#lcl.controls.TControl.OnConstrainedResize"/>
<element name="TFrame.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TFrame.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element name="TFrame.OnDockDrop" link="#lcl.controls.TWinControl.OnDockDrop"/>
<element name="TFrame.OnDockOver" link="#lcl.controls.TWinControl.OnDockOver"/>
<element name="TFrame.OnDragDrop" link="#lcl.controls.TControl.OnDragDrop"/>
<element name="TFrame.OnDragOver" link="#lcl.controls.TControl.OnDragOver"/>
<element name="TFrame.OnEndDock" link="#lcl.controls.TControl.OnEndDock"/>
<element name="TFrame.OnEndDrag" link="#lcl.controls.TControl.OnEndDrag"/>
<element name="TFrame.OnEnter" link="#lcl.controls.TWinControl.OnEnter"/>
<element name="TFrame.OnExit" link="#lcl.controls.TWinControl.OnExit"/>
<element name="TFrame.OnGetSiteInfo" link="#lcl.controls.TWinControl.OnGetSiteInfo"/>
<element name="TFrame.OnMouseDown" link="#lcl.controls.TControl.OnMouseDown"/>
<element name="TFrame.OnMouseEnter" link="#lcl.controls.TControl.OnMouseEnter"/>
<element name="TFrame.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="TFrame.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="TFrame.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="TFrame.OnMouseWheel" link="#lcl.controls.TControl.OnMouseWheel"/>
<element name="TFrame.OnMouseWheelDown" link="#lcl.controls.TControl.OnMouseWheelDown"/>
<element name="TFrame.OnMouseWheelUp" link="#lcl.controls.TControl.OnMouseWheelUp"/>
<element name="TFrame.OnMouseWheelHorz" link="#lcl.controls.TControl.OnMouseWheelHorz"/>
<element name="TFrame.OnMouseWheelLeft" link="#lcl.controls.TControl.OnMouseWheelLeft"/>
<element name="TFrame.OnMouseWheelRight" link="#lcl.controls.TControl.OnMouseWheelRight"/>
<element name="TFrame.OnResize" link="#lcl.controls.TControl.OnResize"/>
<element name="TFrame.OnStartDock" link="#lcl.controls.TControl.OnStartDock"/>
<element name="TFrame.OnStartDrag" link="#lcl.controls.TControl.OnStartDrag"/>
<element name="TFrame.OnUnDock" link="#lcl.controls.TWinControl.OnUnDock"/>
<element name="TFrame.ParentBackground" link="#lcl.forms.TCustomFrame.ParentBackground"/>
<element name="TFrame.ParentBiDiMode" link="#lcl.controls.TControl.ParentBiDiMode"/>
<element name="TFrame.ParentColor" link="#lcl.controls.TControl.ParentColor"/>
<element name="TFrame.ParentFont" link="#lcl.controls.TControl.ParentFont"/>
<element name="TFrame.ParentShowHint" link="#lcl.controls.TControl.ParentShowHint"/>
<element name="TFrame.PopupMenu" link="#lcl.controls.TControl.PopupMenu"/>
<element name="TFrame.Scaled" link="#lcl.forms.TCustomDesignControl.Scaled"/>
<element name="TFrame.ShowHint" link="#lcl.controls.TControl.ShowHint"/>
<element name="TFrame.TabOrder" link="#lcl.controls.TWinControl.TabOrder"/>
<element name="TFrame.TabStop" link="#lcl.controls.TWinControl.TabStop"/>
<element name="TFrame.Visible" link="#lcl.controls.TControl.Visible"/>
<element name="TWindowMagnetOptions">
<short>
Implements options which control magnetic window behavior in form instances.
</short>
<descr>
<p>
<var>TWindowMagnetOptions</var> is a class which implements options needed to
control magnetic window behavior when a form is snapped to another form or to
an edge on the screen. It introduces properties with default values which
enable or disable the snapping behaviors for forms or the screen. It also
includes a property to set the proximity or threshold where snapping behavior
is engaged.
</p>
<p>
TWindowMagnetOptions is the type used to implement the SnapOptions property in
TCustomForm and descendent classes. It is also passed as an argument to the
SnapToMonitor and SnapToForms methods in TWindowMagnetManager.
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TCustomForm.SnapOptions"/>
<link id="TWindowMagnetManager.SnapToMonitor"/>
<link id="TWindowMagnetManager.SnapToForms"/>
</seealso>
</element>
<!-- private -->
<element name="TWindowMagnetOptions.FSnapMonitor"/>
<element name="TWindowMagnetOptions.FSnapForms"/>
<element name="TWindowMagnetOptions.FSnapFormTarget"/>
<element name="TWindowMagnetOptions.FDistance"/>
<!-- public -->
<element name="TWindowMagnetOptions.Create">
<short>
Constructor for the class instance.
</short>
<descr>
<p>
Create sets the default values for properties in the class instance, including:
</p>
<ul>
<li>SnapToMonitor (False)</li>
<li>SnapToForms (False)</li>
<li>SnapFormTarget (True)</li>
<li>Distance (10 pixels)</li>
</ul>
</descr>
<seealso>
<link id="TWindowMagnetOptions.SnapToMonitor"/>
<link id="TWindowMagnetOptions.SnapToForms"/>
<link id="TWindowMagnetOptions.SnapFormTarget"/>
<link id="TWindowMagnetOptions.Distance"/>
</seealso>
</element>
<element name="TWindowMagnetOptions.AssignTo">
<short>
Implements object persistence for TWindowMagnetOptions instances.
</short>
<descr>
<p>
<var>AssignTo</var> is an overridden method in
<var>TWindowMagnetOptions</var>. It reimplements the AssignTo method
introduced in the TPersistent ancestor to support the TWindowMagnetOptions
type.
</p>
<p>
If Dest is a TWindowMagnetOptions instance, properties from the current class
are copied to Dest. The properties include:
</p>
<ul>
<li>Distance</li>
<li>SnapToMonitor</li>
<li>SnapToForms</li>
<li>SnapFormTarget</li>
</ul>
<p>
No actions are performed in the method if Dest is not derived from
TWindowMagnetOptions. AssignTo does not call the inherited method which raises
an EConvertError exception.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TWindowMagnetOptions.AssignTo.Dest">
<short>
TWindowMagnetOptions instance where properties from the current instance are
stored.
</short>
</element>
<!-- published -->
<element name="TWindowMagnetOptions.SnapToMonitor">
<short>
Enables or disables snapping a form to one of the edges on the monitor.
</short>
<descr>
<p>
<var>SnapToMonitor</var> is a <var>Boolean</var> property which determines
whether magnetic window snapping to an edge on the monitor is enabled. The
default value for the property is <b>False</b> and disables snapping a form to
an edge on the monitor. When set to <b>True</b>, the magnetic window manager
will snap the form to the monitor edge when the snapping threshold is reached.
</p>
<p>
Use Distance to specify the proximity or threshold (in pixels) where the
snapping behavior is automatically engaged.
</p>
<p>
Use SnapToForms to control whether a form instance can be snapped to an edge
on other forms in the application.
</p>
<p>
Use SnapFormTarget to indicate whether a form can be a snap target for other
forms in an application.
</p>
</descr>
<seealso/>
</element>
<element name="TWindowMagnetOptions.SnapToForms">
<short>
Enables or disables snapping the current form to other forms in the
application.
</short>
<descr/>
<seealso/>
</element>
<element name="TWindowMagnetOptions.SnapFormTarget">
<short>
Enables or disables snapping another form in the application to the form
instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TWindowMagnetOptions.Distance">
<short>
Distance from (or proximity to) a snap target where the snapping behavior is
automatically engaged.
</short>
<descr/>
<seealso/>
</element>
<element name="TWindowMagnetManager">
<short>
Implements a manager for form and screen snapping behavior in an application.
</short>
<descr>
<p>
<var>TWindowMagnetManager</var> is a class used to manage magnetic window
snapping behavior for windows in an application. TWindowMagnetManager is the
type used to implement the MagnetManager property in TScreen. It provides
properties, methods, and members needed to:
</p>
<ul>
<li>
Track the position for a window on the screen.
</li>
<li>
Adjust the window position when it reaches the snapping threshold for an edge
on another form or the screen.
</li>
<li>
Snap a specific form to an adjusted window position.
</li>
</ul>
<p>
The Enabled property determines whether the magnetic window manager is enabled
or disabled in the global Screen instance.
</p>
<remark>
Use of TWindowMagnetManager depends on the LM_WINDOWPOSCHANGING message
dispatched when the position for a form (window) is changed. In the current
LCL release, the LM_WINDOWPOSCHANGING message is dispatched for the Windows
platform only. None of the other widgetsets checked for or apply the message.
</remark>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<!-- private -->
<element name="TWindowMagnetManager.FEnabled"/>
<element name="TWindowMagnetManager.FActiveForm"/>
<element name="TWindowMagnetManager.FPreviousSource"/>
<element name="TWindowMagnetManager.FPreviousReturn"/>
<element name="TWindowMagnetManager.FCompositorBorders"/>
<element name="TWindowMagnetManager.SnapToSides">
<short>
Performs actions needed to resize or reposition a form to another form or an
edge on the screen.
</short>
<descr>
<p>
Parameters passed to the method are variable arguments, and may be updated in
the method to reflect the new position or size for the window when snapping
behavior is applied.
</p>
<p>
On the Windows platform the Desktop Window Manager API is called to adjust the
dimensions for the form instance using the shadow offsets returned by the
Compositor. For other platforms (which do not lie about the size of the form
instance), this step is not needed.
</p>
<p>
SnapToSides is used to implement the SnapToMonitor and SnapToForms methods in
the class.
</p>
</descr>
<seealso/>
</element>
<element name="TWindowMagnetManager.SnapToSides.Result">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.x">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.cx">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.px">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.pcx">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.pxout">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.dist">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.leftsides">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToSides.rightsides">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToMonitor">
<short>
Snaps a window to an edge on the monitor.
</short>
<descr>
<p>
<var>SnapToMonitor</var> converts the window position information in WindowPos
to a TRect instance used to locate the monitor and position on its work area.
The SnapToSides method is called to adjust the window position when snapping
behavior is applied for the window.
</p>
<p>
The return value is <b>True</b> if the window was successfully snapped to an
edge on a monitor, and value(s) in WindowPos were changed.
</p>
<p>
No actions are performed in the method if SnapToMonitor is not enabled in the
Opts argument. In this case, the return value is <b>False</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TWindowMagnetManager.SnapToMonitor.Result">
<short>
Returns <b>True</b> if the form was successfully snapped to a monitor edge in
the method. Returns <b>False</b> if SnapToMonitor is not enabled in the Opts
parameter.
</short>
</element>
<element name="TWindowMagnetManager.SnapToMonitor.Opts">
<short>
Snapping options used in the method.
</short>
</element>
<element name="TWindowMagnetManager.SnapToMonitor.WindowPos">
<short>
Structure with the window handle, position, and flags for the form affected in
the method. The variable parameter can be updated in the method.
</short>
</element>
<element name="TWindowMagnetManager.SnapToForms">
<short>
Snaps a form to an edge on another form in the application which is a valid
snap target.
</short>
<descr/>
<seealso/>
</element>
<element name="TWindowMagnetManager.SnapToForms.Result">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToForms.Opts">
<short/>
</element>
<element name="TWindowMagnetManager.SnapToForms.WindowPos">
<short/>
</element>
<!-- public -->
<element name="TWindowMagnetManager.Create">
<short>
Constructor for the class instance.
</short>
<descr>
<p>
<var>Create</var> is an override method which implements the virtual
constructor for the class instance. Create initializes internal members in the
class instance to their default values.
</p>
</descr>
<seealso/>
</element>
<element name="TWindowMagnetManager.Enabled">
<short>
Enables or disables form and/or screen snapping behavior using the manager
class.
</short>
<descr>
<p>
<var>Enabled</var> is a <var>Boolean</var> property which indicates whether
the magnetic window snapping behavior is enabled in the class.
</p>
<p>
When set to <b>True</b>, the following behaviors are enabled using the class:
</p>
<ul>
<li>
A dragged form can be snapped to an edge of another form.
</li>
<li>
A dragged form can be snapped to an edge on the monitor.
</li>
</ul>
<p>
When set to <b>False</b>, these behaviors are disabled.
</p>
<p>
The default value for the property is <b>True</b> and enables the snapping
behavior in the global Screen variable.
</p>
<p>
Use the SnapOptions property in each TForm instance to define whether the form
can be snapped to another form or an edge on the screen, or allows other forms
to be snapped to its edges. It also controls the distance at which the
snapping behavior is automatically engaged.
</p>
</descr>
<seealso>
<link id="TCustomForm.SnapOptions"/>
<link id="TCustomForm.WMWindowPosChanging"/>
<link id="TScreen.MagnetManager"/>
<link id="Screen"/>
<link id="TWindowMagnetOptions"/>
</seealso>
</element>
<element name="TWindowMagnetManager.SnapForm">
<short>
Snaps the specified form to the nearest snap target.
</short>
<descr>
<p>
No actions are performed in the method when the Enabled property is set to
<b>False</b>, when the window flags indicate that the window is being shown or
hidden, or at design-time.
</p>
<p>
SnapForm calls the GetCompositorExtendedBorder routine to determine if the
size for the window is inaccurate for borders or shadows added by the
compositor for the desktop window manager. Both the SnapToMonitor and
SnapToForms methods are called to determine the return value for the method.
</p>
<p>
The return value is <b>True</b> if the window position was snapped to either
an edge on the monitor or another form instance in the application.
</p>
<p>
SnapForm is called from the WMWindowPosChanging method when a
LM_WINDOWPOSCHANGING message is received and handled for a form instance.
</p>
<remark>
In the current LCL release, the LM_WINDOWPOSCHANGING message is dispatched for
the Windows platform only. None of the other widgetsets checked for or apply
the message.
</remark>
</descr>
<seealso>
<link id="TWindowMagnetManager.Enabled"/>
<link id="TWindowMagnetManager.SnapToMonitor"/>
<link id="TWindowMagnetManager.SnapToForms"/>
</seealso>
</element>
<element name="TWindowMagnetManager.SnapForm.Result">
<short>
Returns <b>True</b> if the specified form was repositioned (or resized) due to
snapping behavior for the form or application.
</short>
</element>
<element name="TWindowMagnetManager.SnapForm.Form">
<short>
Form instance examined and updated in the method.
</short>
</element>
<element name="TWindowMagnetManager.SnapForm.WindowPos">
<short>
Structure with the window handle and position examined and updated in the
method.
</short>
</element>
<element name="TBorderIcon">
<short>
Represents a visual element in a window title bar; depends on window manager
support.
</short>
<descr>
<dl>
<dt>biSystemMenu</dt>
<dd>The form has a System menu (Maybe not all windowmanager supports
this)</dd>
<dt>biMinimize</dt>
<dd>The form has an minimize button</dd>
<dt>biMaximize</dt>
<dd>The form has a maximize button</dd>
<dt>biHelp</dt>
<dd>When you click this button a Question Cursor appears, and the help
routines are
called if you click on an control</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TBorderIcon.biSystemMenu">
<short>Window has a system menu.</short>
</element>
<element name="TBorderIcon.biMinimize">
<short>Window has an Minimize button.</short>
</element>
<element name="TBorderIcon.biMaximize">
<short>Window has an Maximize button.</short>
</element>
<element name="TBorderIcon.biHelp">
<short>Window has an Help button.</short>
</element>
<element name="TBorderIcons" link="#lcl.forms.TBorderIcon"/>
<element name="TDefaultMonitor">
<short>The preferred monitor for showing a form.</short>
<descr>
<p>
When a form is not assigned to a specific monitor, assume the following
display context:
</p>
<dl>
<dt>dmDesktop</dt>
<dd>No attempt to choose specific monitor</dd>
<dt>dmPrimary</dt>
<dd>On the primary monitor</dd>
<dt>dmMainForm</dt>
<dd>
On the same monitor as the main form; if there is no main form then use
dmPrimary behavior
</dd>
<dt>dmActiveForm</dt>
<dd>
On the same monitor as the currently active form; if there is no active form
then use dmMainForm behavior
</dd>
</dl>
</descr>
</element>
<element name="TDefaultMonitor.dmDesktop">
<short>Place the form on the full desktop.</short>
</element>
<element name="TDefaultMonitor.dmPrimary">
<short>Place the form on the primary monitor.</short>
</element>
<element name="TDefaultMonitor.dmMainForm">
<short>
Place the form on the same monitor as the main form. If there is no such form
then use the primary monitor.
</short>
</element>
<element name="TDefaultMonitor.dmActiveForm">
<short>
Place the form on the same monitor as the currently active form. If there is
no such form then use the primary monitor.
</short>
</element>
<element name="TFormStateType">
<short>Form state flags.</short>
<descr>
<p>The form states are:</p>
<dl>
<dt>fsCreating</dt>
<dd>initializing (form streaming)</dd>
<dt>fsVisible</dt>
<dd>form should be shown</dd>
<dt>fsShowing</dt>
<dd>form handling WM_SHOWWINDOW message</dd>
<dt>fsModal</dt>
<dd>form is modal</dd>
<dt>fsCreatedMDIChild</dt>
<dd>not yet implemented</dd>
<dt>fsBorderStyleChanged</dt>
<dd>border style changed before window handle creation</dd>
<dt>fsFormStyleChanged</dt>
<dd>form style is changed before window handle creation</dd>
<dt>fsFirstShow</dt>
<dd>form is shown for the first time</dd>
<dt>fsDisableAutoSize</dt>
<dd>disable auto-size</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TFormStateType.fsCreating">
<short>initializing (form streaming).</short>
</element>
<element name="TFormStateType.fsVisible">
<short>form should be shown.</short>
</element>
<element name="TFormStateType.fsShowing">
<short>form handling WM_SHOWWINDOW message.</short>
</element>
<element name="TFormStateType.fsModal">
<short>form is modal.</short>
</element>
<element name="TFormStateType.fsCreatedMDIChild">
<short>not yet implemented.</short>
</element>
<element name="TFormStateType.fsBorderStyleChanged">
<short>border style changed before window handle creation.</short>
</element>
<element name="TFormStateType.fsFormStyleChanged">
<short>form style is changed before window handle creation.</short>
</element>
<element name="TFormStateType.fsFirstShow">
<short>form is shown for the first time.</short>
</element>
<element name="TFormStateType.fsDisableAutoSize">
<short>disable auto-size.</short>
</element>
<element name="TFormState" link="#lcl.forms.TFormStateType">
<short>Set type used to store values from the TFormState enumeration.</short>
<descr>
<p>
TFormState is the type used to implement the FormState property in
TCustomForm and descendent classes.
</p>
</descr>
<seealso>
<link id="TCustomForm.FormState"/>
</seealso>
</element>
<element name="TModalResult">
<short>
Dummy type for the values that can be returned as a modal result.
</short>
<descr>
<p>
Even though the type is defined as an integer, only the defined constant
values should be used (mrOK, mrCancel, et. al.).
</p>
</descr>
<seealso>
<link id="controls.mrNone"/>
<link id="controls.mrOK"/>
<link id="controls.mrCancel"/>
<link id="controls.mrAbort"/>
<link id="controls.mrRetry"/>
<link id="controls.mrIgnore"/>
<link id="controls.mrYes"/>
<link id="controls.mrNo"/>
<link id="controls.mrAll"/>
</seealso>
</element>
<element name="PModalResult" link="#lcl.forms.TModalResult"/>
<element name="TFormHandlerType">
<short>TForm Notification handler types.</short>
<descr/>
<seealso/>
</element>
<element name="TFormHandlerType.fhtFirstShow">
<short>Notified on first form Show.</short>
</element>
<element name="TFormHandlerType.fhtClose">
<short>Notified on form Close.</short>
</element>
<element name="TFormHandlerType.fhtCreate">
<short>Notified after form Create.</short>
</element>
<element name="TShowInTaskbar">
<short>
Identifies the display preference for a form on the TaskBar.
</short>
<descr>
<p>
<var>TShowInTaskbar</var> is an enumerated type with values that indicate
whether a form should be displayed on the task bar for the application.
TShowInTaskbar is the type used to implement the ShowInTaskBar and
EffectiveShowInTaskBar properties in TCustomForm.
</p>
<p>
stDefault has a special meaning. It enables use of the setting in
Application.TaskBarBehavior to determine whether one or more icon buttons can
be displayed for the forms in the application. The resulting value is the
effective task bar visibility for a given form.
</p>
<p>
stDefault also indicates that widgetset features and rules for form display
on the task bar are used.
</p>
<p>
For Windows, it causes the Parent for the form to be set to the AppHandle in
the widgetset if the form is not the MainForm in the Application. Otherwise,
the MainFormHandle in the Application is used.
</p>
<p>
On QT platforms, only the MainForm for the application is visible on the task
bar (single button mode) when set to stDefault.
</p>
<p>
On GTK platforms, the SkipTaskBarHint for the GDK window is set to False for
the value.
</p>
<p>
Some display managers, like Cinnamon, also do not allow multiple buttons to
be displayed; only the main form for the application is visible on the task
bar.
</p>
<p>
The widgetset implementation may also impose restrictions based on the
display protocol used at run-time, like X-11 or Wayland.
</p>
</descr>
<seealso>
<link id="TCustomForm.ShowInTaskBar"/>
<link id="TCustomForm.EffectiveShowInTaskBar"/>
</seealso>
</element>
<element name="TShowInTaskbar.stDefault">
<short>
Uses the default rules for the widgetset / platform to determine form
visibility on the TaskBar.
</short>
</element>
<element name="TShowInTaskbar.stAlways">
<short>Always show the form on the TaskBar.</short>
</element>
<element name="TShowInTaskbar.stNever">
<short>Never show the form on the TaskBar.</short>
</element>
<element name="TPopupMode">
<short>
Defines the handling performed for a parent window in forms and dialogs.
</short>
<descr>
<p>
<var>TPopupMode</var> is an enumerated type with values that specify how the
parent is determined for a form or dialog. <var>TPopupMode</var> is the type
used for the <var>PopupMode</var> property in <var>TCustomForm</var>.
</p>
</descr>
<seealso>
<link id="TCustomForm.PopupMode"/>
<link id="TCustomForm.PopupParent"/>
<link id="TCustomForm.GetRealPopupParent"/>
</seealso>
</element>
<element name="TPopupMode.pmNone">
<short>
modal: align to active form or main form; non-modal: no window parent.
</short>
<descr>
<p>
For modal windows, the handle has to be recreated in ShowModal. If this is
not wanted, please use explicitly pmAuto before calling ShowModal.
</p>
</descr>
</element>
<element name="TPopupMode.pmAuto">
<short>
modal and non-modal: align to active form or main form.
</short>
</element>
<element name="TPopupMode.pmExplicit">
<short>
modal and non-modal: align to PopupParent or main form.
</short>
</element>
<element name="TCloseEvent">
<short>Type used for an OnClose event handler in a form.</short>
<descr>
<p>Closing a form can have several meanings:</p>
<dl>
<dt>caNone</dt>
<dd>Do nothing (don't close).</dd>
<dt>caHide</dt>
<dd>Hide the form (default for modal forms).</dd>
<dt>caFree</dt>
<dd>Destroy the form.</dd>
<dt>caMinimize</dt>
<dd>Minimize the form (MDI child default).</dd>
</dl>
<p>The handler can set CloseAction to the desired value for the action.</p>
</descr>
<seealso/>
</element>
<element name="TCloseEvent.Sender">
<short>The form that received an Close request.</short>
</element>
<element name="TCloseEvent.CloseAction">
<short>Set this to caNone, to prevent the form from closing.</short>
</element>
<element name="TCloseQueryEvent">
<short>Specifies an OnCloseQuery handler event handler.</short>
<descr>
<p>
<var>TCloseQueryEvent</var> is an object procedure type which specifies the
event handler signalled to determine if a form can be closed.
</p>
<p>
TCloseQueryEvent is the type used to implement the <var>OnCloseQuery</var>
property in <var>TCustomForm</var>. An application must implement an object
procedure using the signature for the event handler to allow responding to
the notification.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnCloseQuery"/>
</seealso>
</element>
<element name="TCloseQueryEvent.Sender">
<short>The form that received an Close request.</short>
</element>
<element name="TCloseQueryEvent.CanClose">
<short>Set to <b>False</b> to deny closing.</short>
</element>
<element name="TDropFilesEvent">
<short>Type used for an OnDropFiles event handler.</short>
<descr>
<p>
<var>TDropFilesEvent</var> is an object procedure which specifies an event
handler triggered when files are dropped on a drag and drop-enabled control.
</p>
<p>
<var>TDropFilesEvent</var> is the type used to implement the
<var>OnDropFiles</var> property in <var>TCustomForm</var> and
<var>TApplication</var>. Applications must implement a procedure using the
signature for the event handler, and assign it to the property.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnDropFiles"/>
<link id="TApplication.OnDropFiles"/>
<link id="TApplicationProperties.OnDropFiles"/>
</seealso>
</element>
<element name="TDropFilesEvent.Sender">
<short>
The object (TCustomForm) for the dropped files notification.
</short>
</element>
<element name="TDropFilesEvent.FileNames">
<short>
Array with the list of file names for the drop event.
</short>
</element>
<element name="THelpEvent">
<short>Type used for an OnHelp event handler.</short>
<descr>
<p>
<var>THelpEvent</var> is an object function which specifies an event handler
signalled when Help is requested in an application or form.
<var>THelpEvent</var> is the type used to implement the <var>OnHelp</var>
event handler in <var>TCustomForm</var> and <var>TApplication</var>.
Applications must implement a function using the signature for the event
handler, and assign it to the property.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnHelp"/>
<link id="TApplication.OnHelp"/>
<link id="TApplicationProperties.OnHelp"/>
</seealso>
</element>
<element name="THelpEvent.Result">
<short>
Indicates if the help request is satisfied by the event handler; <b>False</b>
causes the default help handler for the application to be used.
</short>
</element>
<element name="THelpEvent.Command">
<short>
Help command type requested; either HELP_CONTEXT or HELP_COMMAND.
</short>
</element>
<element name="THelpEvent.Data">
<short>Context data for the help request.</short>
</element>
<element name="THelpEvent.CallHelp">
<short><b>False</b> suppresses help display.</short>
</element>
<element name="TShortCutEvent">
<short>Type used for an OnShortcut event handler.</short>
<descr>
<p>
A shortcut handler is invoked when a key is pressed, before any other
processing. It can interpret the key as an shortcut and act accordingly. In
this case, <var>Handled</var> should be set to <b>True</b> to prevent further
processing of the key.
</p>
</descr>
<seealso/>
</element>
<element name="TShortCutEvent.Msg">
<short>The key event message.</short>
</element>
<element name="TShortCutEvent.Handled">
<short>
Set Handled to <b>True</b> to prevent further processing of the key.
</short>
</element>
<element name="TModalDialogFinished">
<short>
Specifies an event handler signalled when a modal message dialog is completed.
</short>
<descr>
<p>
<var>TModalDialogFinished</var> is an object procedure which specifies an
event handler signalled when a modal message dialog is completed. The
<var>AResult</var> argument contains the modal result constant returned from
the message dialog.
</p>
<p>
<var>TModalDialogFinished</var> is the type used to implement the
<var>TCustomForm.OnShowModalFinished</var> and
<var>TApplication.OnMessageDialogFinished</var> properties.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnShowModalFinished"/>
<link id="TApplication.OnMessageDialogFinished"/>
<link id="TModalResult"/>
</seealso>
</element>
<element name="TModalDialogFinished.Sender">
<short>TObject instance for the event notification.</short>
</element>
<element name="TModalDialogFinished.AResult">
<short>Modal result value from the dialog.</short>
</element>
<element name="TCustomForm">
<short>The base type for <var>TForm</var> classes.</short>
<descr>
<p>
<var>TCustomForm</var> is a <var>TCustomDesignControl</var> descendant that
implements the base type for <var>TForm</var> classes.
</p>
<p>
Forms represent a window or a dialog used as the user interface for a GUI
application. It is a container where visual components (such as buttons,
labels, edit fields, images, etc.) can be placed. It is also a designer
surface which provides design-time support for configuration and layout of
the content placed on the form.
</p>
<p>
<var>TCustomForm</var> acts an abstraction layer which masks
implementation-specific routines required for the various widgetsets
supported in the Lazarus Component Library (<b>LCL</b>). Methods and
properties are provided which interact with the underlying Operating System
or platform, and provide a common API for form-related operations.
</p>
</descr>
<seealso>
<link id="TForm"/>
<link id="TCustomDesignControl"/>
</seealso>
</element>
<element name="TCustomForm.FActive" link="#lcl.forms.TCustomForm.Active"/>
<element name="TCustomForm.FActiveControl" link="#lcl.forms.TCustomForm.ActiveControl"/>
<element name="TCustomForm.FActiveDefaultControl" link="#lcl.forms.TCustomForm.ActiveDefaultControl"/>
<element name="TCustomForm.FAllowDropFiles" link="#lcl.forms.TCustomForm.AllowDropFiles"/>
<element name="TCustomForm.FAlphaBlend" link="#lcl.forms.TCustomForm.AlphaBlend"/>
<element name="TCustomForm.FAlphaBlendValue" link="#lcl.forms.TCustomForm.AlphaBlendValue"/>
<element name="TCustomForm.FBorderIcons" link="#lcl.forms.TCustomForm.BorderIcons"/>
<element name="TCustomForm.FDefaultControl" link="#lcl.forms.TCustomForm.DefaultControl"/>
<element name="TCustomForm.FCancelControl" link="#lcl.forms.TCustomForm.CancelControl"/>
<element name="TCustomForm.FDefaultMonitor" link="#lcl.forms.TCustomForm.DefaultMonitor"/>
<element name="TCustomForm.FDesigner" link="#lcl.forms.TCustomForm.Designer"/>
<element name="TCustomForm.FFormStyle" link="#lcl.forms.TCustomForm.FormStyle"/>
<element name="TCustomForm.FFormUpdateCount" link="#lcl.forms.TCustomForm.FormIsUpdating"/>
<element name="TCustomForm.FFormHandlers">
<short>Lists of installed Form notification handlers.</short>
</element>
<element name="TCustomForm.FHelpFile" link="#lcl.forms.TCustomForm.HelpFile"/>
<element name="TCustomForm.FIcon" link="#lcl.forms.TCustomForm.Icon"/>
<element name="TCustomForm.FOnShowModalFinished" link="#lcl.forms.TCustomForm.OnShowModalFinished"/>
<element name="TCustomForm.FPopupMode" link="#lcl.forms.TCustomForm.PopupMode"/>
<element name="TCustomForm.FPopupParent" link="#lcl.forms.TCustomForm.PopupParent"/>
<element name="TCustomForm.FSmallIconHandle" link="#lcl.forms.TCustomForm.SmallIconHandle"/>
<element name="TCustomForm.FBigIconHandle" link="#lcl.forms.TCustomForm.BigIconHandle"/>
<element name="TCustomForm.FKeyPreview" link="#lcl.forms.TCustomForm.KeyPreview"/>
<element name="TCustomForm.FMenu" link="#lcl.forms.TCustomForm.Menu"/>
<element name="TCustomForm.FModalResult" link="#lcl.forms.TCustomForm.ModalResult"/>
<element name="TCustomForm.FLastFocusedControl" link="#lcl.forms.TCustomForm.SetLastFocusedControl">
<short>Used to track Focus changes (Enter/Exit events).</short>
</element>
<element name="TCustomForm.FOldBorderStyle" link="#lcl.forms.TCustomForm.DoDock"/>
<element name="TCustomForm.FOnActivate" link="#lcl.forms.TCustomForm.OnActivate"/>
<element name="TCustomForm.FOnClose" link="#lcl.forms.TCustomForm.OnClose"/>
<element name="TCustomForm.FOnCloseQuery" link="#lcl.forms.TCustomForm.OnCloseQuery"/>
<element name="TCustomForm.FOnCreate" link="#lcl.forms.TCustomForm.OnCreate"/>
<element name="TCustomForm.FOnDeactivate" link="#lcl.forms.TCustomForm.OnDeactivate"/>
<element name="TCustomForm.FOnDestroy" link="#lcl.forms.TCustomForm.OnDestroy"/>
<element name="TCustomForm.FOnDropFiles" link="#lcl.forms.TCustomForm.OnDropFiles"/>
<element name="TCustomForm.FOnHelp" link="#lcl.forms.TCustomForm.OnHelp"/>
<element name="TCustomForm.FOnHide" link="#lcl.forms.TCustomForm.OnHide"/>
<element name="TCustomForm.FOnShortcut" link="#lcl.forms.TCustomForm.OnShortcut"/>
<element name="TCustomForm.FOnShow" link="#lcl.forms.TCustomForm.OnShow"/>
<element name="TCustomForm.FOnWindowStateChange" link="#lcl.forms.TCustomForm.OnWindowStateChange"/>
<element name="TCustomForm.FPosition" link="#lcl.forms.TCustomForm.Position"/>
<element name="TCustomForm.FRestoredLeft" link="#lcl.forms.TCustomForm.RestoredLeft"/>
<element name="TCustomForm.FRestoredTop" link="#lcl.forms.TCustomForm.RestoredTop"/>
<element name="TCustomForm.FRestoredWidth" link="#lcl.forms.TCustomForm.RestoredWidth"/>
<element name="TCustomForm.FRestoredHeight" link="#lcl.forms.TCustomForm.RestoredHeight"/>
<element name="TCustomForm.FShowInTaskbar" link="#lcl.forms.TCustomForm.ShowInTaskBar"/>
<element name="TCustomForm.FWindowState" link="#lcl.forms.TCustomForm.WindowState"/>
<element name="TCustomForm.FDelayedEventCtr"/>
<element name="TCustomForm.FDelayedOnChangeBounds"/>
<element name="TCustomForm.FDelayedOnResize"/>
<element name="TCustomForm.FIsFirstOnShow"/>
<element name="TCustomForm.FSnapOptions"/>
<element name="TCustomForm.GetClientHandle" link="#lcl.forms.TCustomForm.ClientHandle"/>
<element name="TCustomForm.GetClientHandle.Result"/>
<!-- private -->
<element name="TCustomForm.GetEffectiveShowInTaskBar">
<short>
Gets the value for the EffectiveShowInTaskBar property.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.GetEffectiveShowInTaskBar.Result">
<short>Value for the EffectiveShowInTaskBar property.</short>
</element>
<element name="TCustomForm.GetMonitor">
<short>Gets the value for the Monitor property.</short>
<seealso>
<link id="TCustomForm.Monitor"/>
</seealso>
</element>
<element name="TCustomForm.GetMonitor.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomForm.IsAutoScrollStored" link="#lcl.forms.TCustomForm.AutoScroll"/>
<element name="TCustomForm.IsAutoScrollStored.Result"/>
<element name="TCustomForm.IsForm">
<short>
Indicates whether Form properties should be stored in the stream.
</short>
<descr>
<p>
<var>IsForm</var> is used as the storage specifier for selected properties in
the class instance. Always returns <b>True</b> in <var>TCustomForm</var>.
</p>
</descr>
<seealso>
<link id="TCustomForm.Caption"/>
<link id="TCustomForm.OnClose"/>
<link id="TCustomForm.OnCloseQuery"/>
<link id="TCustomForm.OnResize"/>
<link id="TCustomForm.IsIconStored"/>
<link id="TCustomForm.IsAutoScrollStored"/>
</seealso>
</element>
<element name="TCustomForm.IsForm.Result">
<short>
<b>True</b> when the value for the various properties should be included in
the LCL streaming mechanism.
</short>
</element>
<element name="TCustomForm.IsIconStored" link="#lcl.forms.TCustomForm.Icon"/>
<element name="TCustomForm.IsIconStored.Result"/>
<element name="TCustomForm.CloseModal">
<short>Closes a modal form.</short>
<descr>
<p>
<var>CloseModal</var> is a procedure which attempts to close a form that has
been displayed by calling the <var>ShowModal</var> method.
</p>
<p>
CloseModal calls <var>CloseQuery</var> to determine the action performed in
the method. When CloseQuery returns <b>True</b>, the close action is set to
<var>caHide</var> and the <var>OnClose</var> event handler is signalled when
assigned. Form handlers are notified of the close action.
</p>
<p>
When CloseQuery is <b>False</b>, the close action is used to determine how
the request is handled. If the CloseAction is <var>caNone</var>, the value in
<var>ModalResult</var> is set to <b>0</b> (<b>zero</b>). If the CloseAction
is <var>caFree</var>, the <var>Release</var> method is called to allow the
<var>Application</var> to free the form component.
</p>
<p>
If an exception occurs in the method, the value in <var>ModalResult</var> is
set to <b>0</b> (<b>zero</b>) and the <var>Application.HandleException</var>
method is called.
</p>
<remark>
<var>CloseModal</var> does not forward the action to the widgetset class;
that is performed in the <var>ShowModal</var> method to ensure it is executed
in the widgetset class.
</remark>
</descr>
<seealso>
<link id="TCustomForm.CloseQuery"/>
<link id="TCustomForm.OnClose"/>
<link id="TCustomForm.ModalResult"/>
<link id="TCustomForm.Release"/>
<link id="TCustomForm.AddHandlerClose"/>
<link id="TApplication.HandleException"/>
<link id="TCloseAction"/>
</seealso>
</element>
<element name="TCustomForm.FreeIconHandles">
<short>Destroys the form icons.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.IconChanged">
<short>
Loads the new form icons, and notifies the widgetset and all forms.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.IconChanged.Sender"/>
<element name="TCustomForm.DelayedEvent">
<short>
Performs actions needed for delayed window move, resize, show, and activate
messages.
</short>
<descr>
<p>
<var>DelayedEvent</var> is a mechanism used to reduce the number of move,
resize, show, and activate messages that occur for forms and their child
controls.
</p>
<p>
<var>DelayedEvent</var> discards duplicate calls to the method; only the most
recent message is processed. It is executed using the
<var>QueueAsyncCall</var> method in <var>TApplication</var>. DelayedEvent
decrements an internal counter used to track the number of pending delayed
event messages. When the counter reaches zero (0), the message is applied.
</p>
<p>
When <var>WindowState</var> is changed to <var>wsNormal</var>, the window
origin and size is saved internally for use when the bounds or size is
restored.
</p>
<p>
When handling delayed <var>OnChangeBounds</var> and <var>OnChangeBounds</var>
messages, methods like <var>DoOnShow</var> and/or <var>Activate</var> are
called when the form is <var>Visible</var>. If the form has not already been
displayed and activated, the DoOnResize or the DoOnChangeBounds method is
called for the corresponding delayed message. The internal flags for the
delayed events are reset prior to exit.
</p>
</descr>
<version>
Modified in LCL 2.2.6 to check form visibility before showing or activating
the form.
</version>
<seealso>
<link id="TApplication.QueueAsyncCall"/>
<link id="TCustomForm.WindowState"/>
<link id="TCustomForm.WMSize"/>
<link id="TCustomForm.Activate"/>
<link id="TCustomForm.DoShow"/>
<link id="TScrollingWinControl.DoOnResize"/>
<link id="TControl.DoOnChangeBounds"/>
</seealso>
</element>
<element name="TCustomForm.DelayedEvent.Data">
<short>
An integer pointer to the data for the event; not used in the current
implementation.
</short>
</element>
<element name="TCustomForm.SetActive" link="#lcl.forms.TCustomForm.Active"/>
<element name="TCustomForm.SetActive.AValue"/>
<element name="TCustomForm.SetActiveControl" link="#lcl.forms.TCustomForm.ActiveControl"/>
<element name="TCustomForm.SetActiveControl.AWinControl"/>
<element name="TCustomForm.SetActiveDefaultControl" link="#lcl.forms.TCustomForm.ActiveDefaultControl"/>
<element name="TCustomForm.SetActiveDefaultControl.AControl"/>
<element name="TCustomForm.SetAllowDropFiles" link="#lcl.forms.TCustomForm.AllowDropFiles"/>
<element name="TCustomForm.SetAllowDropFiles.AValue"/>
<element name="TCustomForm.SetAlphaBlend" link="#lcl.forms.TCustomForm.AlphaBlend"/>
<element name="TCustomForm.SetAlphaBlend.AValue"/>
<element name="TCustomForm.SetAlphaBlendValue" link="#lcl.forms.TCustomForm.AlphaBlendValue"/>
<element name="TCustomForm.SetAlphaBlendValue.AValue"/>
<element name="TCustomForm.SetBorderIcons" link="#lcl.forms.TCustomForm.BorderIcons"/>
<element name="TCustomForm.SetBorderIcons.NewIcons"/>
<element name="TCustomForm.SetFormBorderStyle" link="#lcl.forms.TCustomForm.BorderStyle"/>
<element name="TCustomForm.SetFormBorderStyle.NewStyle"/>
<element name="TCustomForm.SetCancelControl" link="#lcl.forms.TCustomForm.CancelControl"/>
<element name="TCustomForm.SetCancelControl.NewControl"/>
<element name="TCustomForm.SetDefaultControl" link="#lcl.forms.TCustomForm.DefaultControl"/>
<element name="TCustomForm.SetDefaultControl.NewControl"/>
<element name="TCustomForm.SetFormStyle" link="#lcl.forms.TCustomForm.FormStyle"/>
<element name="TCustomForm.SetFormStyle.Value"/>
<element name="TCustomForm.SetIcon" link="#lcl.forms.TCustomForm.Icon"/>
<element name="TCustomForm.SetIcon.AValue"/>
<element name="TCustomForm.SetMenu" link="#lcl.forms.TCustomForm.Menu"/>
<element name="TCustomForm.SetMenu.Value"/>
<element name="TCustomForm.SetModalResult" link="#lcl.forms.TCustomForm.ModalResult"/>
<element name="TCustomForm.SetModalResult.AValue"/>
<element name="TCustomForm.SetPopupMode" link="#lcl.forms.TCustomForm.PopupMode"/>
<element name="TCustomForm.SetPopupMode.AValue"/>
<element name="TCustomForm.SetPopupParent" link="#lcl.forms.TCustomForm.PopupParent"/>
<element name="TCustomForm.SetPopupParent.AValue"/>
<element name="TCustomForm.SetPosition" link="#lcl.forms.TCustomForm.Position"/>
<element name="TCustomForm.SetPosition.Value"/>
<element name="TCustomForm.SetShowInTaskbar" link="#lcl.forms.TCustomForm.ShowInTaskBar"/>
<element name="TCustomForm.SetShowInTaskbar.Value"/>
<element name="TCustomForm.SetLastFocusedControl">
<short>Remembers the last focused control.</short>
<descr/>
<seealso>
<link id="TCustomForm.SetFocusedControl"/>
</seealso>
</element>
<element name="TCustomForm.SetLastFocusedControl.AControl">
<short>
Control to store as the last focused control in the form instance, or
<b>Nil</b> if the control has been freed.
</short>
</element>
<element name="TCustomForm.SetWindowFocus">
<short>Called when the Focus changed.</short>
<descr>
<p>
<var>SetWindowFocus</var> is a procedure used to ensure that the active
control in the form instance has the input focus when the forms receives
focus. At run-time, the control in <var>ActiveControl</var> (when assigned)
is used as the active control. At design-time, the active control is the
design surface for the current form instance.
</p>
<p>
No actions are performed in the method when a handle has not been allocated
for the active control, or the control cannot be focused.
</p>
<p>
SetWindowFocus calls the <var>SetFocus</var> routine in <file>LCLIntf</file>
to change the focus to the handle for the active control, and when successful
calls the <var>Perform</var> method in the control to post the
<b>CM_UIACTIVATE</b> control message.
</p>
<p>
SetWindowFocus is used in the implementation of the <var>SetFocus</var> and
SetActive methods.
</p>
</descr>
<seealso>
<link id="TCustomForm.SetFocus"/>
<link id="TCustomForm.WMActivate"/>
<link id="TCustomForm.ActiveControl"/>
<link id="TCustomForm.Active"/>
</seealso>
</element>
<element name="TCustomForm.SetWindowState">
<short>Sets the value for the WindowState property.</short>
<descr>
<p>
<var>SetWindowState</var> sets the value for the <var>WindowState</var>
property. Calls the <var>ShowWindow</var> routine at run-time when
<var>Showing</var> is set to <b>True</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.SetWindowState.Value">
<short>New value for the property.</short>
</element>
<element name="TCustomForm.AddHandler">
<short>
Adds a form notification handler with the specified type and code.
</short>
<descr>
<p>
<var>AddHandler</var> is a procedure used to add a form notification handler
to the list of handlers in the form instance.
</p>
<p>
<var>HandlerType</var> is a <var>TFormHandlerType</var> enumeration value
that defines the situation(s) where the form handler can be executed. See
<link id="TFormHandlerType">TFormHandlerType</link> for more information
about values in the enumeration.
</p>
<p>
<var>Handler</var> is a <var>TMethod</var> record with pointers to the code
and optional data executed when the handler is invoked.
</p>
<p>
<var>AsFirst</var> indicates if the handler should be inserted as the initial
handler in the method list (when <b>True</b>), or appended to the end of the
list (when <b>False</b>).
</p>
<p>
AddHandler calls <var>RaiseGDBException</var> to raise an exception when the
pointer to the Code in Handler has not been assigned.
</p>
<p>
AddHandler ensures that a <var>TMethodList</var> exists for handlers using
the value in HandlerType, and calls the <var>Add</var> method in the
<var>TMethodList</var> to store the Handler at the position needed for
AsFirst.
</p>
<p>
AddHandler is called from the implementation of more specialized methods like
<var>AddHandlerClose</var>, <var>AddHandlerCreate</var>, and
<var>AddHandlerFirstShow</var>.
</p>
</descr>
<errors>
<p>
Raises a catchable exception if the Code property has not been assigned for
the TMethod instance in Handler. Raised with the message
'TCustomForm.AddHandler'.
</p>
</errors>
<seealso>
<link id="TCustomForm.AddHandlerClose"/>
<link id="TCustomForm.AddHandlerCreate"/>
<link id="TCustomForm.AddHandlerFirstShow"/>
<link id="TFormHandlerType"/>
<link id="#lazutils.lazmethodlist.TMethodList">TMethodList</link>
<link id="#rtl.classes.TMethod">TMethod</link>
</seealso>
</element>
<element name="TCustomForm.AddHandler.HandlerType">
<short>Form handler type added in the method.</short>
</element>
<element name="TCustomForm.AddHandler.Handler">
<short>Code to execute for the form handler.</short>
</element>
<element name="TCustomForm.AddHandler.AsFirst">
<short>
<b>True</b> if the new form handler is stored first in the list of handlers.
</short>
</element>
<element name="TCustomForm.RemoveHandler">
<short>Removes a form notification handler of the specified type.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.RemoveHandler.HandlerType">
<short>
Form handler type for the routine removed in the method.
</short>
</element>
<element name="TCustomForm.RemoveHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TCustomForm.FindDefaultForActiveControl"/>
<element name="TCustomForm.FindDefaultForActiveControl.Result"/>
<element name="TCustomForm.UpdateMenu">
<short>Called when the main menu has been changed.</short>
<descr>
<p>
Ensures that handles for the <var>Menu</var> are valid for the form display
style. The Menu is not displayed at run-time for a modal dialog form
(<var>BorderStyle</var> is set to <var>bsDialog</var>); in this case, the
<var>DestroyHandle</var> method in Menu is called to free the
<var>Handle</var> for the Menu. (This is Delphi compatible).
</p>
<p>
The <var>WindowHandle</var> for the Menu is set to the Handle property from
the form instance.
</p>
<p>
No actions are performed in the method if the Handle has not been allocated,
or when Menu has not been assigned for the form.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.UpdateShowInTaskBar">
<short>
Updates the widgetset class with the effective form visibility in the task
bar.
</short>
<descr>
<p>
Uses values in ShowInTaskBar and the TaskBarBehavior setting in Application
to determine the effective visibility for the form in the task bar. Calls the
SetShowInTaskbar method in the widgetset class to update the effective form
visibility.
</p>
<p>
No actions are performed in the method for the following conditions:
</p>
<ul>
<li>
When the form instance is the MainForm for the Application (it is handled by
the application).
</li>
<li>
When the handle has not been allocated for the form instance.
</li>
<li>
When the form has a Parent control, or has been configured as a MDI Child
form (FormStyle is fsMDIChild).
</li>
<li>
The form has not been made visible (Showing is <b>False</b>).
</li>
</ul>
</descr>
<seealso/>
</element>
<element name="TCustomForm.GetScreenSnap">
<short>
Gets the value for the ScreenSnap property.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TCustomForm.ScreenSnap"/>
</seealso>
</element>
<element name="TCustomForm.GetScreenSnap.Result">
<short>
Value for the ScreenSnap property.
</short>
</element>
<element name="TCustomForm.SetScreenSnap">
<short>
Sets the value for the ScreenSnap property.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TCustomForm.ScreenSnap"/>
</seealso>
</element>
<element name="TCustomForm.SetScreenSnap.AValue">
<short>
New value for the ScreenSnap property.
</short>
</element>
<element name="TCustomForm.GetSnapBuffer">
<short>
Gets the value for the SnapBuffer property.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TCustomForm.SnapBuffer"/>
</seealso>
</element>
<element name="TCustomForm.GetSnapBuffer.Result">
<short>
Value for the SnapBuffer property.
</short>
</element>
<element name="TCustomForm.SetSnapBuffer">
<short>
Sets the value for the SnapBuffer property.
</short>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TCustomForm.SnapBuffer"/>
</seealso>
</element>
<element name="TCustomForm.SetSnapBuffer.AValue">
<short>
New value for the SnapBuffer property.
</short>
</element>
<element name="TCustomForm.SetSnapOptions">
<short>
Sets the value for the SnapOptions property.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TCustomForm.SnapOptions"/>
</seealso>
</element>
<element name="TCustomForm.SetSnapOptions.AValue">
<short>
New value for the SnapOptions property.
</short>
</element>
<element name="TCustomForm.WMActivate">
<short>
Handles the LM_ACTIVATE message which activates or deactivates the form.
</short>
<descr>
<p>
Calls SetActive to update the value in the Active property to reflect the
value for the Active member in Message.
</p>
<p>
When the form is being de-activated, the Deactivate method in Application is
called. Otherwise, the Activate method in Application is called. The
UpdateShowInTaskBar method is called ShowInTaskBar to determine the effective
visibility for the form in the task bar.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.WMActivate.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.WMCloseQuery">
<short>Handles the LM_CLOSEQUERY message used to close the window.</short>
<descr>
<p>
Calls the Close method to process and apply the ModalResult and CloseAction
for the form. Sets the Result member in Message to 0 (zero) to indicate that
WndProc should ignore the message; it has been handled in this method (and
Close).
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.WMCloseQuery.message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.WMHelp">
<short>Handles the LM_HELP window message for the form.</short>
<descr>
<p>
No actions are performed in the method at design-time, or when values have
not been assigned to the HelpInfo member in Message.
</p>
<p>
When HelpInfo has a HELPINFO_WINDOW context type, FindControl is called to
locate and display the help for the control with the item handle in Message.
When HELPINFO_MENUITEM is the context type, GetHelpContext in Menu is called
to locate the control ID in Message. If not found, the item handle in Message
is used. As a default, the value in the Context property is used to display
the context help.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.WMHelp.Message">
<short>Message examined in the method.</short>
</element>
<element name="TCustomForm.WMShowWindow">
<short>Handles the LM_SHOWWINDOW window message for the form.</short>
<descr>
<p>
No actions are performed in the method when the form has already been made
visible (FormState contains the value fsShowing).
</p>
<p>
Updates FormState to include the value fsShowing. Calls DoShowWindow to focus
a control on the form (when needed). Removes fsShowing from FormState prior
to exiting from the method.
</p>
<p>
Re-implements the method from the ancestor class; does not call the inherited
method.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.WMShowWindow.message">
<short>Message examined in the method.</short>
</element>
<element name="TCustomForm.WMSize">
<short>Handles the LM_SIZE window message for the form.</short>
<descr>
<p>
Re-implements the method from the ancestor class.
</p>
<p>
Ensures that auto-sizing is disabled for a size message for a top-level form
(where <var>Parent</var> is not assigned) or from the LCL interface. This is
done by including the value <var>fsDisableAutoSize</var> in the
<var>FormState</var> property.
</p>
<p>
Calls the inherited method to apply the width, height, and window state
values in <var>Message</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.WMSize.message">
<short>Message examined in the method.</short>
</element>
<element name="TCustomForm.WMWindowPosChanging">
<short>
Notifies the magnetic window manager when the position for a form is being
updated.
</short>
<descr>
<p>
<var>WMWindowPosChanging</var> is a method used to notify the MagnetManager in
TScreen when the position for the window in Message is being updated. The
SnapForm method in the TWindowMagnetManager instance is called to update the
Form instance with the window position in Message. The SnapForm method may
update the window position if it is within the distance where snapping
behavior is engaged for the form.
</p>
<p>
Use the SnapOptions property to specify which snapping behaviors are enabled
for the form, and the distance at which the snapping behavior is engaged. You
can also use the SnapBuffer and ScreenSnap properties to maintain Delphi VCL
code compatibility.
</p>
<remark>
In the current LCL release, the LM_WINDOWPOSCHANGING message is dispatched for
the Windows platform only. None of the other widgetsets check for or apply the
message.
</remark>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TCustomForm.SnapOptions"/>
<link id="TCustomForm.SnapBuffer"/>
<link id="TCustomForm.ScreenSnap"/>
<link id="TWindowMagnetManager.SnapForm"/>
<link id="TScreen.MagnetManager"/>
<link id="Screen"/>
</seealso>
</element>
<element name="TCustomForm.WMWindowPosChanging.Message">
<short/>
</element>
<element name="TCustomForm.WMWindowPosChanged">
<short>Handles the LM_WINDOWPOSCHANGED window message for the form.</short>
<descr>
<p>
Re-implements the method from the ancestor class.
</p>
<p>
Ensures that auto-sizing is disabled for a position message to a top-level
form (where <var>Parent</var> is not assigned), or from the LCL interface
when new height or width values are provided. This is done by including the
value <var>fsDisableAutoSize</var> in the <var>FormState</var> property.
</p>
<p>
Calls the inherited method prior to exit to apply the position and bounds for
the form.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.WMWindowPosChanged.Message">
<short>Message examined in the method.</short>
</element>
<element name="TCustomForm.CMBiDiModeChanged">
<short>Handles the CM_BIDIMODECHANGED control message for the form.</short>
<descr>
<p>
Re-implements the method from the ancestor class. Calls the inherited method
on entry using the value in Message to set the BiDiMode and adjust the size
for the control.
</p>
<p>
Ensures that all components owned by the form are notified of the change to
the BiDiMode property. This is needed for menus on the form. A TLMessage
instance is constructed with the CM_PARENTBIDIMODECHANGED message and
dispatched to all of the Components on the form not derived from TWinControl.
TWinControl handles the notification for its descendants. Alignment is
temporarily disabled during the process, and re-enabled prior to exiting from
the method.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMBiDiModeChanged.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.CMParentBiDiModeChanged">
<short>
Handles the CM_PARENTBIDIMODECHANGED control message for the form.
</short>
<descr>
<p>
Sets the BidiMode property to the value in Parent when ParentBiDiMode is
<b>True</b> and Parent has been assigned. When Parent has not been assigned,
the BiDiMode property in Application is copied to the form instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMParentBiDiModeChanged.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.CMAppShowBtnGlyphChanged">
<short>
Handles the CM_APPSHOWBTNGLYPHCHANGED control message for the form.
</short>
<descr>
<p>
Ensures that controls with a Glyph are notified when a change has occurred to
a button glyph. Calls NotifyControls to broadcast Message to all Controls on
the form.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMAppShowBtnGlyphChanged.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.CMAppShowMenuGlyphChanged">
<short>
Handles the CM_APPSHOWMENUGLYPHCHANGED control message for the form.
</short>
<descr>
<p>
Ensures that menus and menus items are notified of a change to a Glyph.
Dispatches the value in Message to all Components on the form.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMAppShowMenuGlyphChanged.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.CMIconChanged">
<short>Handles the CM_ICONCHANGED control message for the form.</short>
<descr>
<p>
Frees and re-creates handle(s) for icons used on the form, and notifies the
widgetset class by calling its SetIcon method.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMIconChanged.Message">
<short>Control message for the notification.</short>
</element>
<element name="TCustomForm.CMRelease">
<short>Handles the CM_RELEASE control message for the form.</short>
<descr>
<p>
Calls the Free method to destroy the form instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMRelease.Message">
<short>Control message for the notification.</short>
</element>
<element name="TCustomForm.CMActivate">
<short>Handles the CM_ACTIVATE control message for the form.</short>
<descr>
<p>
Ensures that the Menu for the MainForm in the Application is merged into the
Menu for the form instance when FormStyle is fsMDIChild. This action is not
performed at design-time, or when the MainForm or the Menu for the
Application has not been assigned.
</p>
<p>
Calls Activate to signal the OnActivate event handler (when assigned) if
needed.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMActivate.Message">
<short>Control message for the notification.</short>
</element>
<element name="TCustomForm.CMDeactivate">
<short>Handles the CM_DEACTIVATE control message for the form.</short>
<descr>
<p>
This message occurs when the form loses focus within the application.
</p>
<p>
Calls the Deactivate method to signal the OnDeactivate event handler (when
assigned). Ensures that the Menu merged to the application MainForm during
activation is removed from the Menu for the Application. This action is not
performed at design-time, or when Menu has not been assigned. It applies to a
form using the fsMDIChild form style in an application using the fsMDIForm
style in its MainForm.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMDeactivate.Message">
<short>Control message processed in the method.</short>
</element>
<element name="TCustomForm.CMShowingChanged">
<short>Handles the CM_SHOWINGCHANGED control message for the form.</short>
<descr>
<p>
Uses the value in <var>Showing</var> to determine whether the
<var>DoShow</var> or the <var>DoHide</var> method is called. When Showing is
<b>True</b>, the DoShow method is called to signal the <var>OnShow</var>
event handler (when assigned) if needed. When Showing is <b>False</b>, the
DoHide method is called to signal the <var>OnHide</var> event handler (when
assigned).
</p>
<p>
If either event handler raises an <var>Exception</var>, it is ignored when
<var>HandleShowHideException</var> is set to <b>True</b>. It is re-raised
when HandleShowHideException is <b>False</b>.
</p>
<p>
Calls the inherited method prior to exit to notify the widgetset class of the
window state change, and to update window control flags for the form.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMShowingChanged.Message">
<short>Control message processed in the method.</short>
</element>
<element name="TCustomForm.WMDPIChanged">
<short>Handles the LM_DPICHANGED window message for the form.</short>
<descr>
<p>
Calls AutoAdjustLayout to apply the DPI setting in Message. This action is
performed when:
</p>
<ul>
<li>The Parent for the form has not been assigned.</li>
<li>Scaled is enabled for both the Application and the form instance.</li>
<li>
The DPI setting in Message is different than the PixelsPerInch value for the
form.
</li>
</ul>
</descr>
<seealso/>
<notes>
<note>
Problem (Windows): if the form is shown the first time on a secondary monitor
with a different DPI settings, the WM_DPICHANGED message is sent within
UpdateBounds when BoundsLockCount>0 which means the bounds are not scaled. We
force to update the bounds. See issue 32162. (A better solution is welcome.)
</note>
</notes>
</element>
<element name="TCustomForm.WMDPIChanged.Msg">
<short>Window message handled in the method.</short>
</element>
<element name="TCustomForm.FActionLists">
<short>Member used to store the action lists associated with the form.</short>
</element>
<element name="TCustomForm.FFormBorderStyle" link="#lcl.forms.TCustomForm.BorderStyle"/>
<element name="TCustomForm.FFormState" link="#lcl.forms.TCustomForm.FormState"/>
<element name="TCustomForm.WSRegisterClass" link="#lcl.lclclasses.TLCLComponent.WSRegisterClass"/>
<element name="TCustomForm.DoShowWindow">
<short>
Chooses the active control when the form becomes visible at run-time.
</short>
<descr>
<p>
Calls a private method to locate the first visible and enabled control in the
tab order for the form. Sets the value in ActiveControl to the control
instance located in the method.
</p>
<p>
No actions are performed in the method at design-time, when ActiveControl has
already been assigned, or when the form instance has a Parent.
</p>
<p>
DoShowWindow is called from the WMShowWindow method where the LM_SHOWWINDOW
window message is handled for the form.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.Activate">
<short>
Signals the OnActivate event handler when a form is focused in an application.
</short>
<descr>
<p>
<var>Activate</var> is a procedure used to signal the <var>OnActivate</var>
event handler (if assigned) when the form is focused in an application.
Activate is called when the <b>CM_Activate</b> message is handled for the form.
It is called after the OnShow event is signalled in the DoShow method.
</p>
<p>
Activate uses an internal member to determine whether the form is being
focused for the first time, or following a change of focus between forms.
No actions are performed in the method when the form is being focused for
the first time and the <var>WindowState</var> property contains
<var>wsMaximized</var> or <var>wsFullScreen</var>.
</p>
<p>
Use <var>OnShow</var> to respond to the event notification performed when the
form is displayed for the first time.
</p>
<p>
Use <var>OnChangeBounds</var> or <var>OnResize</var> to respond to delayed
changes to the form bounds (position) or resize events.
</p>
<p>
See <var>Deactivate</var> for the actions performed when the form instance
loses focus.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnActivate"/>
<link id="TCustomForm.OnShow"/>
<link id="TCustomForm.OnResize"/>
<link id="TCustomForm.OnWindowStateChange"/>
<link id="TCustomForm.Deactivate"/>
<link id="TCustomForm.Visible"/>
<link id="TForm.OnChangeBounds"/>
<link id="TCustomForm.WindowState"/>
<link id="#lcl.controls.TControl.OnChangeBounds">TControl.OnChangeBounds</link>
<link id="#lcl.controls.TControl.OnResize">TControl.OnResize</link>
</seealso>
</element>
<element name="TCustomForm.ActiveChanged">
<short>An empty implementation in TCustomForm.</short>
<descr>
<p>
Can be implemented in a descendant to perform actions needed when the active
form is changed. Just like Delphi VCL.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.AdjustClientRect">
<short>Excludes borders from the given rectangle.</short>
<descr>
<p>
<var>AdjustClientRect</var> is an overridden method in <var>TCustomForm</var>
which re-implements the method from the ancestor class. It is used to
decrease the width and height for the client rectangle specified in
<var>Rect</var> by the number of pixels in the <var>BorderWidth</var>
property. It is used in the <var>AlignControls</var> method, and when
auto-sizing is performed for <var>Controls</var>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.AdjustClientRect">TWinControl.AdjustClientRect</link>
</seealso>
</element>
<element name="TCustomForm.AdjustClientRect.Rect">
<short>Client rectangle adjusted in the method.</short>
</element>
<element name="TCustomForm.BeginFormUpdate">
<short>
Increments the form update counter, and disables auto-sizing on the initial
update lock.
</short>
<descr>
<p>
Used with the <var>EndFormUpdate</var> method to manage auto-sizing during
form updates. For the initial call to <var>BeginFormUpdate</var>,
<var>DisableAutoSizing</var> is called to suspend auto-sizing.
</p>
<p>
<var>EndFormUpdate</var> decrements the internal update counter. When the
update count reaches <b>0</b>, auto-sizing is re-enabled.
</p>
<p>
BeginFormUpdate is called from the CreateNew method and disables auto-sizing
while the new form instance is configured. EndFormUpdate is called from the
AfterConstruction method, and occurs after the bounds for the form have been
updated but before the form is scaled using AutoAdjustLayout.
</p>
</descr>
<seealso>
<link id="TCustomForm.EndFormUpdate"/>
<link id="TCustomDesignControl.AutoAdjustLayout"/>
<link id="TCustomForm.CreateNew"/>
<link id="TCustomForm.Create"/>
<link id="#lcl.controls.TControl.DisableAutoSizing">TControl.DisableAutoSizing</link>
<link id="#lcl.controls.TControl.EnableAutoSizing">TControl.EnableAutoSizing</link>
</seealso>
</element>
<element name="TCustomForm.ColorIsStored">
<short>Implements the storage specifier for the Color property.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.Color">TControl.Color</link>
</seealso>
</element>
<element name="TCustomForm.ColorIsStored.Result">
<short>
<b>True</b> when Color has value other than clDefault or clBtnFace.
</short>
</element>
<element name="TCustomForm.CreateParams">
<short>
Initializes parameters used to create the handle for the form instance.
</short>
<descr>
<p>
<var>CreateParams</var> is used to initialize parameters needed to create the
handle for the form instance.
</p>
<p>
CreateParams is an overridden procedure in <var>TCustomForm</var>, and calls
the inherited method on entry. CreateParams ensures that values in the
<var>Params</var> argument are valid. This includes setting the realized
parent form and window handle for a form which is not the main form in the
application. <var>Style</var> flags are also updated to indicate how the form
is displayed in the task bar.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.CreateParams">TWinControl.CreateParams</link>
</seealso>
</element>
<element name="TCustomForm.CreateParams.Params">
<short>Values examined and updated in the method.</short>
</element>
<element name="TCustomForm.CreateWnd">
<short>
Creates the handle for the widgetset class and updates it Menu and Icons.
</short>
<descr>
<p>
<var>CreateWnd</var> is an overridden method in <var>TCustomForm</var> used
to create (or re-create) the <var>Handle</var> for the widgetset class. It
sets the initial values for <var>FormState</var>, and calls the inherited
method to handle auto-sizing and scroll bars.
</p>
<p>
CreateWnd ensures that a handle is allocated for the <var>Menu</var> and the
Handle for the form is used as its <var>WindowHandle</var>. The
<b>CM_ICONCHANGED</b> control message is performed to (re-)create handles for
menu glyphs, and to post the changes to the widgetset class.
</p>
</descr>
<seealso>
<link id="#lcl.forms.TScrollingWinControl.CreateWnd">TScrollingWinControl.CreateWnd</link>
<link id="#lcl.controls.TWinControl.CreateWnd">TWinControl.CreateWnd</link>
</seealso>
</element>
<element name="TCustomForm.Deactivate">
<short>
Performs actions when the form loses focus.
</short>
<descr>
<p>
Called when the form loses focus in the application. It signals the
<var>OnDeactivate</var> event handler (when assigned). Called from the
<var>CMDeactivate</var> and <var>WndProc</var> methods.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnDeactivate"/>
<link id="TCustomForm.Activate"/>
<link id="TCustomForm.OnActivate"/>
<link id="TCustomForm.CMDeactivate"/>
<link id="TCustomForm.WndProc"/>
</seealso>
</element>
<element name="TCustomForm.DoClose">
<short>Notifies handlers of the close action for the form.</short>
<descr>
<p>
<var>DoClose</var> is a method used to notify close handlers for the form
instance of the action requested in the <var>CloseAction</var> parameter.
</p>
<p>
It is called from the <var>Close</var> method for a form that is not
displayed as a modal dialog; i. e. <var>FormState</var> does not contain
<var>fsModal</var>. It occurs after <var>CloseQuery</var> (and
<var>OnCloseQuery</var>) have been called to determine if the form can in
fact be closed, and the <var>CloseAction</var> has been set for the form
style.
</p>
<p>
DoClose signals the <var>OnClose</var> event handler (when assigned) to allow
the form instance to modify the CloseAction argument. It iterates over the
close handlers in the form instance, and signals each of the
<var>TCloseEvent</var> instances in the method list using CloseAction as an
argument.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnClose"/>
<link id="TCustomForm.Close"/>
<link id="TCustomForm.CloseQuery"/>
<link id="TCustomForm.OnCloseQuery"/>
<link id="TCustomForm.FormState"/>
<link id="TCustomForm.FormStyle"/>
<link id="TFormHandlerType"/>
<link id="TCloseEvent"/>
</seealso>
</element>
<element name="TCustomForm.DoClose.CloseAction">
<short>Close action to perform for the from instance.</short>
</element>
<element name="TCustomForm.DoCreate">
<short>Notifies the create handlers for the form instance.</short>
<descr>
<p>
<var>DoCreate</var> is a method used to signal the create handlers for the
form instance. DoCreate signals the <var>OnCreate</var> event handler (when
assigned) to perform any actions needed for the new form instance. DoCreate
also signals other create handlers to perform the methods using the current
form instance as an argument.
</p>
<p>
If an <var>Exception</var> occurs in one of the event handlers, it is handled
in the method when <var>HandleCreateException</var> returns <b>True</b>. When
it returns <b>False</b>, the exception is re-raised in the method.
</p>
<p>
DoCreate calls <var>LockRealizeBounds</var> on entry to disable sending
bounds changes to the widgetset class. <var>UnlockRealizeBounds</var> is
called prior to exit to re-enable sending bounds changes to the widgetset
class.
</p>
<p>
DoCreate is a called from the <var>AfterConstruction</var> method after the
initial bounds for the form have been set, and before scaling and automatic
layout adjustment are performed (if needed) for the new form instance.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnCreate"/>
<link id="TCustomForm.HandleCreateException"/>
<link id="TCustomForm.AfterConstruction"/>
<link id="TFormHandlerType"/>
<link id="#lcl.controls.TWinControl.LockRealizeBounds">TWinControl.LockRealizeBounds</link>
<link id="#lcl.controls.TWinControl.UnlockRealizeBounds">TWinControl.UnlockRealizeBounds</link>
</seealso>
</element>
<element name="TCustomForm.DoDestroy">
<short>Signals the OnDestroy event handler for the form instance.</short>
<descr>
<p>
<var>DoDestroy</var> is a method used to signal the <var>OnDestroy</var>
event handlers assigned for the form instance. If an <var>Exception</var>
occurs in the event handler, it is handled in the method when
<var>HandleDestroyException</var> is set to <b>True</b>. When set to
<b>False</b>, the exception is re-raised in the method.
</p>
<p>
DoDestroy is called from the <var>BeforeDestruction</var> method, and allows
the application to perform actions needed before the form instance is
physically freed. It is called after the form has been removed from the focus
list for the <var>Screen</var>, hidden by calling the <var>Hide</var> method,
and merged menu items have been removed from the MainForm for the Application.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnDestroy"/>
<link id="TCustomForm.HandleDestroyException"/>
<link id="TCustomForm.BeforeDestruction"/>
<link id="TCustomForm.Hide"/>
<link id="TCustomForm.Menu"/>
<link id="Screen"/>
<link id="TScreen"/>
<link id="Application"/>
<link id="TApplication"/>
</seealso>
</element>
<element name="TCustomForm.DoHide">
<short>Signals the OnHide event handler for the form instance.</short>
<descr>
<p>
Called from the <var>CMShowingChanged</var> method when <var>Showing</var> is
set to <b>False</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.DoShow">
<short>Signals the OnShow event handler when needed.</short>
<descr>
<p>
No actions are performed in the method when a maximized or full-screen window
(<var>WindowState</var> contains <var>wsMaximized</var> or
<var>wsFullScreen</var>) is displayed for the first time. It signals the
OnShow event handler (when assigned) to perform the event notification.
</p>
<p>
DoShow is called from the <var>DelayedEvent</var> method in response to
queued <var>OnResize</var> or <var>OnChangeBounds</var> events, and from the
<var>CMShowingChanged</var> method when <var>Showing</var> is set to
<b>True</b>.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnShow"/>
<link id="TCustomForm.WindowState"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
</seealso>
</element>
<element name="TCustomForm.EndFormUpdate">
<short>
Decrements the form update counter, and re-enables auto-sizing on the form.
</short>
<descr>
<p>
EndFormUpdate is used along with <var>BeginFormUpdate</var> method to manage
auto-sizing during form updates. An initial call to <var>BeginFormUpdate</var>
disables auto-sizing when the form instance is created.
</p>
<p>
<var>EndFormUpdate</var> decrements the internal update counter. When the
update count reaches <b>0</b>, auto-sizing is re-enabled.
</p>
<p>
BeginFormUpdate is called from the CreateNew method and disables auto-sizing
while the new form instance is configured. EndFormUpdate is called from the
AfterConstruction method, and occurs after the bounds for the form have been
updated but before the form is scaled using AutoAdjustLayout.
</p>
</descr>
<seealso>
<link id="TCustomForm.BeginFormUpdate"/>
<link id="TCustomDesignControl.AutoAdjustLayout"/>
<link id="TCustomForm.CreateNew"/>
<link id="TCustomForm.Create"/>
<link id="TCustomForm.AfterConstruction"/>
<link id="#lcl.controls.TWinControl.FormEndUpdated">TWinControl.FormEndUpdated</link>
</seealso>
</element>
<element name="TCustomForm.HandleCreateException">
<short>
Indicates if an exception in the OnCreate event handler is handled by the
application.
</short>
<descr>
<p>
<var>HandleCreateException</var> is a <var>Boolean</var> function which
indicates if an exception raised in the <var>OnCreate</var> event handler is
handled in the form instance. The return value is <b>True</b> when the
<var>Application.CaptureExceptions</var> property is set to <b>True</b>; the
<var>HandleException</var> method in <var>Application</var> is called to
notify its exception handlers of the exception. When the return value is
<b>False</b>, the exception is re-raised in the caller.
</p>
<p>
HandleCreateException is called from the DoCreate method.
</p>
</descr>
<seealso>
<link id="TApplication.HandleException"/>
<link id="TApplication.CaptureExceptions"/>
</seealso>
</element>
<element name="TCustomForm.HandleCreateException.Result">
<short><b>True</b> when the exception is handled by the application.</short>
</element>
<element name="TCustomForm.HandleDestroyException">
<short>Placeholder for exception handlers in derived classes.</short>
<descr>
<p>
By default the Application exception handler is invoked.
</p>
</descr>
<seealso>
<link id="TApplication.HandleException"/>
<link id="TApplication.CaptureExceptions"/>
</seealso>
</element>
<element name="TCustomForm.HandleDestroyException.Result">
<short><b>True</b> when the exception was handled.</short>
</element>
<element name="TCustomForm.HandleShowHideException">
<short>Placeholder for exception handlers in derived classes.</short>
<descr>
<p>
By default the Application exception handler is invoked.
</p>
</descr>
<seealso>
<link id="TApplication.HandleException"/>
<link id="TApplication.CaptureExceptions"/>
</seealso>
</element>
<element name="TCustomForm.HandleShowHideException.Result">
<short><b>True</b> when the exception was handled.</short>
</element>
<element name="TCustomForm.InitializeWnd">
<short>Initializes the widget, also for AlphaBlend and AllowDropFiles.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TWinControl.InitializeWnd">TWinControl.InitializeWnd</link>
</seealso>
</element>
<element name="TCustomForm.Loaded">
<short>
Performs actions when the component has been loaded using the LCL streaming
mechanism.
</short>
<descr>
<p>
<var>Loaded</var> is an overridden method in <var>TCustomForm</var>.
</p>
<p>
It disables alignment in the form, and adjusts the PixelsPerInch setting for
the Font when it differs from the design-time setting. It is performed when
<var>Scaled</var> is enabled for the form and the Application. This action is
also performed for any child Controls. Calls the inherited Loaded method, and
re-enables alignment for the form instance.
</p>
<p>
Ensures that the <var>ActiveControl</var> (when assigned) can receive focus.
ActiveControl is set to <b>Nil</b> if the control cannot be focused for the
form instance. Sets the <var>Visible</var> property to <var>True</var> when
<var>FormState</var> contains the value <var>fsVisible</var>.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.Loaded"/>
<link id="#rtl.classes.TComponent">TComponent</link>
</seealso>
</element>
<element name="TCustomForm.ChildHandlesCreated">
<short>
Called when handles for child control are created in the form instance.
</short>
<descr>
<p>
ChildHandlesCreated is called after all handles for child controls are
created. When this is a top-level form (<var>Parent</var> is Nil), the
ParentFormHandleInitialized method is also called.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.ChildHandlesCreated">TWinControl.ChildHandlesCreated</link>
</seealso>
</element>
<element name="TCustomForm.Notification">
<short>
Handles the notification when a component is added to or removed from the
form.
</short>
<descr>
<p>
<var>Notification</var> is an overridden method in <var>TCustomForm</var>
used to handle the notification when the component in <var>AComponent</var>
has been added to or removed from the form instance. Operation is the action
performed for the component.
</p>
<p>
Notification calls the inherited method on entry, and performs additional
actions for the ActionList, Menu, and pop-up parent form used in the control.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Notification">TControl.Notification</link>
</seealso>
</element>
<element name="TCustomForm.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TCustomForm.Notification.Operation">
<short>Operation performed for the component.</short>
</element>
<element name="TCustomForm.PaintWindow">
<short>
Calls the Paint method using the specified device context in the control
Canvas.
</short>
<descr>
<p>
<var>PaintWindow</var> is an overridden method in <var>TCustomForm</var>. It
re-implements the method from the ancestor class, and does <b>not</b> call
the inherited method.
</p>
<p>
PaintWindow assigns the device context in <var>dc</var> to the
<var>Canvas</var> handle. The <var>Paint</var> method is called to signal the
<var>OnPaint</var> event handler (when assigned). If a design surface is
active for the form instance, its <var>PaintGrid</var> method is called. The
Canvas handle is reset to 0 prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TCustomControl.PaintWindow">TCustomControl.PaintWindow</link>
</seealso>
</element>
<element name="TCustomForm.PaintWindow.dc">
<short>Device context (Handle) assigned to the Canvas for the form.</short>
</element>
<element name="TCustomForm.RequestAlign">
<short>
Calls the user Alignment handler (AlignControls). Here: NOP for a top-level
form.
</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.RequestAlign">TControl.RequestAlign</link>
</seealso>
</element>
<element name="TCustomForm.Resizing">
<short>
Performs actions needed when the form processes the WMSize message.
</short>
<descr>
<p>
Uses the value in <var>State</var> to determine the action required in the
method. The LCL interface is used to determine if the window state is valid
for the widgetset. When allowed, the following methods are called for the
corresponding <var>TWindowState</var> value:
</p>
<dl>
<dt>wsMinimized</dt>
<dd>
Calls the Minimize method in Application, or Restore if the Form is already
minimized.
</dd>
</dl>
<p>
If the value in WindowState has been changed, the method honors the value in
the Position property if it was set to maximized at design-time. When the
<var>OnWindowStateChange</var> event handler has been assigned for the form,
it is signalled for the current class instance.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.Resizing"/>
<link id="TCustomForm.WMSize"/>
<link id="TScrollingWinControl.WMSize"/>
<link id="TCustomForm.OnWindowStateChange"/>
</seealso>
</element>
<element name="TCustomForm.Resizing.State">
<short>Window state applied in the method.</short>
</element>
<element name="TCustomForm.CalculatePreferredSize">
<short>
Calculates the clipping width and height for a top-level form on the monitor
WorkArea.
</short>
<descr>
<p>
<var>CalculatePreferredSize</var> is an overridden method in
<var>TCustomForm</var>. It calls the inherited method on entry to calculate
the default dimensions for the new class instance, and to notify the
widgetset class when its Handle has been allocated.
</p>
<p>
CalculatePreferredSize ensures that a form anchored to the bottom or right
fits within the WorkArea rectangle on the Monitor. The value in
PreferredWidth or PreferredHeight is updated when Anchors contains akRight or
akBottom.
</p>
</descr>
<seealso>
<link id="TCustomForm.Monitor"/>
<link id="TMonitor.WorkAreaRect"/>
<link id="#lcl.controls.TControl.CalculatePreferredSize">TControl.CalculatePreferredSize</link>
<link id="#lcl.controls.TControl.Anchors">TControl.Anchors</link>
</seealso>
</element>
<element name="TCustomForm.CalculatePreferredSize.PreferredWidth">
<short>Default width for a new instance of the class.</short>
</element>
<element name="TCustomForm.CalculatePreferredSize.PreferredHeight">
<short>Default height for a new instance of the class.</short>
</element>
<element name="TCustomForm.CalculatePreferredSize.WithThemeSpace">
<short>
<b>True</b> if additional space is reserved for theme element details.
</short>
</element>
<element name="TCustomForm.DoOnResize">
<short>
Performs a delayed resize action using the DelayedEvent for the control.
</short>
<descr>
<p>
<var>DoOnResize</var> is an overridden method in <var>TCustomForm</var>. It
re-implements the method from the ancestor class, and does not call the
inherited method.
</p>
<p>
DoOnResize sets an internal flag to indicate that a delayed resize event has
been requested. It increments an internal counter to track the number of
pending delayed events.
</p>
<p>
DoOnResize uses the QueueAsyncCall method in the TApplication instance to
queue execution of the private DelayedEvent method. DelayedEvent will discard
duplicate requests, and call the inherited method to signal OnResize event
handlers (when assigned) and update scroll bars (when needed).
</p>
<p>
No actions are performed in the method when the component is being freed
(csDestroying in ComponentState).
</p>
</descr>
<seealso>
<link id="TApplication.QueueAsyncCall"/>
<link id="TScrollingWinControl.DoOnResize"/>
<link id="#lcl.controls.TControl.OnResize">TControl.OnResize</link>
<link id="#rtl.classes.TComponent.ComponentState">TComponent.ComponentState</link>
</seealso>
</element>
<element name="TCustomForm.DoOnChangeBounds">
<short>
Performs a delayed bounds change using the DelayedEvent for the control.
</short>
<descr>
<p>
<var>DoOnChangeBounds</var> is an overridden method in
<var>TCustomForm</var>. It re-implements the method from the ancestor class,
and does not call the inherited method.
</p>
<p>
DoOnChangeBounds sets an internal flag to indicate that a delayed bounds
change event has been requested. It increments an internal counter to track
the number of pending delayed events.
</p>
<p>
DoOnChangeBounds uses the QueueAsyncCall method in the TApplication instance
to queue execution of the private DelayedEvent method. DelayedEvent will
discard duplicate requests, and handle changes to the restored bounds for the
control. DoShow or Activate are called if the form is being displayed or
activated for the first time.
</p>
<p>
No actions are performed in the method when the component is being freed
(csDestroying in ComponentState).
</p>
</descr>
<seealso>
<link id="TCustomForm.DoShow"/>
<link id="TCustomForm.Activate"/>
<link id="TApplication.QueueAsyncCall"/>
<link id="#lcl.controls.TControl.DoOnChangeBounds">TControl.DoOnChangeBounds</link>
<link id="#rtl.classes.TComponent.ComponentState">TComponent.ComponentState</link>
</seealso>
</element>
<element name="TCustomForm.SetZOrder">
<short>Moves a top-level form in front of or behind all other forms.</short>
<descr>
<p>
<var>SetZOrder</var> is an overridden method in <var>TCustomForm</var>. It
ensures that a request to bring the current form to the top of the Z-Order is handled properly.
</p>
<p>
If a Parent control has not been assigned, the form instance is moved to the
top of the Z-Order in the Screen singleton and the SetForegroundWindow
routine is called using the Handle for the form instance. No actions are
performed in the method if the Handle has not been allocated for the control,
or when another form has been displayed modally on the Screen.
</p>
<p>
If Parent has been assigned, the inherited method is called to change the
Z-Order using the SetChildZPosition method in the parent control.
</p>
<p>
SetZOrder is called from the BringToFront and SendToBack methods in the
TControl ancestor.
</p>
</descr>
<seealso>
<link id="TScreen.GetCurrentModalForm"/>
<link id="TScreen.MoveFormToZFront"/>
<link id="#lcl.controls.TControl.SetZOrder">TControl.SetZOrder</link>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
<link id="#lcl.controls.TControl.BringToFront">TControl.BringToFront</link>
<link id="#lcl.controls.TControl.SendToBack">TControl.SendToBack</link>
<link id="#lcl.lclintf.SetForegroundWindow">SetForegroundWindow</link>
</seealso>
</element>
<element name="TCustomForm.SetZOrder.Topmost">
<short>
<b>True</b> to bring the form to the front or top of the Z-order.
</short>
</element>
<element name="TCustomForm.SetParent">
<short>Sets the value for the Parent property.</short>
<descr>
<p>
<var>SetParent</var> is an overridden method in <var>TCustomForm</var> used
to set the value for the <var>Parent</var> property.
</p>
<p>
SetParent disables auto-sizing before updating the property value. The
<var>Handle</var> for the form is destroyed and re-created when Parent is
both assigned and <var>Visible</var>.
</p>
<p>
SetParent ensures that the <var>PixelsPerInch</var> settings for the form
instance and its Parent are the same. <var>AutoAdjustLayout</var> is called
when the values differ and <var>Scaled</var> has been enabled for both the
Parent form and the <var>Application</var>.
</p>
<p>
SetParent re-enables auto-sizing prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
<link id="#lcl.controls.TControl.SetParent">TControl.SetParent</link>
</seealso>
</element>
<element name="TCustomForm.SetParent.NewParent">
<short>New value for the property.</short>
</element>
<element name="TCustomForm.MoveToDefaultPosition">
<short>
Moves the form to the location specified in the Position property.
</short>
<descr>
<p>
<var>MoveToDefaultPosition</var> is a method used to move a form instance to
the location specified in its <var>Position</var> property. It ensures that
the form appears on the correct monitor for the values in the DefaultMonitor
and Position properties.
</p>
<p>
DefaultMonitor is used to determine whether the form needs to be moved to a
different monitor for the value in Position. For instance:
</p>
<dl>
<dt>dmDesktop</dt>
<dd>
The form does not need to be moved, and the current monitor is used.
</dd>
<dt>dmPrimary</dt>
<dd>
The PrimaryMonitor in Screen is used to display the form.
</dd>
<dt>dmMainForm</dt>
<dd>
If the Application has a MainForm, the monitor for the main form is used.
Otherwise, the form is not relocated to another monitor.
</dd>
<dt>dmActiveForm</dt>
<dd>
If the Screen has an ActiveForm, the monitor for the active form is used.
Otherwise, the form is not moved to another monitor.
</dd>
</dl>
<p>
Position specifies an associated form and the relative position for the
relocated form instance. For instance:
</p>
<dl>
<dt>poOwnerFormCenter</dt>
<dd>
Uses the Owner form to center align the relocated form instance. If the Owner
is not a TCustomForm instance, Position is converted to poMainFormCenter to
center the form to the MainForm in the application.
</dd>
<dt>poMainFormCenter</dt>
<dd>
Centers the form to the MainForm for the Application. When not assigned,
Position is converted to poScreenCenter to center the form on the Screen.
</dd>
<dt>poScreenCenter</dt>
<dd>
Centers the form on the default monitor.
</dd>
<dt>poDesktopCenter</dt>
<dd>
Centers the form to the desktop (width for all screens).
</dd>
<dt>poWorkAreaCenter</dt>
<dd>
Centers the form on work area for the default monitor.
</dd>
<dt>poDesigned, poDefaultSizeOnly</dt>
<dd>
Ignored in the method.
</dd>
<dt>poDefault, poDefaultPosOnly</dt>
<dd>
Uses the size / relative position provided by the widgetset class instance.
</dd>
</dl>
<p>
MoveToDefaultPosition gets the display rectangle for the form instance, and
translates the form coordinates to the correct Monitor. <var>SetBounds</var>
is called to apply the translated origin using the height and width for the
form instance.
</p>
<p>
No actions are performed in the method when either <var>Parent</var> or the
<var>ParentWindow</var> handle has been assigned for the form instance. No
actions are performed in the method when <var>WindowState</var> contains
<var>wsFullScreen</var> or <var>wsMaximized</var>.
</p>
<p>
MoveToDefaultPosition is called from the <var>AllAutoSized</var>,
<var>SetRestoredBounds</var>, and <var>UpdateShowing</var> methods. It is
also called when a new value is assigned to the <var>Position</var> property.
</p>
</descr>
<version>
The implementation for the method was changed in LCL version 2.3.0.
</version>
<seealso>
<link id="TCustomForm.Position"/>
<link id="TCustomForm.DefaultMonitor"/>
</seealso>
</element>
<element name="TCustomForm.UpdateShowing">
<short>
Configures and position the form when its visibility has been changed.
</short>
<descr>
<p>
<var>UpdateShowing</var> is an overridden method used to configure and
position the form instance when the visibility for the form has been changed.
</p>
<p>
When <var>Visible</var> is set to <b>True</b> at run-time, the
<var>MoveToDefaultPosition</var> method is called to move the form to the
monitor / location in the <var>Position</var> property. This action is not
needed (or allowed) at design-time. When <var>FormState</var> indicates it is
the first time the form is being displayed, the <var>DoFirstShow</var> method
is called to notify event handlers for the form.
</p>
<p>
UpdateShowing calls the inherited method to update the <var>Handle</var> for
the form and the visibility for any child <var>Controls</var>.
</p>
<p>
If <var>ActiveControl</var> is not assigned, and there is no
<var>Parent</var> form, the <var>FindDefaultForActiveControl</var> method is
called to locate the first visible and enabled child control on the form. Its
Handle is used to focus the control using the LCL <var>SetFocus</var> routine.
</p>
<p>
Finally, the visibility of the form in the task bar is updated and passed to
the widgetset class.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.UpdateShowing">TWinControl.UpdateShowing</link>
</seealso>
</element>
<element name="TCustomForm.SetVisible">
<short>Sets the value for the Visible property.</short>
<descr>
<p>
<var>SetVisible</var> is an overridden method used to set the value for the
<var>Visible</var> property. It ensures that <var>FormState</var> is updated
to reflect the new value for the property. When set to <b>True</b>,
<var>fsVisible</var> is included in the FormState property. Otherwise,
fsVisible is excluded from FormState. No actions are performed in the method
if FormState already already reflects the new value for the property.
</p>
<p>
SetVisible calls the inherited method to store the new property value, and to
perform resizing and control messages as needed. The <var>UpdateVisible</var>
method in <var>Application</var> is called to ensure that the application is
visible in the task bar when one of its forms is visible.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.SetVisible">TControl.SetVisible</link>
</seealso>
</element>
<element name="TCustomForm.SetVisible.Value">
<short>New value for the property.</short>
</element>
<element name="TCustomForm.AllAutoSized">
<short>If the form is about to show, calculate its metrics.</short>
<descr>
<p>
<var>AllAutoSized</var> is an overridden method used to apply the position
and layout for a visible form that about to be displayed. AllAutoSized
implements the virtual method defined in the ancestor class.
</p>
<p>
AllAutoSized is called from the <var>DoAllAutoSize</var> method when
<var>AutoSize</var> has been enabled, and occurs after the bounds for the
form have been calculated. It calls the <var>MoveToDefaultPosition</var>
method to move the form to the monitor and relative location in
<var>Position</var>.
</p>
<p>
No actions are performed in the method if the form is already
<var>Showing</var> or it is not <var>Visible</var>.
</p>
</descr>
<seealso>
<link id="TCustomForm.Visible"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
<link id="TCustomForm.Position"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
<link id="#lcl.controls.TWinControl.AllAutoSized">TWinControl.AllAutoSized</link>
<link id="#lcl.controls.TWinControl.DoAllAutoSize">TWinControl.DoAllAutoSize</link>
</seealso>
</element>
<element name="TCustomForm.DoFirstShow">
<short>Executes handlers using the FirstShow handler type.</short>
<descr>
<p>
Calls <var>CallNotifyEvents</var> in the internal method list for any methods
using the <var>fhtFirstShow</var> handler type. The form instance is passed
as an argument to the handler(s).
</p>
<p>
Called from the <var>UpdateShowing</var> method when the form is
<var>Visible</var> and its <var>Showing</var> property is changed to
<b>True</b>. Occurs after <var>MoveToDefaultPosition</var> has been to called
to position the form on its monitor, and after the value
<var>fsFirstShow</var> has been included in the <var>FormState</var> property.
</p>
</descr>
<seealso>
<link id="TCustomForm.UpdateShowing"/>
<link id="TCustomForm.Visible"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
<link id="TCustomForm.FormState"/>
<link id="TFormHandlerType"/>
<link id="TFormStateType"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
</seealso>
</element>
<element name="TCustomForm.UpdateWindowState">
<short>UpdateWindowState is an empty implementation in TCustomForm.</short>
<descr>
<p>
Has an empty implementation in the current LCL version.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.VisibleChanging">
<short>Notifies all <var>VisibleChanging</var> handlers.</short>
<descr>
<p>
Calls the inherited method prior to exit. Called prior to setting the new
value for the Visible property in a control (or form) in the SetVisible
method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.VisibleChanging">TControl.VisibleChanging</link>
</seealso>
</element>
<element name="TCustomForm.VisibleChanged">
<short>
Notifies all handlers when the visibility for the form has been changed.
</short>
<descr>
<p>
Calls the inherited method on entry.
</p>
<p>
When the <var>Screen</var> singleton has been assigned, its
<var>NotifyScreenFormHandler</var> method is called to signal all
<var>snFormVisibleChanged</var> handlers in the class instance.
</p>
<p>
Called after a new value has been assigned to the <var>Visible</var> property
for the control (or form).
</p>
</descr>
<seealso>
<link id="Screen"/>
<link id="TScreenNotification"/>
</seealso>
</element>
<element name="TCustomForm.WndProc" link="#lcl.controls.TControl.WndProc"/>
<element name="TCustomForm.WndProc.TheMessage">
<short>
Handled messages include: Activate, SetFocus, KillFocus, Exit, Enter, Window
Position Changing, and DrawItem.
</short>
<descr>
<p>
<var>WndProc</var> is an overridden method which implements the processing
loop for window and control messages received for the form instance. It
extends the method from the ancestor class to provide form-specific support
for messages including:
</p>
<dl>
<dt>LM_SETFOCUS</dt>
<dd>
Chooses the active control for the form at run-time, and ensures that the
control is focused.
</dd>
<dt>CM_EXIT</dt>
<dd>
Deactivates a HostDockSite (when assigned) when the form loses focus.
</dd>
<dt>CM_ENTER</dt>
<dd>
Activates a HostDockSite (when assigned) when the form receives focus.
</dd>
<dt>LM_WINDOWPOSCHANGING</dt>
<dd>
Suppresses move or resize window messages as needed for the Position or
BorderStyle properties.
</dd>
<dt>LM_DRAWITEM</dt>
<dd>
Handles owner-drawn Menu items for the item and command in the message.
</dd>
</dl>
<p>
WndProc calls the inherited method to handle control-specific messages not
handled in the method.
</p>
</descr>
</element>
<element name="TCustomForm.VisibleIsStored">
<short>Implements the storage specifier for the Visible property.</short>
<descr>
<p>
Returns the value in the Visible property.
</p>
</descr>
<seealso>
<link id="TCustomForm.Visible"/>
</seealso>
</element>
<element name="TCustomForm.VisibleIsStored.Result">
<short><b>True</b> when the Visible property is set to <b>True</b>.</short>
</element>
<element name="TCustomForm.DoAutoSize" link="#lcl.controls.TControl.DoAutoSize"/>
<element name="TCustomForm.SetAutoSize">
<short>Sets the value for the AutoSize property.</short>
<descr>
<p>
<var>SetAutoSize</var> is an overridden method in <var>TCustomForm</var> used
to set the value for the <var>AutoSize</var> property.
</p>
<p>
When set to <b>True</b>, it updates <var>FormState</var> to exclude the value
<var>fsDisableAutoSize</var>, and modifies <var>Position</var> to use
<var>poDefault</var> when it contains <var>poDefaultPosOnly</var>.
</p>
</descr>
<seealso>
<link id="TScrollingWinControl.SetAutoSize"/>
<link id="TCustomForm.FormState"/>
<link id="TCustomForm.Position"/>
<link id="#lcl.controls.TControl.AutoSize">TControl.AutoSize</link>
</seealso>
</element>
<element name="TCustomForm.SetAutoSize.Value">
<short>New value for the property.</short>
</element>
<element name="TCustomForm.SetAutoScroll">
<short>Sets the value for the AutoScroll property.</short>
<descr>
<p>
<var>SetAutoScroll</var> is an overridden method in <var>TCustomForm</var>
used to set the value for the <var>AutoScroll</var> property. It calls the
inherited method to apply the new property value, but includes an additional
test for the <var>BorderStyle</var> used on the form. AutoScroll
<b>cannot</b> be set to <b>True</b> when BorderStyle has a value other than
<var>bsSizeable</var> or <var>bsSizeToolWin</var>.
</p>
</descr>
<seealso>
<link id="TCustomForm.AutoScroll"/>
<link id="TCustomForm.BorderStyle"/>
<link id="TScrollingWinControl.SetAutoScroll"/>
</seealso>
</element>
<element name="TCustomForm.SetAutoScroll.Value">
<short>New value for the property.</short>
</element>
<element name="TCustomForm.SetScaled">
<short>Sets the value for the Scaled property.</short>
<descr>
<p>
<var>SetScaled</var> is an overridden method in <var>TCustomForm</var> used
to set the value for the <var>Scaled</var> property. It calls the inherited
method on entry. At run-time, the <var>AutoScale</var> method is called when
the new property value is set to <b>True</b> and differs from the existing
property value.
</p>
</descr>
<seealso>
<link id="TCustomForm.AutoScale"/>
<link id="TCustomDesignControl.Scaled"/>
<link id="TCustomDesignControl.SetScaled"/>
<link id="TApplication.Scaled"/>
</seealso>
</element>
<element name="TCustomForm.SetScaled.AScaled">
<short>New value for the property.</short>
</element>
<element name="TCustomForm.DoAddActionList">
<short>
Adds the specified list of actions to the ActionList for the form.
</short>
<descr>
<p>
Ensures that the <var>TList</var> instance is allocated for the internal
member. Calls the <var>IndexOf</var> method in the list to locate the value
in the <var>List</var> argument. If it is not found, the <var>Add</var>
method for the list is called to append the value.
</p>
<p>
DoAddActionList is called from the <var>Notification</var> method when a
<var>TCustomActionList</var> instance is added to the form (during LCL
streaming).
</p>
</descr>
<seealso>
<link id="TCustomForm.DoRemoveActionList"/>
</seealso>
</element>
<element name="TCustomForm.DoAddActionList.List">
<short>List with actions added to the form instance.</short>
</element>
<element name="TCustomForm.DoRemoveActionList">
<short>Removes the specified list of actions from the internal list.</short>
<descr>
<p>
Calls the <var>Remove</var> method in the <var>TList</var> member to delete
the <var>TCustomActionList</var> specified in <var>List</var>.
</p>
<p>
DoRemoveActionList is called from the <var>Notification</var> method when a
<var>TCustomActionList</var> instance is removed from the form.
</p>
</descr>
<seealso>
<link id="TCustomForm.DoAddActionList"/>
<link id="TCustomForm.Notification"/>
<link id="#lcl.actnlist.TCustomActionList">TCustomActionList</link>
</seealso>
</element>
<element name="TCustomForm.DoRemoveActionList.List">
<short>TCustomActionList instance removed in the method.</short>
</element>
<element name="TCustomForm.ProcessResource">
<short>Loads resources needed for the form.</short>
<descr>
<p>
Calls <var>InitResourceComponent</var> to load resources for the current form
instance.
</p>
</descr>
<errors>
Raises an <var>EResNotFound</var> exception if
<var>RequireDerivedFormResource</var> is set for the application, and a
resource is not found for the form.
</errors>
<seealso/>
</element>
<element name="TCustomForm.BeginAutoDrag">
<short>Re-implements the auto-drag behavior for forms.</short>
<descr>
<p>
<var>BeginAutoDrag</var> is an overridden method in <var>TCustomForm</var>
which re-implements the auto-drag and dock behavior for form instances. It
allows form dragging only if it is docked (HostDockSite is assigned) to a
site where a DockManager is not used (UseDockManager is <b>False</b>). It
does <b>not</b> call the inherited method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.HostDockSite">TControl.HostDockSite</link>
<link id="#lcl.controls.TWinControl.UseDockManager">TWinControl.UseDockManager</link>
</seealso>
</element>
<element name="TCustomForm.DoDock">
<short>Docks or undocks the form in the specified dock site.</short>
<descr>
<p>
<var>DoDock</var> is an overridden method used to dock / undock the form
instance in the dock site specified in <var>NewDockSite</var>. When
NewDockSite is unassigned (contains <b>Nil</b>), the form instance is
undocked from the host dock site.
</p>
<p>
<var>ARect</var> contains the bounds for the new dock site after resizing and
alignment (when needed).
</p>
<p>
When a form is docked, its <var>BorderStyle</var> is set to
<var>bsNone</var>. DoDock ensures that the value in the BorderStyle property
is saved or restored for the form when the value in <var>HostDockSite</var>
is changed. If NewDockSite has been assigned, the value in BorderStyle is
saved to an internal member. If NewDockSite is Nil, the value in BorderStyle
is restored from the internal member.
</p>
<remark>
Changes needed for the <var>Align</var> property must be handled in the
DockManager.
</remark>
<p>
DoDock calls the inherited method prior to exit.
</p>
<p>
DoDock is called from the Dock method in an ancestor class.
</p>
</descr>
<seealso>
<link id="TCustomForm.BorderStyle"/>
<link id="#lcl.controls.TControl.Dock">TControl.Dock</link>
<link id="#lcl.controls.TControl.DoDock">TControl.DoDock</link>
<link id="#lcl.controls.TControl.HostDockSite">TControl.HostDockSite</link>
</seealso>
</element>
<element name="TCustomForm.DoDock.NewDockSite">
<short>New dock site for the form instance.</short>
</element>
<element name="TCustomForm.DoDock.ARect">
<short>
Rectangle with the bounds for the new dock site after resizing and alignment.
</short>
</element>
<element name="TCustomForm.GetFloating">
<short>Gets the value for the Floating properties.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.Floating">TControl.Floating</link>
<link id="#lcl.controls.TControl.GetFloating">TControl.GetFloating</link>
</seealso>
</element>
<element name="TCustomForm.GetFloating.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomForm.GetDefaultDockCaption">
<short>Default caption displayed when the form is docked.</short>
<descr>
<p>
<var>GetDefaultDockCaption</var> is an overridden <var>String</var> function
used to get the default caption displayed when the form is docked.
GetDefaultDockCaption returns the value in the <var>Caption</var> property.
</p>
<p>
Called from the <var>GetDockCaption</var> method in an ancestor class. The
value is passed as an argument to the <var>OnGetDockCaption</var> event
handler.
</p>
</descr>
<seealso>
<link id="TCustomForm.Caption"/>
<link id="#lcl.controls.TWinControl.GetDockCaption">TWinControl.GetDockCaption</link>
<link id="#lcl.controls.TWinControl.OnGetDockCaption">TWinControl.OnGetDockCaption</link>
</seealso>
</element>
<element name="TCustomForm.GetDefaultDockCaption.Result">
<short>Default caption displayed when the form is docked.</short>
</element>
<element name="TCustomForm.CMActionExecute">
<short>Handles the CM_ACTIONEXECUTE control message.</short>
<descr>
<p>
Calls <var>DoExecuteAction</var> to execute the <var>TBasicAction</var>
passed as an argument in <var>Message</var>. Sets the <var>Result</var>
member in Message to <b>1</b> to indicate that the action was performed in
the method.
</p>
<p>
Called when a <var>CM_ACTIONEXECUTE</var> control message dispatched in the
<var>WndProc</var> method in <var>TApplication</var> is processed for the
form instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CMActionExecute.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.CMActionUpdate">
<short>Handles the CM_ACTIONUPDATE control message.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.CMActionUpdate.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.DoExecuteAction">
<short>Asks all applicable components to execute an action.</short>
<descr>
<p>
First, the <var>ActiveControl</var> and the <var>Form</var> itself are asked
to execute the action. Then, all child components are tried. The search stops
as soon as the action is handled.
</p>
</descr>
</element>
<element name="TCustomForm.DoExecuteAction.Result">
<short><b>True</b> when the action was handled.</short>
</element>
<element name="TCustomForm.DoExecuteAction.ExeAction">
<short>Action to execute.</short>
</element>
<element name="TCustomForm.DoUpdateAction">
<short>Tries all applicable components to update an action.</short>
<descr/>
<seealso>
<link id="#lcl.forms.TCustomForm.DoExecuteAction">DoExecuteAction</link>
</seealso>
</element>
<element name="TCustomForm.DoUpdateAction.Result">
<short><b>True</b> when the action was updated.</short>
</element>
<element name="TCustomForm.DoUpdateAction.TheAction">
<short>
Action instance passed as an argument and updated by component(s) on the form.
</short>
</element>
<element name="TCustomForm.UpdateActions">
<short>Asks all components on the form to update their actions.</short>
<descr>
<p>
<var>UpdateActions</var> is a procedure used to update actions assigned to
components on the form instance. No actions are performed in the method at
design-time, or when the <var>Showing</var> property is set to <b>False</b>
in the form instance.
</p>
<p>
UpdateActions applies updates for an assigned <var>Menu</var> in the form
instance. Items on the Menu update their actions when the menu item is
visible. Finally, all controls on the form instance are recursively searched;
controls which are action clients update their actions when they are visible.
</p>
<p>
Update actions is called for each of the custom forms when the application
enters an idle state, and occurs after processing queued asynchronous calls
and the <var>OnIdle</var> event handler in the application.
</p>
</descr>
<seealso>
<link id="TCustomForm.Visible"/>
<link id="TCustomForm.Menu"/>
<link id="TApplication.OnIdle"/>
<link id="TApplication.Idle"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
<link id="#lcl.controls.TControl.InitiateAction">TControl.InitiateAction</link>
</seealso>
</element>
<element name="TCustomForm.ClientHandle">
<short>The Handle of the MDIForm client (container for MDI children).</short>
<descr>
</descr>
<seealso>
</seealso>
</element>
<element name="TCustomForm.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance.
Create sets the default values for internal members used in the form
instance, and calls the <var>CreateNew</var> method to configure the visible
aspects of the form instance. At run-time, it also calls
<var>ProcessResource</var> to load the form content from its resource file.
</p>
</descr>
<seealso>
<link id="TCustomForm.CreateNew"/>
<link id="TCustomForm.ProcessResource"/>
<link id="TCustomDesignControl.Create"/>
</seealso>
</element>
<element name="TCustomForm.Create.AOwner">
<short>Owner for the class instance.</short>
</element>
<element name="TCustomForm.CreateNew">
<short>Creates a form instance without a resource (.lfm) file.</short>
<descr>
<p>
<var>CreateNew</var> is an alternate constructor for the class instance.
CreateNew is used to create a new <var>TCustomForm</var> instance which is
not loaded from a resource file (.lfm). It performs actions to initialize
properties for the form instance, including:
</p>
<ul>
<li>Sets the FormState to fsFirstShow and calls BeginFormUpdate.</li>
<li>Sets the default BorderIcons for the form.</li>
<li>Sets the FormStyle, ControlStyle, and BorderStyle for the form.</li>
<li>Calls the inherited Create constructor.</li>
<li>Sets the default bounds for the form instance.</li>
<li>Sets Visible to <b>False</b>.</li>
<li>Sets WindowState to wsNormal.</li>
<li>
Allocates resources for the Icon property but does not assign a
bitmap.
</li>
<li>Sets the default value for Color.</li>
<li>
Calls Screen.AddForm to register the form instance on the current
screen.
</li>
<li>
Allocates resources for the SnapOptions property.
</li>
</ul>
</descr>
<seealso/>
</element>
<element name="TCustomForm.CreateNew.AOwner">
<short>Owner for the new class instance.</short>
</element>
<element name="TCustomForm.CreateNew.Num">
<short>Ignored in the current implementation.</short>
</element>
<element name="TCustomForm.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
</p>
<p>
<var>Destroy</var> ensures that unhandled queued asynchronous calls in the
<var>Application</var> instance are removed for the form.
</p>
<p>
<var>Destroy</var> disables auto-sizing to prevent resize messages while the
form is being freed. Destroy frees resources allocated for the form instance,
including its Icon and any allocated icon handles. The form instance is
removed from Screen, and its ActionLists and SnapOptions are freed. Destroy
frees all form handlers added to the class instance.
</p>
<p>
Destroy calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TCustomForm.Icon"/>
<link id="Application"/>
<link id="Screen"/>
<link id="TApplication"/>
<link id="TScreen"/>
</seealso>
</element>
<element name="TCustomForm.AfterConstruction">
<short>
Performs actions when the form has been created and loaded from its resource
file.
</short>
<descr>
<p>
Implements the virtual method defined in the ancestor class.
</p>
<p>
Called after the form instance has been created and loaded from its resource
file (when needed).
</p>
<p>
Ensures that the initial bounds for the form are set to the values in the
<var>Left</var>, <var>Top</var>, <var>Bottom</var>, and <var>Right</var>
properties. Calls <var>DoCreate</var> to signal the <var>OnCreate</var> event
handler (when assigned). Ends the form update started in the
<var>CreateNew</var> constructor. Ensures that scaling and automatic layout
are applied to form instance (if needed) when <var>Scaled</var> is enabled
for both the form instance and the <var>Application</var>.
</p>
</descr>
<seealso>
<link id="#rtl.system.TObject.AfterConstruction">TObject.AfterConstruction</link>
</seealso>
</element>
<element name="TCustomForm.BeforeDestruction">
<short>Performs actions before the form instance is physically freed.</short>
<descr>
<p>
Calls the inherited method on entry to signal any
<var>OnBeforeDestruction</var> event handlers assigned to the form instance.
</p>
<p>
Removes the form instance from the list of focused forms in the
<var>Screen</var> singleton. At run-time, the <var>Hide</var> method is
called when the form is not a MDI child form in the application. If the form
is a MDI child form, merged menu items are removed from the menu in the
<var>MainForm</var> for the <var>Application</var>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.BeforeDestruction">TControl.BeforeDestruction</link>
</seealso>
</element>
<element name="TCustomForm.GetControlClassDefaultSize" link="#lcl.controls.TControl.GetControlClassDefaultSize"/>
<element name="TCustomForm.GetControlClassDefaultSize.Result"/>
<element name="TCustomForm.BigIconHandle">
<short>
Returns the handle for the large icon on the form or in the application.
</short>
<seealso>
<link id="TCustomForm.Icon"/>
<link id="TApplication.BigIconHandle"/>
</seealso>
</element>
<element name="TCustomForm.BigIconHandle.Result">
<short>
HICON Instance with the handle for the icon, or 0 (zero) when not available.
</short>
</element>
<element name="TCustomForm.Close">
<short>Closes the form.</short>
<descr>
<p>
Close does not necessarily destroy the form. Modal forms only are hidden.
When the MainForm is closed, the application terminates.
</p>
<p>
An <var>OnCloseQuery</var> handler can refuse to allow the form to close.
</p>
</descr>
<seealso>
<link id="TCustomForm.CloseQuery"/>
</seealso>
</element>
<element name="TCustomForm.CloseQuery">
<short>Asks the OnCloseQuery handler whether the form can be closed.</short>
<descr/>
<seealso>
<link id="TCustomForm.OnCloseQuery"/>
<link id="TCustomForm.FormStyle"/>
<link id="TCustomForm.MDIChildren"/>
<link id="TFormStyle"/>
</seealso>
</element>
<element name="TCustomForm.CloseQuery.Result">
<short>
Returns <b>True</b> if the event handler (or MDI child forms) allow the form
to be closed. The default return value is <b>True</b>.
</short>
</element>
<element name="TCustomForm.DefocusControl">
<short>Updates ActiveControl if it is to be de-focused.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.DefocusControl.Control">
<short>The control which will lose focus.</short>
</element>
<element name="TCustomForm.DefocusControl.Removing">
<short><b>True</b> if the control is no longer the ActiveControl.</short>
</element>
<element name="TCustomForm.DestroyWnd" link="#lcl.controls.TWinControl.DestroyWnd"/>
<element name="TCustomForm.EnsureVisible">
<short>
Ensures that the form is fully visible, and optionally brings it in front of
all other forms.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.EnsureVisible.AMoveToTop">
<short>Bring the form to front if <b>True</b>.</short>
</element>
<element name="TCustomForm.FocusControl">
<short>
Gives focus to the specified control.
</short>
<descr>
<p>
<var>FocusControl</var> is a procedure used to give focus to the control
specified in <var>WinControl</var>. FocusControl ensures that the
<var>ActiveControl</var> property is updated when needed, and may raise an
exception if WinControl cannot be focused. If the form instance was not
already <var>Active</var>, the <var>SetFocus</var> method is called.
</p>
</descr>
<errors>
If the control or one of its parents is not visible or disabled, an exception
will be raised (in <var>SetFocus</var>).
</errors>
<seealso/>
</element>
<element name="TCustomForm.FocusControl.WinControl">
<short>The control receiving the focus.</short>
</element>
<element name="TCustomForm.FormIsUpdating">
<short>
Indicates if the BeginFormUpdate method has been called without a
corresponding EndFormUpdate method call.
</short>
<descr>
<p>
The method is used in <var>TControl</var> descendants to determine if the
parent form for the control is already rendering changes to its content.
</p>
</descr>
<seealso>
<link id="TCustomForm.BeginFormUpdate"/>
<link id="TCustomForm.EndFormUpdate"/>
<link id="#lcl.controls.TControl.FormIsUpdating">TControl.FormIsUpdating</link>
</seealso>
</element>
<element name="TCustomForm.FormIsUpdating.Result">
<short>
Returns <b>True</b> when the internal update counter for the form contains a
positive
non-zero value.
</short>
</element>
<element name="TCustomForm.GetFormImage">
<short>
Gets the display content for the form as an image.
</short>
<descr>
<p>
<var>GetFormImage</var> is an overloaded method used to capture the display
content for the current form instance as an image type. The overloaded variants
allow the image to be passed as a <var>TCustomBitmap</var> argument, or to
create a <var>TBitmap</var> instance used as the return value.
</p>
<p>
The procedure variant includes the <var>ABitmap</var> argument with the bitmap
instance where the image for the form is stored. It sets the size of the bitmap
to the ClientWidth and ClientHeight for the form instance. The Handle for the
form is used to get the display rectangle for its window, and it is drawn to
the Canvas in the bitmap instance. This variant allows one of the other
supported images formats (TCustomBitmap descendants like TJpegImage,
TPortableNetworkGraphic, et. al.) to be passed in The ABitmap argument. ABitmap
is allocated and freed in the calling routine.
</p>
<p>
For example:
</p>
<code>
procedure TForm1.Button1Click(Sender: TObject);
var
jpg: TJpegImage;
begin
jpg := TJpegImage.Create;
try
GetFormImage(jpg);
Image1.Picture.Assign(jpg);
finally
jpg.Free;
end;
end;
</code>
<p>
The function variant creates a new <var>TBitmap</var> instance which is used as
the return value. It calls the overloaded variant to get the content in the
TBitmap instance. The return value must be managed by the calling routine; the
instance must be explicitly freed to avoid a memory leak. The return value can
be <b>Nil</b> if an Exception was raised and handled in the method. This
variant is compatible with the signature used in the Delphi VCL; the overloaded
procedure leads to clearer code and avoids a potential memory leak.
</p>
<p>
For example:
</p>
<code>
procedure TForm1.Button1Click(Sender: TObject);
var
bmp: TBitmap;
begin
bmp := GetFormImage;
try
Image1.Picture.Assign(bmp);
finally
bmp.Free;
end;
end;
</code>
</descr>
<version>
Modified in LCL version 3.6 to include the overloaded variant which stores the
image to an existing bitmap instance.
</version>
<seealso>
<link id="TCustomForm.ClientHeight"/>
<link id="TCustomForm.ClientWidth"/>
<link id="#lcl.graphics.TCustomBitmap">TCustomBitmap</link>
<link id="#lcl.graphics.TBitmap">TBitmap</link>
<link id="#lcl.graphics.TJpegImage">TJpegImage</link>
<link id="#lcl.graphics.TPortableNetworkGraphic">TTPortableNetworkGraphic</link>
<link id="#lcl.controls.TWinControl.GetClientOrigin">TWinControl.GetClientOrigin</link>
<link id="#lcl.controls.TWinControl.PaintTo">TWinControl.PaintTo</link>
<link id="#lcl.lclintf.GetWindowRect">GetWindowRect</link>
</seealso>
</element>
<element name="TCustomForm.GetFormImage.Result">
<short>
Bitmap created in the method with the image for the form.
</short>
</element>
<element name="TCustomForm.GetRolesForControl">
<short>
Gets the role(s) for the control in a modal form (default or cancel button).
</short>
<descr/>
<seealso>
<link id="TCustomForm.DefaultControl"/>
<link id="TCustomForm.CancelControl"/>
<link id="#lcl.controls.TControlRolesForForm">TControlRolesForForm</link>
<link id="#lcl.controls.TControlRoleForForm">TControlRoleForForm</link>
</seealso>
</element>
<element name="TCustomForm.GetRolesForControl.Result">
<short>
Set of TControlRoleForForm values for the specified control. The default return value is an empty set ([]).
</short>
</element>
<element name="TCustomForm.GetRolesForControl.AControl">
<short>
TControl instance examined and compared to the values for the form instance.
</short>
</element>
<element name="TCustomForm.GetRealPopupParent">
<short>
Gets the form that is the effective parent for the pop-up, dialog, or splash
screen.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.GetRealPopupParent.Result">
<short>
Form instance that is the parent for the pop-up form, or Nil for a splash
screen.
</short>
</element>
<element name="TCustomForm.Hide" link="#lcl.controls.TControl.Hide"/>
<element name="TCustomForm.IntfDropFiles">
<short>
Invokes the <link id="TCustomForm.OnDropFiles">OnDropFiles</link> handler of
the form. This function is called by the LCL interface.
</short>
<descr>
<p>
<var>OnDropFiles</var> is signalled when the user drops one or more dragged
files onto one of forms in the application. This event should be fired first
for the target form (or main form if drop target is unknown), and then for the
application instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.IntfDropFiles.FileNames">
<short>
Array of file names passed as an argument to the OnDropFiles event handler.
</short>
</element>
<element name="TCustomForm.IntfHelp">
<short>
Shows help for a control or menu item. This function is called by the LCL
interface.
</short>
<descr>
<p>
Calls the ShowHelp method in AComponent when the argument is derived from
TControl.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.ShowHelp">TControl.ShowHelp</link>
</seealso>
</element>
<element name="TCustomForm.IntfHelp.AComponent">
<short>
TComponent instance for the help displayed in the method.
</short>
</element>
<element name="TCustomForm.IsShortcut">
<short>
Determines whether the specified message contains a shortcut or accelerator
key.
</short>
<descr>
<p>
Checks form components to determine whether the specified message is a
shortcut or accelerator key used on the form. This includes signalling the
<var>OnShortcut</var> event handler (when assigned), calling
<var>IsShortCut</var> for the form <var>Menu</var>, or calling IsShortcut for
the <var>ActionLists</var> for the form instance.
</p>
<p>
Returns <b>True</b> when the specified <var>Message</var> contains a
shortcut or accelerator key. Returns <b>False</b> for the following
conditions:
</p>
<ul>
<li>The MainForm has not been assigned in the application.</li>
<li>The MainForm is not the ActiveCustomForm for the application.</li>
<li>The MainForm does not have a valid handle.</li>
<li>The MainForm is not enabled.</li>
<li>
Message does not contain a key code that is a shortcut for the form instance in
Application.MainForm.
</li>
</ul>
</descr>
<seealso/>
</element>
<element name="TCustomForm.IsShortcut.Result">
<short><b>True</b> when the specified Key was handled as a shortcut.</short>
</element>
<element name="TCustomForm.IsShortcut.Message">
<short>Control message examined in the method.</short>
</element>
<element name="TCustomForm.MakeFullyVisible">
<short>Resizes the form for the specified monitor.</short>
<descr>
<p>
<var>MakeFullyVisible</var> is a method used to make the form instance fully
visible on the specified monitor. It ensures the form fits within the
required bounds for the monitor or work area. If the form is too wide or too
tall, the form bounds are adjusted so that the form fits within the required
bounds. This prevents the form from being partially visible on multiple
monitors.
</p>
<p>
<var>AMonitor</var> is the <var>TMonitor</var> instance where the form is
displayed. If AMonitor is not specified (contains <b>Nil</b>), the value in
the <var>Monitor</var> property is used.
</p>
<p>
<var>UseWorkarea</var> indicates whether the work area for the target monitor
is used. When set to <b>True</b>, the form uses the bounds established for
the work area instead of the physical monitor. The default value for the
parameter is <b>True</b>.
</p>
<remark>
The default value for UseWorkArea was changed from <b>False</b> to
<b>True</b> in LCL version 2.3.0. This is the more sensible default value,
and it is also Delphi-compatible.
</remark>
</descr>
<seealso/>
</element>
<element name="TCustomForm.MakeFullyVisible.AMonitor">
<short>
The monitor where the form is displayed, or Nil to use the design-time
monitor.
</short>
</element>
<element name="TCustomForm.MakeFullyVisible.UseWorkarea">
<short>
When <b>True</b> the form is adjusted to the bounds for the WorkArea for the
monitor. Otherwise, the form is clipped to the monitor bounds.
</short>
</element>
<element name="TCustomForm.AutoSizeDelayedHandle">
<short>
Returns <b>True</b> if an auto-size action should be skipped when a form
handle is not available.
</short>
<descr>
<p>
<var>AutoSizeDelayedHandle</var> is an overridden <var>Boolean</var> function
used to determine if an <var>AutoSize</var> action must be deferred due to a
missing form <var>Handle</var>.
</p>
<p>
When either <var>Parent</var> or <var>ParentWindow</var> has been assigned,
the form is treated like a <var>TWinControl</var>; the return value is set to
the value from the inherited method.
</p>
<p>
If one of the values is unassigned, the return value is always set to
<b>False</b>. The form has its own handle, and the resize action does not
need to be delayed.
</p>
<p>
Called from the <var>AutoSizeDelayed</var> method in an ancestor class.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.AutoSizeDelayedHandle.Result">
<short>
<b>True</b> if an auto-size action should be skipped when a form handle is
not available.
</short>
</element>
<element name="TCustomForm.GetPreferredSize" link="#lcl.controls.TControl.GetPreferredSize"/>
<element name="TCustomForm.GetPreferredSize.PreferredWidth"/>
<element name="TCustomForm.GetPreferredSize.PreferredHeight"/>
<element name="TCustomForm.GetPreferredSize.Raw"/>
<element name="TCustomForm.GetPreferredSize.WithThemeSpace"/>
<element name="TCustomForm.Release">
<short>
Marks the form for destruction.
</short>
<descr>
<p>
<var>Release</var> is a procedure used to request destruction of the current
form instance.
</p>
<p>
Release is called from the ShowModal method when a value other than mrNone is
returned in the ModalResult property - including when the Application has been
terminated while the dialog is active. While the method is public (just like in
Delphi), it is not meant to be called from application code; ShowModal handles
freeing the form instance in its processing loop. Calling Release when the form
instance has already been freed in ShowModal raises an Access Violation (AV).
You can use Close / OnClose to set the form close action to caFree to force
the dialog to be closed and freed.
</p>
<p>
<var>Release</var> checks for a <var>TApplication</var> instance in the
<var>Application</var> singleton. If it is assigned (contains a value other
than <b>Nil</b>), its <var>ReleaseComponent</var> method is called to free the
form instance by posting an asynchronous application message. When
<var>Application</var> is not assigned, the <var>Free</var> method is called to
destroy the form instance.
</p>
</descr>
<seealso>
<link id="TCustomForm.ShowModal"/>
<link id="TCustomForm.ModalResult"/>
<link id="TCustomForm.Close"/>
<link id="TCustomForm.OnClose"/>
<link id="TCustomForm.Destroy"/>
<link id="TApplication.ReleaseComponent"/>
<link id="Application"/>
<link id="TCloseAction"/>
<link id="#fcl.custapp.TCustomApplication.Terminated">TCustomApplication.Terminated</link>
</seealso>
</element>
<element name="TCustomForm.CanFocus">
<short><b>True</b> when the form can receive focus.</short>
<descr>
<p>
<var>CanFocus</var> is an overridden <var>Boolean</var> function which
indicates if the form instance can receive focus. The return value is
<b>True</b> when the form is <var>Visible</var> and <var>Enabled</var>, or
the inherited <var>CanFocus</var> method returns <b>True</b>.
</p>
<p>
<var>CanFocus</var> is used in the implementation of various methods in the
class, including: <var>SetWindowFocus</var>, <var>UpdateShowing</var>,
<var>SetActiveControl</var>, and <var>Loaded</var>.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TCustomForm.CanFocus.Result">
<short><b>True</b> when the form can receive focus in the application.</short>
</element>
<element name="TCustomForm.SetFocus" link="#lcl.controls.TWinControl.SetFocus"/>
<element name="TCustomForm.SetFocusedControl">
<short>Handles a focus change for a control (enter/exit messages).</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.SetFocusedControl.Result">
<short><b>False</b> when the focused control cannot be changed.</short>
</element>
<element name="TCustomForm.SetFocusedControl.Control">
<short>The control with focus on the form.</short>
</element>
<element name="TCustomForm.SetRestoredBounds">
<short>Sets the bounds for the restored control.</short>
<descr>
<p>
Ensures that the parameter values are used in the form instance. No actions
are performed in the method when <var>ALeft</var>, <var>ATop</var>,
<var>AWidth</var>, and <var>AHeight</var> are already assigned to the
corresponding properties in the form instance.
</p>
<p>
Temporarily sets <var>WindowState</var> to <var>wsNormal</var>, and calls
<var>SetBounds</var> to apply the parameter values to the form instance.
Calls <var>MoveToDefaultPosition</var> when ADefaultPosition is <b>True</b>.
Restores WindowState to its original value, and updates the values for the
<var>RestoredLeft</var>, <var>RestoredRight</var>, <var>RestoredWidth</var>,
and <var>RestoredHeight</var> properties.
</p>
<p>
Called from the <var>AfterConstruction</var> method prior to signalling the
<var>OnCreate</var> event handler and applying the automatic layout policy
for the form instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.SetRestoredBounds.ALeft">
<short>Value to restore to the Left property for the form.</short>
</element>
<element name="TCustomForm.SetRestoredBounds.ATop">
<short>Value to restore to the Top property for the form.</short>
</element>
<element name="TCustomForm.SetRestoredBounds.AWidth">
<short>Value to restore to the Width property for the form.</short>
</element>
<element name="TCustomForm.SetRestoredBounds.AHeight">
<short>Value to restore to the Height property for the form.</short>
</element>
<element name="TCustomForm.SetRestoredBounds.ADefaultPosition">
<short>
<b>True</b> if the form is moved to the monitor and location in the Position
property.
</short>
</element>
<element name="TCustomForm.Show">
<short>Displays the form instance with support for High DPI scaling.</short>
<descr>
<p>
<var>Show</var> is a method used to display the form in an LCL application.
It re-implements the method defined in an ancestor class, and does <b>not</b>
call the inherited method.
</p>
<p>
Show ensures that scaling is performed using the automatic layout policy for
the form instance. The <var>PixelsPerInch</var> setting for the
<var>Monitor</var> is applied (when needed) by calling the
<var>AutoAdjustLayout</var> method. This action is performed when both the
<var>Application</var> and the form instance have their <var>Scaled</var>
properties set to <b>True</b>.
</p>
<p>
Show sets the value in the <var>Visible</var> property to <b>True</b>, and
calls the <var>ShowWindow</var> routine in the LCL interface at run-time
using the <var>Handle</var> and <var>WindowState</var> for the form. The
<var>BringToFront</var> method is called to apply the Z-Order for the form
instance and its siblings.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Show">TControl.Show</link>
</seealso>
</element>
<element name="TCustomForm.ShowModal">
<short>
Displays the form as a modal dialog.
</short>
<descr>
<p>
<var>ShowModal</var> is the method used to show the form in a modal state and
wait until it is closed by the user or by the program. Modal state means that
neither the user nor the program can switch back to the previously focused form
until the method is exited.
</p>
<p>
Before the dialog form is displayed and executed, the following actions are
performed:
</p>
<ul>
<li>An active drag operation is cancelled.</li>
<li>An active pop-up menu is closed.</li>
<li>An active capture is killed and released in the widget instance.</li>
</ul>
<p>
The form must be <var>Enabled</var> with its <var>Visible</var> property set
to <b>False</b> when calling ShowModal. It cannot already have fsModal in its
FormState property, and it cannot be a MDI Child form. An
<var>EInvalidOperation</var> exception is raised if the form cannot be
displayed as a modal form for any of these reasons.
</p>
<p>
ShowModal updates the Application instance by calling its ModalStarted method.
This maintains its internal members and signals any OnModalBegin event
handlers assigned for the application. The application switches to modal state
until ShowModal is completed. The ModalFinished method for the Application is
called to end the modal state prior to exit.
</p>
<p>
ShowModal implements its own message processing loop. It calls
AppProcessMessages in the widgetset to process messages and events for the
form. If an exception occurs, it is caught in the processing loop. If
CaptureExceptions is enabled for the Application instance, its HandleException
is called. If CaptureExceptions is not enabled in the application, the
exception is re-raised.
</p>
<p>
ShowModal sets the value in the ModalResult property to indicate the action
performed to close the modal dialog form. mrNone indicates that the form has
not been (or should not be) closed. mrCancel indicates the Cancel button was
pressed, the form was closed using a window decoration, or the application
was Terminated while ShowModal was running.
</p>
<p>
Any value in ModalResult other than mrNone causes DoClose to be called where
CloseQuery / OnCloseQuery / OnClose are used to determine whether the dialog
can be closed and the close action performed for the form instance. If the
close action is caNone, ModalResult is set to mrNone to continue the message
processing loop. caFree in the close action causes the Release method to be
called to free the form instance. There is no need to call the Release method
in application code; it is handled in the message processing loop in the
method. The OnClose event can be used to return caFree as the close action
which forces the dialog form to be closed.
</p>
<p>
When the message processing loop has been completed, the form instance is
hidden and other enabled forms in the application are restored. The previously
focused form is also restored.
</p>
<p>
ShowModal uses the value in ModalResult as the return value for the method.
</p>
</descr>
<errors>
<p>
Raises an <var>EInvalidOperation</var> exception if the form cannot be
displayed as a modal form.
</p>
</errors>
<version>
Modified in LCL version 3.0.0 to allow the application to handle an exception
when its CaptureExceptions property is enabled.
</version>
<seealso>
<link id="TCustomForm.ModalResult"/>
<link id="TCustomForm.FormState"/>
<link id="TCustomForm.CloseQuery"/>
<link id="TCustomForm.OnCloseQuery"/>
<link id="TCustomForm.OnClose"/>
<link id="TCustomForm.DoClose"/>
<link id="TApplication.ModalStarted"/>
<link id="TApplication.ModalFinished"/>
<link id="TApplication.CaptureExceptions"/>
<link id="TApplication.HandleException"/>
<link id="TModalResult"/>
<link id="#lcl.menus.ActivePopupMenu">ActivePopupMenu</link>
<link id="#fcl.custapp.TCustomApplication.Terminated">TCustomApplication.Terminated</link>
</seealso>
</element>
<element name="TCustomForm.ShowModal.Result">
<short>
The modal result for the dialog.
</short>
</element>
<element name="TCustomForm.ShowOnTop">
<short>Displays the form in front of all other forms.</short>
<descr>
<p>
Makes the form <var>Visible</var> and moves it to the top of the Z-Order.
<var>WindowState</var> is changed to <var>wsNormal</var> if the form is
currently in a minimized state (<var>wsMinimized</var>). Sets the value in
Visible to <b>True</b>, and calls <var>BringToFront</var> to move the form to
the top of the Z-Order among its siblings.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.SmallIconHandle">
<short>
Returns (and optionally creates) the Handle for the small Icon used for the
form.
</short>
<seealso>
<link id="TCustomForm.Icon"/>
</seealso>
</element>
<element name="TCustomForm.SmallIconHandle.Result">
<short>Handle for the small Icon for the form.</short>
</element>
<element name="TCustomForm.GetChildren">
<short>
Executes the specified callback for all child Controls, and Components with
no Parent.
</short>
<descr>
<p>
<var>GetChildren</var> is an overridden method in <var>TCustomForm</var>
which executes the callback method specified in <var>Proc</var> for child
<var>Controls</var> owned by <var>Root</var>, or <var>Components</var> which
do not have a <var>Parent</var>. It calls the inherited method in
<var>TWinControl</var> to execute the callback for Child controls owned by
Root. GetChildren iterates over the values in Component, and calls Proc when
the <var>HasParent</var> method for a given component returns <b>False</b>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.GetChildren">TWinControl.GetChildren</link>
</seealso>
</element>
<element name="TCustomForm.GetChildren.Proc">
<short>The callback method.</short>
</element>
<element name="TCustomForm.GetChildren.Root">
<short>Components are enumerated only if Root is Self.</short>
</element>
<element name="TCustomForm.WantChildKey">
<short>
Indicates if key messages in a child control are handled in the message
processing loop for the form.
</short>
<descr>
<p>
Always returns <b>False</b> in <var>TCustomForm</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.WantChildKey.Result">
<short>Returns <b>False</b> in TCustomForm.</short>
</element>
<element name="TCustomForm.WantChildKey.Child">
<short>Control with the key message for the method.</short>
</element>
<element name="TCustomForm.WantChildKey.Message">
<short>Key message from the child control.</short>
</element>
<element name="TCustomForm.RemoveAllHandlersOfObject" link="#lcl.lclclasses.TLCLComponent.RemoveAllHandlersOfObject"/>
<element name="TCustomForm.RemoveAllHandlersOfObject.AnObject"/>
<element name="TCustomForm.AddHandlerFirstShow">
<short>
Adds a handler routine called the first time the form is shown.
</short>
<descr/>
<seealso>
<link id="TFormHandlerType"/>
</seealso>
<notes><note>Used in TAnchorDockHostSite.CreateNew.</note></notes>
</element>
<element name="TCustomForm.AddHandlerFirstShow.OnFirstShowHandler">
<short>
Handler routine added to the list of fhtFirstShow handlers in the class
instance.
</short>
</element>
<element name="TCustomForm.AddHandlerFirstShow.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TCustomForm.RemoveHandlerFirstShow">
<short>
Removes the handler called the first time the form executes its Show method.
</short>
<descr>
<p>
Not used in the current LCL version.
</p>
</descr>
<seealso>
<link id="TFormHandlerType"/>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TCustomForm.RemoveHandlerFirstShow.OnFirstShowHandler">
<short>
Handler routine removed from the list for the form handler type.
</short>
</element>
<element name="TCustomForm.AddHandlerClose">
<short>
Adds a handler for a form close event.
</short>
<descr>
<p>
<var>AddHandlerClose</var> is a method used to add the <var>TCloseEvent</var>
handler specified in <var>OnCloseHandler</var> to the list of form handlers
for the type. It allows a form instance to have additional event handlers
which behave just like the <var>OnClose</var> event handler.
</p>
<p>
AddHandlerClose calls the <var>AddHandler</var> method to create the TMethod
entry used to represent the handler routine. When <var>AsFirst</var> is
<b>True</b>, the routine in OnCloseHandler is inserted as the first item in
the list of form close handlers.
</p>
<p>
Applications must implement and assign an object procedure using the
signature in TCloseEvent to perform actions needed when the <var>Close</var>
or <var>CloseModal</var> method is called for the form instance.
</p>
<p>
A handler added using AddHandlerClose is signalled after the
<var>OnClose</var> event handler for the form instance.
</p>
<p>
Use <var>RemoveHandlerClose</var> to remove a form close handler added in the
method.
</p>
</descr>
<seealso>
<link id="TCustomForm.Close"/>
<link id="TCustomForm.OnClose"/>
<link id="TCustomForm.RemoveHandlerClose"/>
<link id="TCloseEvent"/>
</seealso>
</element>
<element name="TCustomForm.AddHandlerClose.OnCloseHandler">
<short>
Form close handler routine added in the method.
</short>
</element>
<element name="TCustomForm.AddHandlerClose.AsFirst">
<short>
<b>True</b> if the handler is stored as the first entry in the list of form
close handlers.
</short>
</element>
<element name="TCustomForm.RemoveHandlerClose">
<short>
Removes a form close handler added to the form instance.
</short>
<descr>
<p>
<var>RemoveHandlerClose</var> is a method used to remove the form close
handler specified in <var>OnCloseHandler</var> from the list of handlers for
the type. RemoveHandlerClose reverses the action performed in the
AddHandlerClose method.
</p>
</descr>
<seealso>
<link id="TCustomForm.AddHandlerClose"/>
<link id="TCloseEvent"/>
</seealso>
</element>
<element name="TCustomForm.RemoveHandlerClose.OnCloseHandler">
<short>
Form close handler removed in the method.
</short>
</element>
<element name="TCustomForm.AddHandlerCreate">
<short>
Adds a handler for a form create event.
</short>
<descr>
<p>
<var>AddHandlerCreate</var> is a method used to add the
<var>TNotifyEvent</var> handler specified in <var>OnCreateHandler</var> to
the list of form handlers for the type. It allows a form instance to have
additional event handlers which behave just like the <var>OnCreate</var>
event handler.
</p>
<p>
AddHandlerCreate calls the <var>AddHandler</var> method to create the TMethod
entry used to represent the handler routine. When <var>AsFirst</var> is
<b>True</b>, the routine in OnCreateHandler is inserted as the first item in
the list of form create handlers.
</p>
<p>
Applications must implement and assign an object procedure using the
signature in TNotifyEvent to perform actions needed when the form instance
has been created and its bounds have been assigned.
</p>
<p>
A handler added using AddHandlerCreate is signalled after the
<var>OnCreate</var> event handler for the form instance.
</p>
<p>
Use <var>RemoveHandlerCreate</var> to remove a form create handler added in
the method.
</p>
</descr>
<seealso>
<link id="TCustomForm.Create"/>
<link id="TCustomForm.OnCreate"/>
<link id="TCustomForm.AfterConstruction"/>
<link id="TCustomForm.Destroy"/>
<link id="TCustomForm.RemoveHandlerCreate"/>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TCustomForm.AddHandlerCreate.OnCreateHandler">
<short>
Form create handler added in the method.
</short>
</element>
<element name="TCustomForm.AddHandlerCreate.AsFirst">
<short>
<b>True</b> if the handler is stored as the first entry in the list of form
create handlers.
</short>
</element>
<element name="TCustomForm.RemoveHandlerCreate">
<short>
Removes a form create handler added to the form instance.
</short>
<descr>
<p>
<var>RemoveHandlerCreate</var> is a method used to remove the form create
handler specified in <var>OnCreateHandler</var> from the list of handlers for
the type. RemoveHandlerCreate reverses the action performed in the
AddHandlerCreate method.
</p>
</descr>
<seealso>
<link id="TCustomForm.AddHandlerCreate"/>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TCustomForm.RemoveHandlerCreate.OnCreateHandler">
<short>
Form create handler removed in the method.
</short>
</element>
<element name="TCustomForm.ActiveMDIChild">
<short>Returns the currently active MDI child form.</short>
<descr>
<p>
A non-<b>Nil</b> result is returned only when FormStyle contains
<var>fsMDIForm</var> or <var>fsMDIChild</var>; otherwise Result is <b>nil</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.ActiveMDIChild.Result">
<short>Nil if the form is neither an MDI host nor child.</short>
</element>
<element name="TCustomForm.GetMDIChildren" link="#lcl.forms.TCustomForm.MDIChildren"/>
<element name="TCustomForm.GetMDIChildren.Result">
<short>
TCustomForm instance for the requested MDI child, or <b>Nil</b> if the caller
is not a MDI form type or a handle has not been allocated for the form.
</short>
</element>
<element name="TCustomForm.GetMDIChildren.AIndex">
<short>
Ordinal position for the MDI child form in the property value.
</short>
</element>
<element name="TCustomForm.MDIChildCount" link="#lcl.forms.TCustomForm.MDIChildren"/>
<element name="TCustomForm.MDIChildCount.Result">
<short>
-1 if form is not a MDI form or its handle has not been allocated.
</short>
</element>
<element name="TCustomForm.AutoScale">
<short>
Sets scaled to <b>True</b> and calls AutoAdjustLayout with the current PPI
for the monitor.
</short>
<descr>
<p>
<var>AutoScale</var> is a method used to apply an automatic layout adjustment
policy to scale the form and its controls when enabled and needed.
</p>
<p>
AutoScale sets the value in the <var>Scaled</var> property to <b>True</b> if
it is not already enabled. This causes AutoScale to be called again, so no
additional actions are performed in the current method call.
</p>
<p>
AutoScale uses the value in the <var>PixelsPerInch</var> property for the
<var>Monitor</var> where the form is displayed to determine if the form and
its controls need to be scaled. When Scaled is enabled for the
<var>Application</var>, and the run-time PixelsPerInch setting differs from
the design-time value, the <var>AutoAdjustLayout</var> method is called. The
<var>lapAutoAdjustForDPI</var> policy is applied in the method using scaling
factors for the Width and Height values on the form and its Controls.
</p>
<p>
AutoScale is called when a new value is assigned to the Scaled property.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.Dock">
<short>
Docks the form to the specified dock site.
</short>
<descr>
<p>
Calls the inherited method using the values in <var>NewDockSite</var> and
<var>ARect</var> as arguments.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Dock">TControl.Dock</link>
</seealso>
</element>
<element name="TCustomForm.Dock.NewDockSite">
<short>
Dock site where the form instance is hosted.
</short>
</element>
<element name="TCustomForm.Dock.ARect">
<short>
Returns the bounds rectangle for the form instance on the dock site. The
origin is 0, 0. Width and Height depend on the AutoSize setting in NewDockSite.
</short>
</element>
<element name="TCustomForm.UpdateDockCaption">
<short>
Gets the combined Caption for DockClients on the form.
</short>
<descr>
<p>
<var>UpdateDockCaption</var> is an overridden method used to get the combined
Caption for all <var>DockClients</var> on the form. It does <b>not</b> call
the inherited method.
</p>
<p>
<var>Exclude</var> contains a control which is omitted from the Caption
values (when assigned). UpdateDockCaption iterates over the controls in
<var>DockClients</var> to build the combined Caption for visible controls
(other than the control in Exclude). Blank control captions are ignored.
<var>UTF8FixBroken</var> is called to ensure that a given caption does not
contain invalid UTF-8 characters. The caption for a <var>TMemo</var> control
is truncated after 20 characters.
</p>
<p>
The Caption values for the controls are concatenated into a comma-delimited
list of values which are assigned to the <var>Caption</var> property. An
empty string is never assigned to the Caption property.
</p>
<p>
UpdateDockCaption is called when a new value is assigned to the
<var>Text</var> property for a DockClient control with an assigned
<var>HostDockSite</var>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.UpdateDockCaption">TWinControl.UpdateDockCaption</link>
</seealso>
</element>
<element name="TCustomForm.UpdateDockCaption.Exclude">
<short>Control to omit from the combined caption value.</short>
</element>
<element name="TCustomForm.Active">
<short>
Indicates if the form is enabled, visible, and has focus.
</short>
<descr>
<p>
<var>Active</var> is a read-only <var>Boolean</var> property which indicates
if the form is enabled, visible, and has focus.
</p>
<p>
The <var>SetActive</var> method is used to update the value for the property,
locate an <var>ActiveControl</var> for the form, and give focus to the form
control. SetActive is called from the <var>WMActivate</var> method when the
<var>LM_ACTIVATE</var> window control message is handled for the form.
</p>
<p>
The value in Active is used in the <var>FocusControl</var> method. It causes
<var>SetFocus</var> to be called when its value is <b>False</b>. It is also
used in the <var>SetActiveControl</var> method to determine if the window
already has focus when the active control is changed.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.ActiveControl">
<short>
Gets or sets the active control on the form.
</short>
<descr>
<p>
<var>ActiveControl</var> is a <var>TWinControl</var> property which contains
the control which has focus on the form. The property can contain <b>Nil</b> if
the parent form is hidden, disabled, or has never been activated.
</p>
<p>
Setting a new value for the property performs validity checks to ensure that
the specified control can receive focus when the form is <var>Visible</var>. An
<var>EInvalidOperation</var> exception is raised with the message in
SCannotFocus when the new property value contains:
</p>
<ul>
<li>The current form instance.</li>
<li>A control not parented by the current form instance.</li>
<li>A control that returns <b>False</b> from its CanFocus method.</li>
</ul>
<p>
The value in the LastActiveControl property is updated with the existing value
for ActiveControl if it is a control and not a TForm/TCustomForm instance. If
the form (and not a control) was active, LastActiveControl is set to <b>Nil</b>.
</p>
<p>
At run-time, the new active control is focused and activated if its form is
active (Active = <b>True</b>). ActiveChanged is called too. Both of these steps
are omitted at design-time or when the component is loaded during component
streaming.
</p>
<p>
The value in ActiveControl is updated in the <var>FocusControl</var> and
<var>DefocusControl</var> methods.
</p>
</descr>
<seealso>
<link id="TCustomForm.LastActiveControl"/>
<link id="TCustomForm.Active"/>
<link id="TCustomForm.ActiveChanged"/>
<link id="TCustomForm.FocusControl"/>
<link id="TCustomForm.DefocusControl"/>
<link id="GetParentForm"/>
<link id="#lcl.controls.TWinControl.CanFocus"/>
</seealso>
</element>
<element name="TCustomForm.ActiveDefaultControl">
<short>Specifies the active default control on the form.</short>
<descr>
<p>
The active control which is the default control executed when the Enter key
is pressed. When setting a new value for the property, a previous default
control is notified of the change to the property value using the
<var>ActiveDefaultControlChanged</var> method.
</p>
</descr>
<seealso>
<link id="TCustomForm.ActiveControl"/>
<link id="TCustomForm.DefaultControl"/>
</seealso>
</element>
<element name="TCustomForm.AllowDropFiles">
<short>Specifies whether files can be dropped onto this form.</short>
<descr>
<p>
<var>AllowDropFiles</var> is a <var>Boolean</var> property which indicates
whether this form receives an <var>OnDropFiles</var> event when files are
dropped on the form during a drag-and-drop operation.
</p>
</descr>
<seealso>
<link id="TCustomForm.OnDropFiles"/>
</seealso>
</element>
<element name="TCustomForm.AlphaBlend">
<short>Allows the form to be drawn with translucency.</short>
<descr>
<p>
<var>AlphaBlend</var> is a <var>Boolean</var> property which indicates if the
form can be drawn with translucency. When set to <b>True</b>, the form is
drawn with a degree of transparency and diffusion. This allows other forms
(and their controls) which have a lower Z-Order value to be seen beneath the
form. The default value for the property is <b>False</b>.
</p>
<p>
Use <var>AlphaBlendValue</var> to specify the degree of transparency and
diffusion applied to the form content.
</p>
<p>
Changing the value in AlphaBlend causes the widgetset class to be notified of
the change at run-time when a handle has been allocated for the form
instance. A change to the property value is not rendered at design-time.
</p>
<p>
AlphaBlend and AlphaBlendValue are used in the implementation of the
<var>InitializeWnd</var> method, and passed as arguments to methods in the
widgetset class when either of the values are changed.
</p>
<remark>
AlphaBlend requires support from both the Desktop Environment (DE) and the
hardware for the system; it may not work on all hardware, or platform /
operating system combinations supported as Lazarus targets.
</remark>
</descr>
<seealso>
<link id="TCustomForm.AlphaBlendValue"/>
<link id="TCustomForm.InitializeWnd"/>
</seealso>
</element>
<element name="TCustomForm.AlphaBlendValue">
<short>
The translucence level for the form (0=transparent, 255=opaque).
</short>
<descr>
<p>
<var>AlphaBlendValue</var> is a <var>Byte</var> property which indicates the
level of translucency for the form when <var>AlphaBlend</var> is set to
<b>True</b>. AlphaBlendValue must be in the range 0..255 (for the Byte data
type), where 0 represents 100% transparency and 255 is for full opacity.
</p>
<p>
Changing the value for the property causes the widgetset class to be notified
of the change in the property value at run-time when a handle has been
allocated for the form.
</p>
<p>
Set AlphaBlend to <b>True</b> to enable translucency for the form.
</p>
<p>
AlphaBlend and AlphaBlendValue are used in the implementation of the
<var>InitializeWnd</var> method, and passed as arguments to methods in the
widgetset class when either of the values are changed.
</p>
<remark>
AlphaBlend and AlphaBlendValue require support from both the Desktop
Environment (DE) and the hardware for the system; it may not work on all
hardware, or platform / operating system combinations supported as Lazarus
targets.
</remark>
</descr>
<seealso>
<link id="TCustomForm.AlphaBlend"/>
<link id="TCustomForm.InitializeWnd"/>
</seealso>
</element>
<element name="TCustomForm.AutoScroll">
<short>
Indicates if the form can automatically show or hide scroll bars.
</short>
<descr>
<p>
<var>AutoScroll</var> is a <var>Boolean</var> property which indicates if the
form can automatically show or hide its scroll bars. Set
<var>AutoScroll</var> to <b>True</b> to enable scroll bars when the form size
is too small to display its content in its entirety. AutoScroll can only be
<b>True</b> when the <var>BorderStyle</var> for the form is
<var>bsSizeable</var> or <var>bsSizeToolWin</var>, and may be changed to
<b>False</b> at run-time when BorderStyle is changed to another value.
</p>
</descr>
<seealso>
<link id="TCustomForm.BorderStyle"/>
</seealso>
</element>
<element name="TCustomForm.BorderIcons">
<short>Specifies the icons which appear in the title bar for the form.</short>
<descr>
<p>
<var>BorderIcons</var> is a <var>TBorderIcons</var> property which contains
valued from the <var>TBorderIcon</var> enumeration, and indicates the icons
displayed in the title bar for the form instance. The default value for the
property includes the following enumeration values:
</p>
<ul>
<li>biSystemMenu</li>
<li>biMinimize</li>
<li>biMaximize</li>
</ul>
<p>
See <link id="TBorderIcon">TBorderIcon</link> for more information about the
enumeration values and their usage.
</p>
<p>
Changing the value in BorderIcons causes the <var>WidgetSetClass</var> for
the form instance to be notified of the new values in the property.
</p>
<p>
Values in BorderIcons may be automatically changed at run-time when a new
value is assigned to the <var>BorderStyle</var> property; see <link
id="DefaultBorderIcons">DefaultBorderIcons</link> for the icons used for a
specific border style.
</p>
</descr>
<seealso>
<link id="TBorderIcons"/>
<link id="TBorderIcon"/>
<link id="TCustomForm.BorderStyle"/>
<link id="DefaultBorderIcons"/>
</seealso>
</element>
<element name="TCustomForm.BorderStyle">
<short>
The border style affects the title bar, border and resize behavior of the
form.
</short>
<descr>
<p>
Use BorderStyle to get or set the appearance of the form's border.
</p>
<p>
By default it is a sizeable window, but it could, for example, be a dialog
form or a tool window, or could be non-sizeable.
</p>
<p>
This property is slightly different (has a different base type) from the
<var>TCustomControl.BorderStyle</var> property. When the form is put into
another control the window borders depend on the widgetset. There are no
borders under GTK.
</p>
</descr>
<seealso>
<link id="TCustomForm.AutoScroll"/>
<link id="#lcl.controls.TFormBorderStyle">TFormBorderStyle</link>
<link id="#lcl.controls.TBorderStyle">TBorderStyle</link>
<link id="#lcl.controls.TCustomControl.BorderStyle">TCustomControl.BorderStyle</link>
</seealso>
</element>
<element name="TCustomForm.CancelControl">
<short>The control associated with the Cancel action.</short>
<descr>
<p>
Determines the control associated with the Cancel action (which exits from
the modal form without changing anything). This is usually a button with the
caption 'Cancel', but might be an 'Exit' button or anything else the
application programmer decides. This control is selected either by explicitly
clicking with the mouse, or by hitting the 'Esc' key.
</p>
</descr>
<seealso>
<link id="TCustomForm.DefaultControl"/>
</seealso>
</element>
<element name="TCustomForm.Caption">
<short>The text displayed in the title bar for the form.</short>
<descr>
<p>
Setting the value in <var>Caption</var> also causes the caption in
<var>HostDockSite</var> to be updated.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Caption">TControl.Caption</link>
<link id="#lcl.controls.TControl.HostDockSite">TControl.HostDockSite</link>
</seealso>
</element>
<element name="TCustomForm.Color">
<short>The background color for the form.</short>
<descr>
<p>
<var>Color</var> is a <var>TColor</var> property with the background color
used for the form. Color is re-declared in <var>TCustomForm</var> to use
either <var>clDefault</var> or <var>clBtnFace</var> as the default value for
the property. clDefault is used when the <var>UseCLDefault</var> compiler
define exists, and indicates that the color is resolved to the value in a
<var>Parent</var> control (when assigned).
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Color">TControl.Color</link>
<link id="#lcl.controls.TControl.GetDefaultColor">TControl.GetDefaultColor</link>
</seealso>
</element>
<element name="TCustomForm.DefaultControl">
<short>The control associated with the default action for this form.</short>
<descr>
<p>
This is typically a button such as 'Ok' or 'Accept' which is highlighted in
some way on-screen to indicate that this is the default action. It is
selected either by hitting 'Return' or 'Enter', or by clicking the control
with the mouse.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.DefaultMonitor">
<short>The monitor on which the form is displayed.</short>
<descr>
<p>
Possible values:
</p>
<dl>
<dt>dmDesktop</dt>
<dd>No attempt to choose specific monitor.</dd>
<dt>dmPrimary</dt>
<dd>On the primary monitor.</dd>
<dt>dmMainForm </dt>
<dd>
On the same monitor as the main form. If there is no main form then use
dmPrimary behavior.
</dd>
<dt>dmActiveForm</dt>
<dd>
On the same monitor as the currently active form. If there is no active form
use dmMainForm behavior.
</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TCustomForm.Designer">
<short>The designer object when the form is in design mode.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomForm.EffectiveShowInTaskBar">
<short>
Value for the <var>ShowInTaskBar</var> property when resolved using the
<var>Application</var> settings.
</short>
<descr>
<p>
</p>
<p>
<var>EffectiveShowInTaskBar</var> is a read-only <var>TShowInTaskBar</var>
property. It contains the effective visibility for the form on the system
task bar. The value is derived from the ShowInTaskBar property when it has
been changed. It is not updated, however, for the following conditions:
</p>
<ul>
<li>The form instance is the MainForm in the Application.</li>
<li>The form does not have a valid Handle.</li>
<li>The form has an assigned Parent.</li>
<li>The form is a MDIChild form (FormStyle is fsMDIChild).</li>
<li>The form is not Showing (Handle is visible).</li>
</ul>
<p>
EffectiveShowInTaskBar resolves the value to the TaskBarBehavior property in
the Application singleton. For the TaskBarBehavior values:
</p>
<dl>
<dt>tbSingleButton</dt>
<dd>Contains stNever.</dd>
<dt>tbMultiButton</dt>
<dd>Contains stAlways.</dd>
<dt>tbDefault</dt>
<dd>
Contains stDefault and causes the rules for the widgetset or platform to be
used.
</dd>
</dl>
<p>
The property value is passed to the widgetset class where it may
be translated, applied, or ignored based on the capabilities for the
implementation or platform.
</p>
</descr>
<seealso>
<link id="TCustomForm.ShowInTaskBar"/>
<link id="TApplication.TaskBarBehavior"/>
<link id="Application"/>
<link id="TShowInTaskbar"/>
</seealso>
</element>
<element name="TCustomForm.GetEffectiveShowInTaskBar.Result">
<short>Effect visibility for the form icon in the task bar.</short>
</element>
<element name="TCustomForm.FormState">
<short>State flags for the form.</short>
<descr>
<p>
<var>FormState</var> is a read-only <var>TFormState</var> property which
contains state flags enabled for the form instance. Values from the
TFormStateType enumeration are included in, or excluded from, the set type
when corresponding actions occur (or are resolved) for the form instance.
</p>
<p>
See <var>TFormStateType</var> for more information on the values and meanings
in the enumeration.
</p>
<p>
FormState is updated when properties for the form instance are changed, and
in methods which respond to window and control messages in the form instance.
</p>
</descr>
<seealso>
<link id="TFormState"/>
<link id="TFormStateType"/>
</seealso>
</element>
<element name="TCustomForm.FormStyle">
<short>Indicates the style for the form.</short>
<descr>
<p>
Possible values:
</p>
<dl>
<dt>fsNormal </dt>
<dd>Usual style.</dd>
<dt>fsStayOnTop</dt>
<dd>
Form is positioned above all application's forms, except those which have
fsStayOnTop style.
</dd>
<dt>fsSystemStayOnTop</dt>
<dd>
Form is positioned above all OS windows, except other OS top-level windows.
</dd>
<dt>fsSplash</dt>
<dd>Form is border-less.</dd>
<dt>fsMDIForm</dt>
<dd>MDI parent form.</dd>
<dt>fsMDIChild</dt>
<dd>MDI child form.</dd>
</dl>
</descr>
<seealso>
<link id="#lcl.controls.TFormStyle">TFormStyle</link>
</seealso>
</element>
<element name="TCustomForm.HelpFile">
<short>The name of the help file for the form.</short>
<descr>
<p>
<var>HelpFile</var> is a <var>String</var> property which contains the name
of the help file for the form instance. HelpFile can use a fully-qualified
path to the help file if it is not located in the same directory as the
application which implements the form.
</p>
<p>
The value in HelpFile is used in <var>TApplication</var> when it retrieves
the help file name from the active form in the application.
</p>
</descr>
<seealso>
<link id="TApplication"/>
<link id="TScreen.ActiveCustomForm"/>
</seealso>
</element>
<element name="TCustomForm.Icon">
<short>The Icon associated with this Form (in minimized state).</short>
<descr>
<p>
<var>Icon</var> is a <var>TIcon</var> property which contains the graphical
icon for the form instance. Icon contains the image displayed on the task bar
area when a form is minimized. If an Icon is not explicitly assigned for the
form, the icon for the <var>Application</var> is used.
</p>
<p>
Assigning a new value to Icon causes existing icon handles to be freed, and
the widgetset class is notified to re-create the icon handles.
</p>
<remark>
For the macOS Carbon widgetset, a form-level Icon is not supported.
</remark>
</descr>
<seealso>
<link id="TCustomForm.BigIconHandle"/>
<link id="TCustomForm.SmallIconHandle"/>
<link id="#lcl.graphics.TIcon">TIcon</link>
</seealso>
</element>
<element name="TCustomForm.KeyPreview">
<short>Allows the form to intercept keystrokes in child controls.</short>
<descr>
<p>
<var>KeyPreview</var> is a <var>Boolean</var> property which controls whether
the form can intercept key strokes from child controls.
</p>
<p>
When KeyPreview is set to <b>True</b>, the form is allowed to receive
<var>KeyDown</var>, <var>KeyUp</var>, and <var>KeyPress</var> events before
they are received / applied to the <var>ActiveControl</var> in the form. The
default value for the property is <b>False</b>.
</p>
<p>
KeyPreview is used in the implementation of key handling methods in
<var>TWinControl</var>. KeyPreview is often enabled for modal dialogs to
allow the parent form to handle specific interactions with the user.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.MDIChildren">
<short>
Provides indexed access to MDI child forms when used as a MDI form.
</short>
<descr>
<p>
<var>MDIChildren</var> is a read-only indexed <var>TCustomForm</var> property
which provides access to the child forms in a Multi-Document Interface (MDI)
application. In an MDI application, one of the forms acts as the main form
for the application, and is the container for its MDI child forms. In
addition, a MDI child form can be nested in another MDI child form.
</p>
<remark>
Historically, support for MDI is dependent on the underlying widgetset or
platform. Some widgetsets provide better support for MDI than others. The
consensus is that the QT/QT5 widgetsets offers the best level of support for
MDI applications.
</remark>
<p>
The form role is determined by the value in the <var>FormStyle</var>
property. <var>fsMDIForm</var> is used for the main form, and
<var>fsMDIChild</var> for the child forms. <var>MDIChildren</var> is relevant
when the current form instance uses one of these MDI form style values.
</p>
<p>
<var>Index</var> is an <var>Integer</var> value is used to access a MDI child
form by its ordinal position in MDIChildren. The return value contains the
<var>TCustomForm</var> instance at the specified position, as determined
using the <var>GetMDIChildren</var> method in the widgetset class. The return
value can be <b>Nil</b> when the current form does not use a FormStyle with
the value fsMDIForm or fsMDIChild, or when a handle has not yet been
allocated for the form instance. The return value is always <b>Nil</b> at
design-time.
</p>
<p>
Use <var>MDIChildCount</var> to get the number MDI child forms for the form
instance.
</p>
<p>
Use <var>ActiveMDIChild</var> to get the active MDI child form in the
application.
</p>
<p>
Set the value in the <var>FormStyle</var> property to indicate that the class
is used as a MDI form.
</p>
</descr>
<seealso>
<link id="TCustomForm.FormStyle"/>
<link id="TCustomForm.MDIChildCount"/>
<link id="TCustomForm.ActiveMDIChild"/>
</seealso>
</element>
<element name="TCustomForm.MDIChildren.I">
<short>Ordinal position for the MDI Child form requested.</short>
</element>
<element name="TCustomForm.Menu">
<short>The main menu for the form instance.</short>
<descr>
<p>
<var>Menu</var> is the <var>TMainMenu</var> instance assigned to the form.
</p>
<p>
Assigning a new value to Menu causes other forms on the <var>Screen</var> to
be checked for a duplicate menu assignment. A singular TMainMenu instance
cannot be assigned to more than one form. An <var>EInvalidOperation</var> is
raised if another form already uses the menu instance. The
<var>UpdateMenu</var> method is called when the new property value has been
set.
</p>
</descr>
<seealso>
<link id="#lcl.menus.TMainMenu">TMainMenu</link>
<link id="Screen"/>
<link id="TScreen.Forms"/>
</seealso>
</element>
<element name="TCustomForm.ModalResult">
<short>
Specifies the return value for a form (or dialog) displayed modally.
</short>
<descr>
<p>
<var>ModalResult</var> is a <var>TModalResult</var> property which contains
the value derived when the form is displayed modally. Setting a new value for
the property causes the widgetset class to be notified when a handle has been
allocated for the form.
</p>
<p>
The value in ModalResult is updated when the <var>ShowModal</var> method is
called for the form instance. It is updated in the <var>CloseModal</var>
method when <var>CloseQuery</var> is <b>False</b> and <var>CloseAction</var>
is <var>caNone</var>. Finally, it is set to <var>mrCancel</var> in the
<var>Close</var> method when <var>FormState</var> contains the value
<var>fsModal</var>.
</p>
<p>
See <link id="TModalResult">TModalResult</link> for more information about
the enumeration values and their meanings.
</p>
</descr>
<seealso>
<link id="TModalResult"/>
<link id="TCustomForm.ShowModal"/>
<link id="TCustomForm.Close"/>
<link id="TCustomForm.FormState"/>
<link id="TCustomForm.CloseQuery"/>
</seealso>
</element>
<element name="TCustomForm.Monitor">
<short>Contains the Monitor where the form is shown.</short>
<descr>
<p>
<var>Monitor</var> is a read-only <var>TMonitor</var> property which contains
the monitor where the form is displayed. Monitor defaults to the
<var>TMonitor</var> instance for the Parent control (when it has been
assigned). The return value is <b>Nil</b> if a TCustomForm instance is not
found in the control hierarchy for an assigned Parent.
</p>
<p>
When Parent has not been assigned, values from properties and methods in the
class instance are checked. This includes Handle, FormState, Position, and
DefaultMonitor.
</p>
<p>
If the form is not visible and has never been displayed, the Position
property is used to get the monitor instance. The value in Position
determines how the monitor is retrieved, and DefaultMonitor is used as the
fallback value.
</p>
<dl>
<dt>poDefault, poDefaultPosOnly</dt>
<dd>
Calls TScreen.MonitorFromWindow to get the monitor for the form Handle.
</dd>
<dt>poDesigned, poDefaultSizeOnly</dt>
<dd>
Calls TScreen.MonitorFromPoint to get the monitor where the Left and Top
coordinates for the form are located.
</dd>
<dt>poMainFormCenter</dt>
<dd>
Uses the monitor in TApplication.MainForm when the form is not the main form
for the application. If it is the main form, the value in DefaultMonitor is
used as the monitor where the form is located.
</dd>
<dt>poOwnerFormCenter</dt>
<dd>
When Owner is a different TCustomForm instance than the current class, the
monitor in TApplication.MainForm is used.
</dd>
</dl>
<p>
If the form has been displayed previously, SetBounds in the widgetset class
is called to update the current coordinates for the form with the values in
Left, Top, Width, and Height. TScreen.MonitorFromWindow is called to locate
the monitor nearest to the form Handle, and it is used as the return value.
</p>
<p>
When neither a parent form nor a form Handle are available,
TScreen.MonitorFromPoint is called to get the monitor where the Left and Top
coordinates for the form are found.
</p>
</descr>
<version>
The Monitor implementation was modified in version 2.2.4 to account for
differences between WinCE and Win32 when the form position is poDefault or
poDefaultPosOnly.
</version>
<seealso>
<link id="TCustomForm.FormState"/>
<link id="TCustomForm.Position"/>
<link id="TCustomForm.DefaultMonitor"/>
<link id="Screen"/>
<link id="TScreen"/>
<link id="Application"/>
<link id="TApplication"/>
<link id="TMonitor"/>
<link id="GetParentForm"/>
</seealso>
</element>
<element name="TCustomForm.LastActiveControl">
<short>
Tracks focus changes for the active form or the last active control on the
current form.
</short>
<descr>
<p>
<var>LastActiveControl</var> is a read-only <var>TWinControl</var> property
used to track a change in the focus for the active form or the control on the
current form instance. It is updated when changes are made to the
<var>ActiveControl</var> property, or in the <var>SetFocusedControl</var>
method.
</p>
</descr>
<seealso>
<link id="TCustomForm.ActiveControl"/>
<link id="TCustomForm.SetFocusedControl"/>
</seealso>
</element>
<element name="TCustomForm.PopupMode">
<short>Defines where pop-up menus are shown.</short>
<descr>
<p>
<var>PopupMode</var> is a <var>TPopupMode</var> property which controls the
display policy for pop-up forms. The default value for the property is
<var>pmNone</var>. See <var>TPopupMode</var> for more information about the
values and meanings in the enumeration.
</p>
<p>
Changing the value in PopupMode causes the value in <var>PopupParent</var> to
be changed when the property is set to pmAuto or pmNone. At run-time, the
widgetset class is notified of the change to the PopupParent property.
</p>
<p>
PopupMode is used in the implementation of the <var>GetRealPopupParent</var>
and <var>ShowModal</var> methods.
</p>
</descr>
<seealso>
<link id="TCustomForm.PopupParent"/>
<link id="TCustomForm.GetRealPopupParent"/>
<link id="TCustomForm.ShowModal"/>
<link id="TPopupMode"/>
</seealso>
</element>
<element name="TCustomForm.PopupParent">
<short>
Parent form which owns the current form instance when displayed as a pop-up
window.
</short>
<descr>
<p>
<var>PopupParent</var> is a <var>TCustomForm</var> property which contains
the parent form which owns the current form instance when displayed as a
pop-up window.
</p>
<p>
Setting a new value for the property causes the existing pop-up parent form
to be removed from the free notifications for the application. A new non-Nil
pop-up Parent is added to the free notification list, and its
<var>PopupMode</var> property is set to <var>pmExplicit</var>.
</p>
<p>
At run-time, the widgetset class is notified of the change in the
<var>PopupParent</var> property. The notification is not performed at
design-time.
</p>
</descr>
<seealso>
<link id="TCustomForm.PopupMode"/>
</seealso>
</element>
<element name="TCustomForm.SnapOptions">
<short>
Contains the form and screen snapping options for the form instance.
</short>
<descr>
<p>
<var>SnapOptions</var> is a <var>TWindowMagnetOptions</var> property which
contains the magnetic window management option settings for the form instance.
SnapOptions contains settings which allow the form instance to be snapped to
edges either on a monitor or other form instances.
</p>
<p>
Each form has a SnapOptions property with settings specific to the form
instance. SnapOptions is passed as an argument to methods in
TWindowMagnetManager which handle snapping the form to another form or an edge
on the monitor. Each TScreen instance in the application has a magnetic window
manager to respond to snap requests using the option values.
</p>
<p>
Values in SnapOptions are read and written when properties like SnapBuffer and
ScreenSnap are accessed or modified.
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<element name="TCustomForm.ScreenSnap">
<short>
Indicates whether the form instance can be snapped to an edge on the monitor.
</short>
<descr>
<p>
<var>ScreenSnap</var> is a <var>Boolean</var> property which indicates whether
the form instance can be snapped to an edge on the monitor. When enabled, an
edge on the form will automatically snap to the nearest screen edge when it is
within the distance where the snapping behavior is engaged.
</p>
<p>
Use SnapBuffer (or the Distance property in SnapOptions) to define the
distance from (or proximity to) an edge where the snapping behavior is engaged.
</p>
<p>
Use the SnapOptions.SnapToForms to enable or disable snapping the form
instance to an edge for another form in the application.
</p>
<p>
Use the SnapOptions.SnapFormTarget property to control whether the form allows
other forms to be snapped to its edges.
</p>
<remark>
Screen snapping depends on the LM_WINDOWPOSCHANGING message dispatched
when the position for a form (window) is changed. In the current LCL release,
the LM_WINDOWPOSCHANGING message is dispatched for the Windows platform only.
None of the other widgetsets checked for or apply the message.
</remark>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<element name="TCustomForm.SnapBuffer">
<short>
Distance from (or proximity to) an edge on a snap target where the snapping
behavior is automatically engaged.
</short>
<descr>
<remark>
Screen snapping depends on the LM_WINDOWPOSCHANGING message dispatched
when the position for a form (window) is changed. In the current LCL release,
the LM_WINDOWPOSCHANGING message is dispatched for the Windows platform only.
None of the other widgetsets checked for or apply the message.
</remark>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<element name="TCustomForm.OnActivate">
<short>
Handler signalled when the form instance receives focus.
</short>
<descr>
<p>
<var>OnActivate</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when the form instance receives focus. OnActivate is
signalled when assigned from the Activate method, and occurs the first time the
form is focused at application start up, and each time focus is changed from
another form in the same application to this form instance.
</p>
<remark>
OnActivate is <b>not</b> signalled the very first time a maximized or
fullscreen form is activated. This is done to suppress the notification until
resize and bounds changes are handled in delayed events that occur during LCL
component streaming.
</remark>
<p>
Use OnDeactivate to perform actions needed when a form instance loses focus.
</p>
<p>
Use OnShow or OnHide to perform actions needed when the Visible property for a
form instance is changed.
</p>
<p>
Use OnWindowStateChange to perform actions needed when a form is minimized,
maximized, or changed from the fullscreen to the normal state.
</p>
<p>
Use the <var>Application.OnActivate</var> event handler to perform actions
needed when the Application is given focus over another process or program.
</p>
</descr>
<seealso>
<link id="TCustomForm.Activate"/>
<link id="TCustomForm.Deactivate"/>
<link id="TCustomForm.OnDeactivate"/>
<link id="TCustomForm.WindowState"/>
<link id="TCustomForm.OnShow"/>
<link id="TCustomForm.OnHide"/>
<link id="TCustomForm.OnWindowStateChange"/>
<link id="TCustomForm.Visible"/>
<link id="TApplication.OnActivate"/>
<link id="TApplication.QueueAsyncCall"/>
<link id="#lcl.controls.TControl.OnChangeBounds">TControl.OnChangeBounds</link>
<link id="#lcl.controls.TControl.OnResize">TControl.OnResize</link>
</seealso>
</element>
<element name="TCustomForm.OnClose">
<short>
Handler called when the form is closed. It determines what happens to the
form (destroy, hide, etc.).
</short>
<descr>
<p>
<var>OnClose</var> is a <var>TCloseEvent</var> property which represents the
event handler signalled when a form calls its <var>Close</var> or
<var>CloseModal</var> method.
</p>
<p>
OnClose is triggered from the <var>DoClose</var> method immediately before
calling any internal form handlers registered for the <var>fhtClose</var>
form handler action type. OnClose can be used to determine the action
performed in subsequent form handlers by setting the value in the
<var>CloseAction</var> argument.
</p>
<p>
An application must implement and assign an object procedure using the
signature for TCloseEvent to respond to the event notification.
</p>
</descr>
<seealso>
<link id="TCustomForm.Close"/>
<link id="TCustomForm.DoClose"/>
<link id="TCloseEvent"/>
</seealso>
</element>
<element name="TCustomForm.OnCloseQuery">
<short>
Event handler signalled when trying to close a form.
</short>
<descr>
<p>
<var>OnCloseQuery</var> is a <var>TCloseQueryEvent</var> property which
contains the event handler signalled to determine whether the form can be
closed. Set the value in the <var>CanClose</var> argument to <b>True</b> to
allow the form instance to be closed. The default value for CanClose is
<b>True</b>.
</p>
<p>
Use OnCloseQuery to perform any actions or dialogs needed to confirm that the
form can in fact be closed.
</p>
<p>
An application must implement and assign an object procedure using the
signature in TCloseQueryEvent to respond to the event notification.
</p>
<p>
OnCloseQuery is signalled from the <var>CloseQuery</var> method, and occurs
immediately after MDI child forms have called their CloseQuery methods.
</p>
</descr>
<seealso>
<link id="TCustomForm.CloseQuery"/>
<link id="TCustomForm.MDIChildren"/>
<link id="TCloseQueryEvent"/>
</seealso>
</element>
<element name="TCustomForm.OnCreate">
<short>Handler called when the form has been created.</short>
<descr>
<p>
<var>OnCreate</var> is a <var>TNotifyEvent</var> property which implements an
event handler signalled when a new form instance is created. OnCreate can be
used to perform any action needed to configure the new form instance, or
update the application where the form is used.
</p>
<p>
OnCreate is triggered from the <var>DoCreate</var> method (when assigned)
before signalling any form handlers using the <var>fhtCreate</var> form
handler action type. At this point, the initial coordinates for the form have
been assigned, but are not realized until until DoCreate has been completed.
</p>
<p>
An application must implement and assign an object procedure using the
signature for the handler to allow responding to the notification.
</p>
</descr>
<seealso>
<link id="TCustomForm.DoCreate"/>
<link id="TFormHandlerType"/>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TCustomForm.OnDeactivate">
<short>
Handler signalled when the form is deactivated (loses focus).
</short>
<descr>
<p>
<var>OnDeactivate</var> is a <var>TNotifyEvent</var> property which contains
an event handler signalled when a form is deactivated (loses focus).
OnDeactivate is signalled from the Deactivate method (when assigned), and
occurs when the CM_DEACTIVATE message is handled in the CMDeactivate method.
OnDeactivate is signalled each time the focus is changed from the current form
instance to another form instance in the application.
</p>
</descr>
<seealso>
<link id="TCustomForm.Deactivate"/>
<link id="TCustomForm.WMActivate"/>
<link id="TCustomForm.OnActivate"/>
<link id="TCustomForm.OnShow"/>
<link id="TCustomForm.OnHide"/>
<link id="TApplication.OnDeactivate"/>
</seealso>
</element>
<element name="TCustomForm.OnDestroy">
<short>Handler called when the form is destroyed.</short>
<descr>
<p>
OnDestroy is a TNotifyEvent property signalled when the form instance is
destroyed. OnDestroy is signalled from the DoDestroy method (when assigned)
as one of the steps before destruction of the class instance. Before the
event handler is triggered, the form has been hidden and the Menu from the
main form in the Application has been unmerged.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TCustomForm.OnDropFiles">
<short>Handler called when files have been dropped.</short>
<descr>
<p>
<var>OnDropFiles</var> is a <var>TDropFilesEvent</var> event handler
signalled when a File Drag notification is received from the LCL / widgetset
interface.
</p>
<p>
The <var>Sender</var> argument contains the current form instance. The
<var>FileName</var> argument contains an array with the fully-qualified file
names for the drop operation.
</p>
<p>
Set <var>AllowDropFiles</var> to <b>True</b> to enable drag and drop
operations, and execution of this event handler. The event handler is not
signalled when AllowDropFiles is set to <b>False</b>.
</p>
<p>
The event handler should perform any actions needed for each of the files
dropped onto the form instance.
</p>
</descr>
<seealso>
<link id="TCustomForm.AllowDropFiles"/>
<link id="TDropFilesEvent"/>
</seealso>
</element>
<element name="TCustomForm.OnHelp">
<short>Handler called when Help is requested.</short>
<descr>
<p>
<var>OnHelp</var> is a <var>THelpEvent</var> property which contains the
event handler signalled when a Help command is executed for the form
instance. Arguments to the event handler identify the command and the context
used in the help request.
</p>
<p>
<var>Command</var> contains the help request type, and corresponds to the
values used in the Windows WinHelp API.
</p>
<p>
<var>Data</var> is a <var>PtrInt</var> type which points the context
information for the help request.
</p>
<p>
The <var>CallHelp</var> argument indicates if handler(s) in the
<var>Application</var> instance should be called when the event handler in
the form is completed. Set CallHelp to <b>False</b> when the help request has
been satisfied in the event handler.
</p>
<p>
An application must implement and assign an object function using the
signature for the handler to respond to the event notification.
</p>
<p>
Set the return value to <b>True</b> if the Help request was successfully
executed.
</p>
<p>
The OnHelp event handler for the active form is signalled when the
<var>TApplication</var> instance executes its <var>DoOnHelp</var> method. The
arguments to the event handler contain the values intercepted in the WMHelp
message processing for the application. If the OnHelp event handler has not
been assigned for the active form, the OnHelp event handler in the
Application singleton is signalled (when assigned).
</p>
</descr>
<seealso>
<link id="THelpEvent"/>
<link id="Application"/>
<link id="TApplication.OnHelp"/>
<link id="TApplication.DoOnHelp"/>
</seealso>
</element>
<element name="TCustomForm.OnHide">
<short>Handler called when the form is being hidden.</short>
<descr>
<p>
<var>OnHide</var> is a <var>TNotifyEvent</var> property that represents the
event handler signalled when the form instance is hidden. OnHide is triggered
(when assigned) in the <var>DoHide</var> method, and occurs when the
<var>CMShowingChanged</var> control message is applied to the
<var>Showing</var> property for the form instance.
</p>
</descr>
<seealso>
<link id="TCustomForm.DoHide"/>
<link id="TCustomForm.Hide"/>
<link id="TCustomForm.Visible"/>
<link id="TCustomForm.CMShowingChanged"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TCustomForm.OnResize">
<short>Event handler signalled when the size for the form is changed.</short>
<descr>
<p>
<var>OnResize</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when the dimensions for the form have been changed. It is
signalled (when assigned) from the <var>DoOnResize</var> method, and occurs
in the inherited DoOnResize method in the ancestor class.
</p>
<p>
Create and assign a procedure to the event handler to perform any actions
needed after the form has been resized.
</p>
<p>
Use the <var>OnConstrainedResize</var> event handler to set the height and/or
width for the form using minimum and maximum height and width values.
</p>
</descr>
<seealso>
<link id="TCustomForm.DoOnResize"/>
<link id="TScrollingWinControl.DoOnResize"/>
<link id="#lcl.controls.TControl.OnResize">TControl.OnResize</link>
</seealso>
</element>
<element name="TCustomForm.OnShortcut">
<short>
Event handler signalled when a key is pressed, before further handling of the
key.
</short>
<descr>
<p>
OnShortcut is a TShortcutEvent property that represents the event handler
signalled (when assigned) to detect and handle a shortcut key for the form
instance. OnShortcut is called from the IsShortcut method used to examine
keystroke events intercepted and forwarded by the Application.
</p>
<p>
The Msg argument contains the key event examined in the handler. Handled
indicates that the key is handled by the event when set to <b>True</b>.
</p>
</descr>
<seealso>
<link id="TCustomForm.IsShortCut"/>
<link id="TApplication.IsShortCut"/>
<link id="TApplication.OnShortCut"/>
<link id="TShortCutEvent"/>
</seealso>
</element>
<element name="TCustomForm.OnShow">
<short>Handler called when the form becomes visible.</short>
<descr>
<p>
<var>OnShow</var> is a <var>TNotifyEvent</var> property with the event
handler signalled (when assigned) when the form becomes visible. It is
signalled from the <var>DoShow</var> method when the <b>CM_SHOWINGCHANGED</b>
control messages is handled for the form, and when queued <var>OnResize</var>
and <var>OnChangeBounds</var> events are executed for the form.
</p>
<p>
Create and assign a procedure to OnShow to perform any actions needed when
the <var>Visible</var> property for the form is set to <b>True</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomForm.OnShowModalFinished">
<short>
Event handler signalled when modal display of the form has been completed.
</short>
<descr>
<p>
<var>OnShowModalFinished</var> is a <var>TModalDialogFinished</var> property
that implements the event handler signalled when modal display of the form
has been completed. An application must implement an object procedure using
the signature in <var>TModalDialogFinished</var>, and assign it to the
property to respond to the event notification.
</p>
</descr>
<seealso>
<link id="TApplication.ModalFinished"/>
<link id="TApplication.OnModalEnd"/>
</seealso>
<notes>
<note>
Is this still needed? Not used in ShowModal or CloseModal. It does not appear
to be signalled anywhere in the current LCL version.
</note>
</notes>
</element>
<element name="TCustomForm.OnWindowStateChange">
<short>
Handler called when the form is minimized, maximized or restored.
</short>
<descr>
<p>
<var>OnWindowStateChange</var> is a <var>TNotifyEvent</var> property which
represents the event handler signalled when the value for the
<var>WindowState</var> property is changed. OnWindowStateChange is triggered
(when assigned) from the <var>Resizing</var> method, and occurs when the
<b>WM_SIZE</b> window message for the action is handled.
</p>
<p>
See <var>TWindowState</var> for details about the values and meanings in the
enumeration.
</p>
</descr>
<seealso>
<link id="TCustomForm.WindowState"/>
<link id="TCustomForm.Resizing"/>
<link id="TCustomForm.WMSize"/>
<link id="TWindowState"/>
</seealso>
</element>
<element name="TCustomForm.ParentFont">
<short>
Uses the font from the Parent when enabled.
</short>
<descr>
<p>
If <b>True</b>, the Font will be the same as the one from the Parent.
The default value for the property is <b>False</b> in <var>TCustomForm</var>.
</p>
<p>
While ParentFont is <b>True</b>, all changes to the font in the parent will
also be applied to the font for the control. This synchronizes them, keeping
them set to the same values. If changes are made directly to the Font
property in the control, then ParentFont is automatically be set to
<b>False</b>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.ParentFont">TControl.ParentFont</link>
</seealso>
</element>
<element name="TCustomForm.Position">
<short>The initial placement for the form.</short>
<descr>
<p>
<var>Position</var> is a <var>TPosition</var> property which indicates the
size and position policy used to display the form instance. The default value
for the property is <var>poDesigned</var>, and indicates that the coordinates
used in the form designer are used at run-time. See <link
id="TPosition">TPosition</link> for the other values, and their meanings,
available for the property.
</p>
<p>
Changing the value in Position causes the value in <var>AutoSize</var> to be
updated when needed, and calls <var>UpdateControlState</var>. No additional
actions are performed at design-time.
</p>
<p>
<var>MoveToDefaultPosition</var> is called when a handle exists for the form
instance and the form has not been displayed.
</p>
</descr>
<seealso>
<link id="TForm.AutoSize"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
<link id="TPosition"/>
</seealso>
</element>
<element name="TCustomForm.RestoredLeft">
<short>
The Left coordinate for the form when it is restored (i.e. changes from
minimized or maximized).
</short>
<descr>
<p>
<var>RestoredLeft</var> is a read-only <var>Integer</var> property which
contains the left coordinate for the form when its size is altered in
<var>WMSize</var> or <var>WMMove</var> message handlers. The property value
is applied when the asynchronous queued event handler for the form is
executed, and calls the <var>DoOnChangeBounds</var> method.
</p>
</descr>
<seealso>
<link id="TCustomForm.WMSize"/>
<link id="#lcl.controls.TControl.DoOnChangeBounds">TControl.DoOnChangeBounds</link>
<link id="#lcl.controls.TControl.Left">TControl.Left</link>
</seealso>
</element>
<element name="TCustomForm.RestoredTop">
<short>
The Top coordinate for the form when it is restored (i.e. changes from
minimized or maximized).
</short>
<descr>
<p>
<var>RestoredTop</var> is a read-only <var>Integer</var> property which
contains the top coordinate for the form when its size is altered in
<var>WMSize</var> or <var>WMMove</var> message handlers. The property value
is applied when the asynchronous queued event handler for the form is
executed, and calls the <var>DoOnChangeBounds</var> method.
</p>
</descr>
<seealso>
<link id="TCustomForm.WMSize"/>
<link id="#lcl.controls.TControl.DoOnChangeBounds">TControl.DoOnChangeBounds</link>
<link id="#lcl.controls.TControl.Left">TControl.Left</link>
</seealso>
</element>
<element name="TCustomForm.RestoredWidth">
<short>The width of the form when it is resized.</short>
<descr>
<p>
<var>RestoredWidth</var> is a read-only <var>Integer</var> property which
contains the Width for the form when its size is altered in <var>WMSize</var>
or <var>WMMove</var> message handlers. The property value is applied when the
asynchronous queued event handler for the form is executed and calls the
<var>DoOnChangeBounds</var> method.
</p>
</descr>
<seealso>
<link id="TCustomForm.WMSize"/>
<link id="#lcl.controls.TControl.DoOnChangeBounds">TControl.DoOnChangeBounds</link>
<link id="#lcl.controls.TControl.Width">TControl.Width</link>
</seealso>
</element>
<element name="TCustomForm.RestoredHeight">
<short>The height of the form when it is resized.</short>
<descr>
<p>
<var>RestoredHeight</var> is a read-only <var>Integer</var> property which
contains the height for the form when size is altered in <var>WMSize</var> or
<var>WMMove</var> message handlers. The property value is applied when the
asynchronous queued event handler for the form is executed and calls the
<var>DoOnChangeBounds</var> method.
</p>
</descr>
<seealso>
<link id="TCustomForm.WMSize"/>
<link id="#lcl.controls.TControl.Height">TControl.Height</link>
<link id="#lcl.controls.TControl.DoOnChangeBounds">TControl.DoOnChangeBounds</link>
</seealso>
</element>
<element name="TCustomForm.ShowInTaskBar">
<short>
Indicates if the form should be displayed on the system Task Bar.
</short>
<descr>
<p>
<var>ShowInTaskBar</var> is a <var>TShowInTaskbar</var> property which
indicates whether the form instance should be displayed as an icon on the
system task bar. The default value for the property is <var>stDefault</var>,
and indicates the default behavior for the application, widgetset, platform,
or operating system is used. See
<link id="TShowInTaskbar">TShowInTaskbar</link> for more information about
values in the enumeration and their meanings.
</p>
<p>
ShowInTaskBar is used in conjunction with the <var>TaskBarBehavior</var>
property in the <var>Application</var> singleton to determine the effective
(realized) visibility for the form on the system task bar. For example, the
value may be changed when it conflicts with the value in TaskBarBehavior.
</p>
<p>
Changing the value for the property causes the effective visibility to be
recalculated when the form is not hidden, or a MDI child form. The value is
posted to the widgetset class. Actions performed in the widget are
platform-specific, and may include:
</p>
<ul>
<li>Update and apply style flags for the form window (when needed).</li>
<li>Show or Hide the form window (as needed).</li>
<li>
Disable the request when not supported in the widgetset or the display
protocol (like X-11, Wayland).
</li>
<li>
Update other properties which control the feature (GTK2 and GTK use their
SkipTaskBarHint properties).
</li>
</ul>
<p>
In short, ShowInTaskBar is the requested visibility on the task bar.
EffectiveShowInTaskBar is the visibility as determined by the Application and
the widgetset / platform at run-time. stDefault is the value which enables
use of the platform rules. Any given value assigned to either ShowInTaskBar
or in Application.TaskBarBehavior can be overridden at run-time based on the
capabilities for the widgetset or the display manager.
</p>
<remark>
For the macOS Carbon widgetset, ShowInTaskBar is not supported.
</remark>
</descr>
<seealso>
<link id="TCustomForm.EffectiveShowInTaskBar"/>
<link id="Application"/>
<link id="TApplication.TaskBarBehavior"/>
<link id="TShowInTaskbar"/>
</seealso>
</element>
<element name="TCustomForm.Visible">
<short>
Indicates if the control is visible on its parent.
</short>
<descr>
<p>
Re-declared in TCustomForm to use a different storage specifier than the
ancestor class. In TCustomForm, visibility is not tied to an Action or an
ActionLink; it uses the value in the Visible property.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="TCustomForm.WindowState">
<short>
Indicates whether the form is displayed in a minimized, maximized,
full-screen or normal state.
</short>
<descr>
<p>
<var>WindowState</var> is a <var>TWindowState</var> property which indicates
whether the form is currently displayed minimized, maximized, full-screen or
normal (restored) state. The default value is <var>wsNormal</var> (i. e.
neither minimized nor maximized).
</p>
<p>
Changing the value for the property at run-time causes the
<var>ShowWindow</var> routine to be called with the Integer display command
representing the new property value. The action is not performed at
design-time, or when <var>Showing</var> is set to <b>False</b>.
</p>
<remark>
For the Windows platform, wsFullScreen is converted to wsMaximized when
calling the ShowWindow API function; the Windows API does not provide a
full-screen option.
</remark>
</descr>
<seealso>
<link id="TCustomForm.Show"/>
<link id="TWindowState"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
<link id="#lcl.lclintf.ShowWindow">ShowWindow</link>
</seealso>
</element>
<element name="TCustomFormClass">
<short>Class reference for the TCustomForm class.</short>
<descr>
<p>
Used primarily in the implementation of window classes for the Lazarus IDE.
</p>
</descr>
<seealso>
<link id="TCustomForm"/>
</seealso>
</element>
<element name="TForm">
<short>Implements a form used in an LCL application.</short>
<descr>
<p>
<var>TForm</var> is a <var>TCustomForm</var> descendant which implements a
form displayed in an LCL application. It sets the visibility and default
values for properties introduced in ancestor classes. It also adds methods
needed for use as an MDI form in an application. LCL version information is
available in the <var>LCLVersion</var> property, and is streamed to to the
component resource file when a <var>Parent</var> is not assigned for the form.
</p>
<p>
Forms created at design-time using the Lazarus IDE are TForm descendants. A
form can be used as the main form in an application, or it can be displayed
as a MDI forms, dialog box, or tool window. Controls can added to the form,
such as: TEdit, TLabel, TButton, TCheckBox, TComboBox, TListView, TTreeView,
et. al.
</p>
</descr>
<seealso>
<link id="TCustomForm"/>
</seealso>
</element>
<element name="TForm.FLCLVersion" link="#lcl.forms.TForm.LCLVersion"/>
<element name="TForm.LCLVersionIsStored" link="#lcl.forms.TForm.LCLVersion"/>
<element name="TForm.LCLVersionIsStored.Result" link="#lcl.forms.TForm.LCLVersion.Result"/>
<element name="TForm.WSRegisterClass">
<short>
Creates an association between the class type and its widgetset class.
</short>
<descr>
<p>
WSRegisterClass is an overridden class procedure used to register the
widgetset class used to create new instances of the form.
</p>
</descr>
<seealso>
<link id="#lcl.forms.TCustomForm.WSRegisterClass">TCustomForm.WSRegisterClass</link>
</seealso>
</element>
<element name="TForm.CreateWnd">
<short>
Creates the handle for the widgetset class and updates it menu and icons.
</short>
<descr>
<p>
<var>CreateWnd</var> is an overridden method in <var>TForm</var>. It makes
the form instance the main form in the <var>Application</var> singleton if
not already assigned and the form is not a MDI Child or a splash form.
</p>
<p>
CreateWnd calls the inherited method to create (or re-create) the Handle for
the widgetset class, set the form state and auto-sizing behavior, and update
its Menu and Icons.
</p>
</descr>
<seealso>
<link id="TCustomForm.CreateWnd"/>
<link id="TCustomForm.FormStyle"/>
<link id="TCustomForm.Menu"/>
<link id="TCustomForm.Icon"/>
<link id="TCustomForm.BorderIcons"/>
<link id="TApplication.MainForm"/>
</seealso>
</element>
<element name="TForm.Loaded">
<short>
Performs actions when LCL component streaming has been completed for the form
instance.
</short>
<descr>
<p>
<var>Loaded</var> is an overridden method in <var>TForm</var>, and calls the
inherited method on entry. It ensures that the value in the
<var>LCLVersion</var> property is set to the <var>lcl_version</var> constant
from the <file>LCLVersion</file> unit.
</p>
</descr>
<seealso>
<link id="TForm.LCLVersion"/>
<link id="TCustomForm.Loaded"/>
</seealso>
</element>
<element name="TForm.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is an overridden constructor for the class instance. Create
ensures that the <var>LCLVersion</var> property is updated with the value
from the <var>lcl_version</var> constant in the <file>LCLVersion</file> unit.
Create calls the inherited constructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TCustomForm.Create"/>
<link id="TCustomForm.CreateNew"/>
<link id="#lcl.lclversion.lcl_version">lcl_version</link>
</seealso>
</element>
<element name="TForm.Create.TheOwner">
<short>Owner of the form instance.</short>
</element>
<element name="TForm.Cascade">
<short>Arranges MDI child forms so they overlap.</short>
<descr>
<p>
Cascade is a method used to arrange MDI Child forms so that they overlap in a
cascading fashion.
</p>
<p>
No actions are performed in the method when FormStyle has a value other than
fsMDIForm. At run-time, the Cascade method in the widgetset class is called
when its Handle has been allocated.
</p>
<p>
Use Tile to arrange MDI child forms in a grid format.
</p>
</descr>
<seealso/>
</element>
<element name="TForm.Next">
<short>
Activates the next child MDI form (fsMDIChild) in the form sequence.
</short>
<descr/>
<seealso/>
</element>
<element name="TForm.Previous">
<short>Activates the previous MDI child form in the form sequence.</short>
<descr/>
<seealso/>
</element>
<element name="TForm.Tile">
<short>Arranges MDI child forms side-by-side in a grid format.</short>
<descr/>
<seealso/>
</element>
<element name="TForm.ArrangeIcons">
<short>Arranges the icons for minimized forms in a MDI form.</short>
<descr>
<p>
<var>ArrangeIcons</var> is a method used to arrange the icons for minimized
forms on a MDI form. No actions are performed in the method at design-time,
or when <var>FormStyle</var> is set to a value other than
<var>fsMDIForm</var>. ArrangeIcons calls the corresponding method in the
widgetset class when its <var>Handle</var> has been allocated.
</p>
</descr>
<seealso>
<link id="TCustomForm.FormStyle"/>
<link id="#lcl.controls.TWinControl.Handle">TWinControl.Handle</link>
<link id="#lcl.controls.TWinControl.HandleAllocated">TWinControl.HandleAllocated</link>
</seealso>
</element>
<element name="TForm.ClientHandle" link="#lcl.forms.TCustomForm.ClientHandle"/>
<element name="TForm.DockManager" link="#lcl.controls.TWinControl.DockManager"/>
<element name="TForm.Action" link="#lcl.controls.TControl.Action"/>
<element name="TForm.ActiveControl" link="#lcl.forms.TCustomForm.ActiveControl"/>
<element name="TForm.Align" link="#lcl.controls.TControl.Align"/>
<element name="TForm.AllowDropFiles" link="#lcl.forms.TCustomForm.AllowDropFiles"/>
<element name="TForm.AlphaBlend" link="#lcl.forms.TCustomForm.AlphaBlend"/>
<element name="TForm.AlphaBlendValue" link="#lcl.forms.TCustomForm.AlphaBlendValue"/>
<element name="TForm.Anchors" link="#lcl.controls.TControl.Anchors"/>
<element name="TForm.AutoScroll" link="#lcl.forms.TCustomForm.AutoScroll"/>
<element name="TForm.AutoSize" link="#lcl.controls.TControl.AutoSize"/>
<element name="TForm.BiDiMode" link="#lcl.controls.TControl.BiDiMode"/>
<element name="TForm.BorderIcons" link="#lcl.forms.TCustomForm.BorderIcons"/>
<element name="TForm.BorderStyle" link="#lcl.forms.TCustomForm.BorderStyle"/>
<element name="TForm.BorderWidth" link="#lcl.controls.TWinControl.BorderWidth"/>
<element name="TForm.Caption" link="#lcl.controls.TControl.Caption"/>
<element name="TForm.ChildSizing" link="#lcl.controls.TWinControl.ChildSizing"/>
<element name="TForm.ClientHeight" link="#lcl.controls.TControl.ClientHeight"/>
<element name="TForm.ClientWidth" link="#lcl.controls.TControl.ClientWidth"/>
<element name="TForm.Color" link="#lcl.forms.TCustomForm.Color"/>
<element name="TForm.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element name="TForm.DefaultMonitor" link="#lcl.forms.TCustomForm.DefaultMonitor"/>
<element name="TForm.DesignTimePPI" link="#lcl.forms.TCustomDesignControl.DesignTimePPI"/>
<element name="TForm.DockSite" link="#lcl.controls.TWinControl.DockSite"/>
<element name="TForm.DoubleBuffered" link="#lcl.controls.TWinControl.DoubleBuffered"/>
<element name="TForm.DragKind" link="#lcl.controls.TControl.DragKind"/>
<element name="TForm.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element name="TForm.Enabled" link="#lcl.controls.TControl.Enabled"/>
<element name="TForm.Font" link="#lcl.controls.TControl.Font"/>
<element name="TForm.FormStyle" link="#lcl.forms.TCustomForm.FormStyle"/>
<element name="TForm.HelpFile" link="#lcl.forms.TCustomForm.HelpFile"/>
<element name="TForm.Icon" link="#lcl.forms.TCustomForm.Icon"/>
<element name="TForm.KeyPreview" link="#lcl.forms.TCustomForm.KeyPreview"/>
<element name="TForm.Menu" link="#lcl.forms.TCustomForm.Menu"/>
<element name="TForm.OnActivate" link="#lcl.forms.TCustomForm.OnActivate"/>
<element name="TForm.OnChangeBounds" link="#lcl.controls.TControl.OnChangeBounds"/>
<element name="TForm.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TForm.OnClose" link="#lcl.forms.TCustomForm.OnClose"/>
<element name="TForm.OnCloseQuery" link="#lcl.forms.TCustomForm.OnCloseQuery"/>
<element name="TForm.OnConstrainedResize" link="#lcl.controls.TControl.OnConstrainedResize"/>
<element name="TForm.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TForm.OnCreate" link="#lcl.forms.TCustomForm.OnCreate"/>
<element name="TForm.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element name="TForm.OnDeactivate" link="#lcl.forms.TCustomForm.OnDeactivate"/>
<element name="TForm.OnDestroy" link="#lcl.forms.TCustomForm.OnDestroy"/>
<element name="TForm.OnDockDrop" link="#lcl.controls.TWinControl.OnDockDrop"/>
<element name="TForm.OnDockOver" link="#lcl.controls.TWinControl.OnDockOver"/>
<element name="TForm.OnDragDrop" link="#lcl.controls.TControl.OnDragDrop"/>
<element name="TForm.OnDragOver" link="#lcl.controls.TControl.OnDragOver"/>
<element name="TForm.OnDropFiles" link="#lcl.forms.TCustomForm.OnDropFiles"/>
<element name="TForm.OnEndDock" link="#lcl.controls.TControl.OnEndDock"/>
<element name="TForm.OnGetSiteInfo" link="#lcl.controls.TWinControl.OnGetSiteInfo"/>
<element name="TForm.OnHelp" link="#lcl.forms.TCustomForm.OnHelp"/>
<element name="TForm.OnHide" link="#lcl.forms.TCustomForm.OnHide"/>
<element name="TForm.OnKeyDown" link="#lcl.controls.TWinControl.OnKeyDown"/>
<element name="TForm.OnKeyPress" link="#lcl.controls.TWinControl.OnKeyPress"/>
<element name="TForm.OnKeyUp" link="#lcl.controls.TWinControl.OnKeyUp"/>
<element name="TForm.OnMouseDown" link="#lcl.controls.TControl.OnMouseDown"/>
<element name="TForm.OnMouseEnter" link="#lcl.controls.TControl.OnMouseEnter"/>
<element name="TForm.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="TForm.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="TForm.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="TForm.OnMouseWheel" link="#lcl.controls.TControl.OnMouseWheel"/>
<element name="TForm.OnMouseWheelDown" link="#lcl.controls.TControl.OnMouseWheelDown"/>
<element name="TForm.OnMouseWheelUp" link="#lcl.controls.TControl.OnMouseWheelUp"/>
<element name="TForm.OnMouseWheelHorz" link="#lcl.controls.TControl.OnMouseWheelHorz"/>
<element name="TForm.OnMouseWheelLeft" link="#lcl.controls.TControl.OnMouseWheelLeft"/>
<element name="TForm.OnMouseWheelRight" link="#lcl.controls.TControl.OnMouseWheelRight"/>
<element name="TForm.OnPaint" link="#lcl.controls.TCustomControl.OnPaint"/>
<element name="TForm.OnResize" link="#lcl.controls.TControl.OnResize"/>
<element name="TForm.OnShortCut" link="#lcl.forms.TCustomForm.OnShortcut"/>
<element name="TForm.OnShow" link="#lcl.forms.TCustomForm.OnShow"/>
<element name="TForm.OnShowHint" link="#lcl.controls.TControl.OnShowHint"/>
<element name="TForm.OnStartDock" link="#lcl.controls.TControl.OnStartDock"/>
<element name="TForm.OnUnDock" link="#lcl.controls.TWinControl.OnUnDock"/>
<element name="TForm.OnUTF8KeyPress" link="#lcl.controls.TWinControl.OnUTF8KeyPress"/>
<element name="TForm.OnWindowStateChange" link="#lcl.forms.TCustomForm.OnWindowStateChange"/>
<element name="TForm.ParentBiDiMode" link="#lcl.controls.TControl.ParentBiDiMode"/>
<element name="TForm.ParentDoubleBuffered" link="#lcl.controls.TWinControl.ParentDoubleBuffered"/>
<element name="TForm.ParentFont" link="#lcl.forms.TCustomForm.ParentFont"/>
<element name="TForm.PixelsPerInch" link="#lcl.forms.TCustomDesignControl.PixelsPerInch"/>
<element name="TForm.PopupMenu" link="#lcl.controls.TControl.PopupMenu"/>
<element name="TForm.PopupMode" link="#lcl.forms.TCustomForm.PopupMode"/>
<element name="TForm.PopupParent" link="#lcl.forms.TCustomForm.PopupParent"/>
<element name="TForm.Position" link="#lcl.forms.TCustomForm.Position"/>
<element name="TForm.SessionProperties">
<short>
Delimited list of form and / or component properties saved to and restored
from an external storage mechanism.
</short>
<descr>
<p>
SessionProperties is a String property with the names of properties, in the
form instance or its child components. It allows published property values to
be saved to and restored from an external storage mechanism like:
TIniPropStorage, TXMLPropStorage, or TJSONPropStorage.
</p>
<p>
Values in the property are delimited using the ';' (SemiColon) character.
Component properties require both the component and property names using
dotted notation like 'Image1.Visible'. The values can be assigned at
design-time using a dialog in the Lazarus IDE, or by setting the property
value at run-time.
</p>
<p>
For example:
</p>
<code>
// var AForm: TForm;
AForm.SessionProperties := 'Top;Left;WindowState;Image1.Visible;Image1.Transparent';
</code>
<p>
At design-time, the selection dialog is limited to published properties since
RTTI is used to display and access the property values. Use the event
handlers in the storage mechanism, or its StoredValues property, to save or
restore properties with lesser visibility. Use the Save and Restore methods
in the storage mechanism to read and write the property values.
</p>
<p>
TForm sets the visibility for SessionProperties, introduced in TControl, to
published.
</p>
</descr>
<seealso>
<link id="TControl.SessionProperties"/>
<link id="#lcl.propertystorage.TCustomPropertyStorage">TCustomPropertyStorage</link>
<link id="#lcl.inipropstorage.TIniPropStorage">TIniPropStorage</link>
<link id="#lcl.xmlpropstorage.TXMLPropStorage">TXMLPropStorage</link>
<link id="#lcl.jsonpropstorage.TJSONPropStorage">TJSONPropStorage</link>
</seealso>
</element>
<element name="TForm.ScreenSnap" link="#lcl.forms.TCustomForm.ScreenSnap"/>
<element name="TForm.ShowHint" link="#lcl.controls.TControl.ShowHint"/>
<element name="TForm.ShowInTaskBar" link="#lcl.forms.TCustomForm.ShowInTaskBar"/>
<element name="TForm.SnapBuffer" link="#lcl.forms.TCustomForm.SnapBuffer"/>
<element name="TForm.SnapOptions" link="#lcl.forms.TCustomForm.SnapOptions"/>
<element name="TForm.UseDockManager" link="#lcl.controls.TWinControl.UseDockManager"/>
<element name="TForm.LCLVersion">
<short>
The LCL version number as a String type.
</short>
<descr>
<p>
Used to distinguish form streaming content for different versions of the LCL.
</p>
</descr>
</element>
<element name="TForm.Scaled" link="#lcl.forms.TCustomDesignControl.Scaled"/>
<element name="TForm.Visible" link="#lcl.forms.TCustomForm.Visible"/>
<element name="TForm.WindowState" link="#lcl.forms.TCustomForm.WindowState"/>
<element name="TFormClass">
<short>
Class type used to create new TForm instances.
</short>
<descr>
<p>
Class type used to create new TForm instances. Used in the
<file>CustomForm</file> package to register a custom form type, unit, or
package.
</p>
</descr>
<seealso>
<link id="TForm"/>
</seealso>
</element>
<element name="TCustomDockForm">
<short>A floating DockSite used to make TControls float.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDockForm.DoAddDockClient">
<short>
Adds Client as a child control which fills the entire area for the docked
form.
</short>
<descr>
<p>
<var>DoAddDockClient</var> is an overridden method used to add the control in
Client to the docked form. It calls the inherited method on entry to set the
Parent in Client to the current class instance. It sets the Align property in
Client to alAlign to align the control to the bounds for the docked form.
Values in the BorderSpacing property in Client are reset to 0; the current
class instance provides the BorderSpacing values for the docked control. At
run-time, the Visible property is set to <b>True</b> to display the docked
form after the Client has been added.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.DoAddDockClient">TWinControl.DoAddDockClient</link>
</seealso>
</element>
<element name="TCustomDockForm.DoAddDockClient.Client">
<short>Control added to the docked form instance.</short>
</element>
<element name="TCustomDockForm.DoAddDockClient.ARect">
<short>Not used in the current implementation.</short>
</element>
<element name="TCustomDockForm.DoRemoveDockClient">
<short>
Removes the specified form from the list of docked clients, and releases the
dock form when all docked clients have been removed.
</short>
<descr/>
<seealso>
<link id="#lcl.controls.TWinControl.DoRemoveDockClient">TWinControl.DoRemoveDockClient</link>
</seealso>
</element>
<element name="TCustomDockForm.DoRemoveDockClient.Client">
<short>
Client control removed from the dock list in the method.
</short>
</element>
<element name="TCustomDockForm.GetSiteInfo">
<short>
Disallows docking of a second client.
</short>
<descr>
<p>
<var>GetSiteInfo</var> is an overridden method in <var>TCustomDockForm</var>.
It reimplements the method introduced in the ancestor class (TWinControl).
The value in the <var>CanDock</var> argument is set to <b>True</b> when there
are no other docked clients on the docking form instance. Values in the
Client, InfluenceRect, and MousePos arguments are <b>not</b> used in the
method.
</p>
<p>
GetSiteInfo does <b>not</b> call the inherited method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnGetSiteInfo">TWinControl.OnGetSiteInfo</link>
</seealso>
</element>
<element name="TCustomDockForm.GetSiteInfo.Client">
<short>Not used in the method.</short>
</element>
<element name="TCustomDockForm.GetSiteInfo.InfluenceRect">
<short>Not used in the method.</short>
</element>
<element name="TCustomDockForm.GetSiteInfo.MousePos">
<short>Not used in the method.</short>
</element>
<element name="TCustomDockForm.GetSiteInfo.CanDock">
<short>
Returns <b>True</b> when no other docked clients exist on the form instance.
</short>
</element>
<element name="TCustomDockForm.Loaded">
<short>
Tries to make all child controls dockclients. This is of little use in
practice, a floating host docksite should have no child controls.
</short>
<descr/>
<seealso>
<link id="TCustomForm.Loaded"/>
</seealso>
</element>
<element name="TCustomDockForm.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the overridden constructor for the class instance. It calls
CreateNew to create a new form instance, and sets the default values for:
</p>
<ul>
<li>AutoScroll (False)</li>
<li>BorderStyle (bsSizeToolWin)</li>
<li>DockSite (True)</li>
<li>FormStyle (fsStayOnTop)</li>
</ul>
</descr>
<seealso>
<link id="TCustomForm.CreateNew"/>
</seealso>
</element>
<element name="TCustomDockForm.Create.TheOwner">
<short>Owner for the class instance.</short>
</element>
<element name="TCustomDockForm.AutoScroll">
<short>
Indicates if the form can automatically show or hide its scroll bars.
</short>
<descr>
<p>
<var>AutoScroll</var> is a <var>Boolean</var> property which indicates if the
form can automatically show or hide its scroll bars. The default value for
the property is <b>False</b> in <var>TCustomDockForm</var>.
</p>
<p>
AutoScroll can only be <b>True</b> when the BorderStyle for the form is
bsSizeable or bsSizeToolWin, and may be changed to <b>False</b> at run-time
when BorderStyle is changed to another value.
</p>
</descr>
<seealso>
<link id="#lcl.forms.TCustomDockForm.BorderStyle">TCustomDockForm.BorderStyle</link>
<link id="#lcl.forms.TCustomForm.AutoScroll">TCustomForm.AutoScroll</link>
</seealso>
</element>
<element name="TCustomDockForm.BorderStyle">
<short>
The border style affects the title bar, border and resize behavior of the
form.
</short>
<descr>
<p>
Use BorderStyle to get or set the appearance of the form's border. The
default value in TCustomDockForm is bsSizeToolWin.
</p>
<p>
This property is slightly different (has a different base type) than the
TCustomControl.BorderStyle property. When the form is put into another
control the window borders depend on the widgetset. There are no borders
under GTK.
</p>
</descr>
<seealso>
<link id="#lcl.forms.TCustomForm.BorderStyle">TCustomForm.BorderStyle</link>
<link id="#lcl.controls.TFormBorderStyle">TFormBorderStyle</link>
</seealso>
</element>
<element name="TCustomDockForm.FormStyle">
<short>
Indicates the style for the form.
</short>
<descr>
<p>
The default value in TCustomDockForm is fsStayOnTop.
</p>
</descr>
<seealso>
<link id="#lcl.forms.TCustomForm.FormStyle">TCustomForm.FormStyle</link>
<link id="#lcl.controls.TFormStyle">TFormStyle</link>
</seealso>
</element>
<element name="TCustomDockForm.PixelsPerInch" link="#lcl.forms.TCustomDesignControl.PixelsPerInch"/>
<element name="THintWindow">
<short>
The pop-up box containing helpful information that appears when the mouse
pointer hovers over an object.
</short>
<descr>
<p>
THintWindow is a TCustomForm descendant used to display text hints. It is not
intended for use with child controls.
</p>
<p>
Usage:
</p>
<code>
HintWindow := THintWindow.Create(nil);
Rect := HintWindow.CalcHintRect(0, 'This is the hint',nil);
HintWindow.ActivateHint(Rect, 'This is the hint');
</code>
</descr>
<seealso/>
</element>
<element name="THintWindow.FActivating">
<short><b>True</b> during ActivateHint.</short>
</element>
<element name="THintWindow.FAlignment"/>
<element name="THintWindow.FHintRect"/>
<element name="THintWindow.FHintData"/>
<element name="THintWindow.FAutoHide"/>
<element name="THintWindow.FAutoHideTimer">
<short>The timer used to make the hint disappear.</short>
</element>
<element name="THintWindow.FHideInterval"/>
<element name="THintWindow.FHintControl"/>
<element name="THintWindow.AdjustBoundsForMonitor">
<short>Adjusts HintRect to fit on the current monitor.</short>
<descr>
<p>
Used in the implementation of the <var>OffsetHintRect</var> method.
</p>
</descr>
<seealso>
<link id="THintWindow.HintRect"/>
<link id="THintWindow.HintRectAdjust"/>
<link id="THintWindow.OffsetHintRect"/>
</seealso>
</element>
<element name="THintWindow.AdjustBoundsForMonitor.KeepWidth">
<short>Indicates that the width for HintRect should not be decreased.</short>
</element>
<element name="THintWindow.AdjustBoundsForMonitor.KeepHeight">
<short>Indicates that the height for HintRect should not be decreased.</short>
</element>
<element name="THintWindow.GetDrawTextFlags">
<short>Collects the flags for Draw Text formatting.</short>
<descr>
<p>
Returns a Cardinal value that contains the Draw Text flags needed for the
Alignment and BiDiMode used in the hint window.
</p>
</descr>
<seealso>
<link id="THintWindow.Alignment"/>
<link id="THintWindow.BiDiMode"/>
</seealso>
</element>
<element name="THintWindow.GetDrawTextFlags.Result">
<short>Draw Text flags for the hint window.</short>
</element>
<element name="THintWindow.SetAutoHide">
<short>Sets the value for the AutoHide property.</short>
<descr/>
<seealso>
<link id="#lcl.forms.THintWindow.AutoHide">THintWindow.AutoHide</link>
</seealso>
</element>
<element name="THintWindow.SetAutoHide.Value">
<short>New value for the property.</short>
</element>
<element name="THintWindow.AutoHideHint">
<short>Hides the hint window when the hint timer has expired.</short>
<descr>
<p>
Called when the hint timer expires. Ensures that the internal hint timer is
disabled. Hides the hint window by setting the <var>Visible</var> property to
<b>False</b>.
</p>
</descr>
<seealso>
<link id="THintWindow.AutoHide"/>
<link id="THintWindow.HideInterval"/>
</seealso>
</element>
<element name="THintWindow.AutoHideHint.Sender">
<short>Not used in the method.</short>
</element>
<element name="THintWindow.SetHideInterval">
<short>Sets the value for the HideInterval property.</short>
<descr/>
<seealso>
<link id="THintWindow.HideInterval"/>
</seealso>
</element>
<element name="THintWindow.SetHideInterval.Value">
<short>New value for the property.</short>
</element>
<element name="THintWindow.SetHintRectAdjust">
<short>Sets the value for the HintRectAdjust property.</short>
<descr/>
<seealso>
<link id="THintWindow.HintRectAdjust"/>
</seealso>
</element>
<element name="THintWindow.SetHintRectAdjust.AValue">
<short>New value for the property.</short>
</element>
<element name="THintWindow.WSRegisterClass" link="#lcl.lclclasses.TLCLComponent.WSRegisterClass"/>
<element name="THintWindow.WMNCHitTest">
<short>
Handles the WM_NCHITTEST window message for the hint window.
</short>
<descr>
<p>
Sets the result in <var>Message</var> to <var>HTTRANSPARENT</var>. This
forces the message to be forwarded to other windowed controls in the Z-Order
until a value other than HTTRANSPARENT is returned.
</p>
</descr>
<seealso/>
</element>
<element name="THintWindow.WMNCHitTest.Message">
<short>Window message examined and updated in the method.</short>
</element>
<element name="THintWindow.ActivateSub">
<short>
Sets the bounds for the hint window and configures the auto-hide timer.
</short>
<descr>
<p>
Sets the bounds for the hint window to the values in the <var>HintRect</var>
property, and makes the window <var>Visible</var>. The internal auto-hide
timer is enabled when <var>AutoHide</var> contains <b>True</b>.
</p>
<p>
Called from the ActivateHint method.
</p>
</descr>
<seealso>
<link id="THintWindow.HintRect"/>
<link id="THintWindow.AutoHide"/>
<link id="THintWindow.ActivateHint"/>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="THintWindow.DoShowWindow" link="#lcl.forms.TCustomForm.DoShowWindow"/>
<element name="THintWindow.UpdateRegion">
<short>Updates the Window Region fir the hint window.</short>
<descr>
<p>
<var>UpdateRegion</var> calls the <var>SetWindowRgn</var> routine to set the
window region for the hint window. The window region contains the area where
the system can perform drawing operations; no area outside of the window
region can be updated.
</p>
<remark>
<var>SetWindowRgn</var> requires access to the Handle for the hint window; no
actions are performed in the method when <var>HandleAllocated</var> returns
<b>False</b>.
</remark>
<p>
When <var>UseBGThemes</var> is enabled, <var>ThemeServices</var> are used to
get the theme element details needed for the client rectangle in the hint
window.
</p>
</descr>
<seealso>
<link id="THintWindow.UseBGThemes"/>
<link id="THintWindow.UseBGThemes"/>
</seealso>
</element>
<element name="THintWindow.SetColor">
<short>Sets the value for the Color property.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.Color">TControl.Color</link>
</seealso>
</element>
<element name="THintWindow.SetColor.Value">
<short>New value for the property.</short>
</element>
<element name="THintWindow.UseBGThemes">
<short>
Indicates if a background from theme services is used when drawing the hint
window.
</short>
<descr/>
<seealso/>
</element>
<element name="THintWindow.UseBGThemes.Result">
<short><b>True</b> when ThemeServices are used for the background.</short>
</element>
<element name="THintWindow.UseFGThemes">
<short>
Indicates if theme services are used for the foreground rendered for the hint
window.
</short>
<descr>
<p>
The return value is <b>True</b> when the <var>Font</var> used on the hint
window is the stock system font for the platform.
</p>
</descr>
<seealso/>
</element>
<element name="THintWindow.UseFGThemes.Result">
<short>
<b>True</b> when ThemeServices are used to draw the foreground for the hint
window.
</short>
</element>
<element name="THintWindow.Paint">
<short>Draws the content in the hint window.</short>
<descr>
<p>
<var>Paint</var> is an overridden method in <var>THintWindow</var>. It
extends the inherited method to implement default drawing using the
<var>Canvas</var> and the settings enabled for theme services. When
<var>CountrolCount</var> is <b>0</b>, the internal routine is used to render
the content.When CountrolCount indicates that child controls are present on
the hint window, the inherited Paint method is called to render the content.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TCustomControl.Paint">TCustomControl.Paint</link>
</seealso>
</element>
<element name="THintWindow.FSysHintFont"/>
<element name="THintWindow.SysHintFont">
<short>System font used to draw text in the hint window.</short>
<descr/>
<seealso/>
</element>
<element name="THintWindow.SysHintFont.Result">
<short>TFont instance for the system font provided by the widgetset.</short>
</element>
<element name="THintWindow.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is a class method used as the destructor for the class. Destroy
ensures that the reference to the System Font used for hint windows is freed.
</p>
</descr>
<seealso>
<link id="THintWindow.SysHintFont"/>
</seealso>
</element>
<element name="THintWindow.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance.
Create calls the inherited <var>CreateNew</var> constructor, and allocates
resources needed in the class instance. This includes an internal timer used
when <var>AutoHide</var> is set to <b>True</b>.
</p>
<p>
Create sets the default values for the following properties:
</p>
<dl>
<dt>Parent</dt>
<dd>Set to Nil</dd>
<dt>Color</dt>
<dd>Set to clInfoBk</dd>
<dt>Font</dt>
<dd>Uses the Screen.HintFont</dd>
<dt>Canvas</dt>
<dd>Uses the brush style bsClear</dd>
<dt>Alignment</dt>
<dd>Set to taLeftJustify</dd>
<dt>BorderStyle</dt>
<dd>Set to bsNone</dd>
<dt>Caption</dt>
<dd>Set to an empty string ('')</dd>
<dt>HideInterval</dt>
<dd>Set to 3000 milliseconds (3 seconds)</dd>
<dt>AutoHide</dt>
<dd>Set to <b>False</b></dd>
</dl>
<p>
Create uses the default size from the class type for the control to set the
initial bounds for the hint window.
</p>
</descr>
<seealso/>
</element>
<element name="THintWindow.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="THintWindow.ActivateHint">
<short>Shows the specified hint.</short>
<descr>
<p>
<var>ActivateHint</var> is an overloaded procedure used to display the Hint
text specified in <var>AHint</var>. An overloaded variant allows the display
area for the hint window to be specified in the <var>ARect</var> argument.
</p>
<remark>
No actions are performed in the method if <var>ActivateHint</var> has been
previously called with the same hint text and display area.
</remark>
</descr>
<seealso>
<link id="THintWindow.CalcHintRect"/>
</seealso>
</element>
<element name="THintWindow.ActivateHint.AHint">
<short>Text displayed in the hint window.</short>
</element>
<element name="THintWindow.ActivateHint.ARect">
<short>TRect with the display area for the hint window.</short>
</element>
<element name="THintWindow.ActivateWithBounds">
<short>Sets the bounds in HintRect and activates the hint window.</short>
<descr>
<p>
<var>ActivateWithBounds</var> is a procedure used to update the location and
text for the hint window. ActivateWithBounds sets the value in
<var>HintRect</var> to the value in the <var>ARect</var> argument.
ActivateWithBounds calls <var>ActivateHint</var> using the value in
<var>AHint</var> as the text displayed in the hint window.
</p>
</descr>
<seealso>
<link id="THintWindow.HintRect"/>
<link id="THintWindow.ActivateHint"/>
</seealso>
</element>
<element name="THintWindow.ActivateWithBounds.ARect">
<short>Rectangle with the bounds assigned to HintRect.</short>
</element>
<element name="THintWindow.ActivateWithBounds.AHint">
<short>Text displayed in the hint window.</short>
</element>
<element name="THintWindow.ActivateHintData">
<short>
An extended version of ActivateHint with additional data used for the hint
display.
</short>
<descr>
<p>
<var>ActivateHintData</var> is an extended version of
<var>ActivateHint</var>. It provides the additional <var>AData</var> argument
which contains a pointer to values which can be used to construct the text
displayed in the hint window.
</p>
<p>
The implementation in <var>THintWindow</var> does not use the values in
<var>AData</var>. The method must be overridden in a descendent class to use
the additional hint data in <var>AData</var>.
</p>
</descr>
<seealso>
<link id="THintWindow.ActivateHint"/>
</seealso>
</element>
<element name="THintWindow.ActivateHintData.ARect">
<short>Display rectangle for the hint text.</short>
</element>
<element name="THintWindow.ActivateHintData.AHint">
<short>Text displayed in the hint window.</short>
</element>
<element name="THintWindow.ActivateHintData.AData">
<short>Pointer to additional data used to construct the hint text.</short>
</element>
<element name="THintWindow.CalcHintRect">
<short>Determines the rectangle required for the hint display.</short>
<descr>
<p>
CalcHintRect determines the display rectangle required for the hint display.
CalcHintRect uses the larger of the values in the length of the hint text,
and the width of the hint window.
</p>
</descr>
<seealso/>
</element>
<element name="THintWindow.CalcHintRect.Result">
<short>Display area needed for the hint display.</short>
</element>
<element name="THintWindow.CalcHintRect.MaxWidth">
<short>Greater than zero, otherwise the full monitor width is used.</short>
</element>
<element name="THintWindow.CalcHintRect.AHint">
<short>Hint text used to derive the display area.</short>
</element>
<element name="THintWindow.CalcHintRect.AData">
<short>Pointer to additional data used to construct the hint text.</short>
</element>
<element name="THintWindow.OffsetHintRect">
<short>Moves the hint rectangle by the specified amounts.</short>
<descr/>
<seealso>
<link id="THintWindow.HintRect"/>
<link id="THintWindow.HintRectAdjust"/>
</seealso>
</element>
<element name="THintWindow.OffsetHintRect.Result">
<short>
<b>True</b> when the hint rectangle was successfully moved by the specified
amounts.
</short>
</element>
<element name="THintWindow.OffsetHintRect.AOffset">
<short>
TPoint with the horizontal and vertical offsets for the hint display.
</short>
</element>
<element name="THintWindow.OffsetHintRect.dy">
<short>Additional vertical offset applied to the hint rectangle.</short>
</element>
<element name="THintWindow.OffsetHintRect.KeepWidth">
<short>
Indicates the width for the hint rectangle must be maintained.
</short>
</element>
<element name="THintWindow.OffsetHintRect.KeepHeight">
<short>
Indicates the height for the hint rectangle must be maintained.
</short>
</element>
<element name="THintWindow.InitializeWnd" link="#lcl.forms.TCustomForm.InitializeWnd"/>
<element name="THintWindow.IsHintMsg">
<short>
Indicates if the specified message is relevant to a hint window display.
</short>
<descr>
<p>
<var>IsHintMsg</var> is a <var>Boolean</var> function used to determine if
the message instance in <var>Msg</var> is recognized in
<var>THintWindow</var>.
</p>
<remark>
Not used in the current LCL implementation.
</remark>
</descr>
<seealso>
<link id="#lcl.lcltype.TMsg">TMsg</link>
</seealso>
</element>
<element name="THintWindow.IsHintMsg.Result">
<short>
<b>True</b> if the message is used for hint windows, <b>False</b> for all
other messages.
</short>
</element>
<element name="THintWindow.IsHintMsg.Msg">
<short>TMsg instance with the message examined in the method.</short>
</element>
<element name="THintWindow.ReleaseHandle">
<short>Destroys an allocated handle for the widget.</short>
<descr>
<p>
ReleaseHandle is a method used to free the Handle allocated for the control
in the widgetset class. It calls the DestroyHandle method if the Handle has
been allocated for the class instance. ReleaseHandle is called by methods in
the widgetset class to ensure that the Handle is set 0 (the un-initialized
value).
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.DestroyHandle">TWinControl.DestroyHandle</link>
</seealso>
</element>
<element name="THintWindow.SetBounds">
<short>
Applies the argument values to the bounds for the control.
</short>
<descr>
<p>
<var>SetBounds</var> is an overridden method in <var>THintWindow</var>. It
calls the inherited method on entry to apply the argument values to the
bounds for the class instance. It calls the UpdateRegion method to set the
window region, or apply a background theme when enabled.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.InitializeWnd">TWinControl.InitializeWnd</link>
</seealso>
</element>
<element name="THintWindow.SetBounds.ALeft">
<short>Value for the Left property.</short>
</element>
<element name="THintWindow.SetBounds.ATop">
<short>Value for the Top property.</short>
</element>
<element name="THintWindow.SetBounds.AWidth">
<short>Value for the Width property.</short>
</element>
<element name="THintWindow.SetBounds.AHeight">
<short>Value for the Height property.</short>
</element>
<element name="THintWindow.GetControlClassDefaultSize" link="#lcl.controls.TControl.GetControlClassDefaultSize"/>
<element name="THintWindow.GetControlClassDefaultSize.Result"/>
<element name="THintWindow.OnMouseDown" link="#lcl.controls.TControl.OnMouseDown"/>
<element name="THintWindow.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="THintWindow.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="THintWindow.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="THintWindow.Alignment">
<short>Text alignment used for the hint window.</short>
<descr>
<p>
<var>Alignment</var> is a <var>TAlignment</var> property that indicates the
alignment used for the text displayed in the hint window.
</p>
<p>
The default value for the property is <var>taLeftJustify</var>, as assigned
in the <var>Create</var> constructor. The value in Alignment is used to
derive the draw text flags required for the <var>BidiMode</var> in the hint
display, and passed to to <var>DrawText</var> routine in theme services or
widgetset classes.
</p>
</descr>
<seealso>
<link id="THintWindow.BiDiMode"/>
<link id="TAlignment"/>
</seealso>
</element>
<element name="THintWindow.HintRect">
<short>Contains the bounds used to display the text for the hint.</short>
<descr>
<p>
<var>HintRect</var> is a <var>TRect</var> property which contains the bounds
used to display the hint when it is activated. <var>HintRect</var> is
adjusted using the values in <var>HintRectAdjust</var> (when assigned) and
the borders drawn around the hint display.
</p>
</descr>
<seealso>
<link id="THintWindow.ActivateHint"/>
<link id="THintWindow.ActivateHintData"/>
<link id="THintWindow.ActivateWithBounds"/>
<link id="THintWindow.HintRectAdjust"/>
</seealso>
</element>
<element name="THintWindow.HintRectAdjust">
<short>
Contains the bounds with additional space needed for the hint display.
</short>
<descr/>
<seealso/>
</element>
<element name="THintWindow.HintData">
<short>
Pointer to data used to formulate text displayed in the hint window.
</short>
<descr/>
<seealso/>
</element>
<element name="THintWindow.HintControl">
<short>
Windowed control which is the parent for the hint window.
</short>
<descr>
<p>
<var>HintControl</var> is an experimental <var>TControl</var> property which
contains a reference to the windowed control to which the hint window is
attached. Its value is assigned in the TApplication.ShowHintWindow method to
the HintControl property provided by the Application. The value is used in the
GTK3 widgetset to provide a handle that identifies the parent widget; hence,
its experimental designation.
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TApplication.ShowHintWindow"/>
</seealso>
</element>
<element name="THintWindow.AutoHide">
<short>Does the hint disappear (get hidden) after a while?</short>
<descr>
<p>
If <var>AutoHide</var> is <b>True</b>, the hint disappears after an interval
specified by <link id="THintWindow.HideInterval">HideInterval</link>.
</p>
</descr>
<seealso/>
</element>
<element name="THintWindow.BiDiMode" link="#lcl.controls.TControl.BiDiMode"/>
<element name="THintWindow.HideInterval">
<short>The time after which the displayed hint disappears.</short>
<descr/>
<seealso>
<link id="THintWindow.AutoHide"/>
</seealso>
</element>
<element name="THintWindowClass">
<short>Class of <var>THintWindow</var>.</short>
<descr/>
<seealso>
<link id="THintWindow"/>
</seealso>
</element>
<element name="THintWindowRendered">
<short>
For a rendered hint with a child control added by an external provider.
</short>
<descr/>
<seealso/>
</element>
<element name="THintWindowRendered.Create">
<short>Constructor for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="THintWindowRendered.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="THintWindowRendered.Destroy">
<short>Destructor for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="THintWindowRendered.ActivateRendered">
<short>
Shows hint contents are rendered by a provider on child control.
</short>
<descr/>
<seealso/>
</element>
<element name="TMonitor">
<short>Provides information about a physical monitor.</short>
<descr>
<p>
Monitor information is retrieved dynamically from the Operating System. This
ensures that any changes to the installed hardware devices or their
configuration are taken into account. <var>TMonitor</var> has properties that
reflect its dimensions, use as the primary monitor, and its display density
(or Pixels per Inch).
</p>
<p>
<var>TMonitor</var> is the type returned when reading the
<var>TScreen.Monitors</var> property. <var>TMonitor</var> is the type used to
implement the <var>TCustomForm.Monitor</var> property.
</p>
</descr>
<seealso>
<link id="TCustomForm.Monitor"/>
<link id="TScreen.Monitors"/>
</seealso>
</element>
<element name="TMonitor.FHandle" link="#lcl.forms.TMonitor.Handle"/>
<element name="TMonitor.FMonitorNum" link="#lcl.forms.TMonitor.MonitorNum"/>
<element name="TMonitor.GetInfo">
<short>Retrieves monitor information from the OS or platform.</short>
<descr>
<p>
<var>Getinfo</var> is a <var>Boolean</var> function used to get monitor
information from the OS or platform hosting the LCL application.
<var>Getinfo</var> initializes the <var>Info</var> output parameter to the
size required for the <var>TMonitorInfo</var> type, and calls the
<var>GetMonitorInfo</var> routine for the widgetset.
</p>
<p>
The return value is <b>True</b> when monitor information is successfully
retrieved for the OS or platform. <var>Info</var> contains the size, display
rectangle, work area, and flags for the monitor.
</p>
</descr>
<seealso>
<link id="#lcl.lcltype.TMonitorInfo">TMonitorInfo</link>
</seealso>
</element>
<element name="TMonitor.GetInfo.Result">
<short>
<b>True</b> when monitor information was successfully retrieved.
</short>
</element>
<element name="TMonitor.GetInfo.Info">
<short>TMonitorInfo with values retrieved for the OS or platform.</short>
</element>
<element name="TMonitor.GetLeft">
<short>Gets the value for the Left property.</short>
<descr/>
<seealso>
<link id="TMonitor.Left"/>
</seealso>
</element>
<element name="TMonitor.GetLeft.Result">
<short>Value for the property.</short>
</element>
<element name="TMonitor.GetHeight">
<short>
Gets the value for the Height property.
</short>
<descr/>
<seealso>
<link id="TMonitor.Height"/>
</seealso>
</element>
<element name="TMonitor.GetHeight.Result">
<short>
Value for the Height property.
</short>
</element>
<element name="TMonitor.GetPixelsPerInch">
<short>Gets the value for the PixelsPerInch property.</short>
<descr/>
<seealso>
<link id="TMonitor.PixelsPerInch"/>
</seealso>
</element>
<element name="TMonitor.GetPixelsPerInch.Result">
<short>Value for the property.</short>
</element>
<element name="TMonitor.GetTop">
<short>
Gets the value for the Top property.
</short>
<descr/>
<seealso>
<link id="TMonitor.Top"/>
</seealso>
</element>
<element name="TMonitor.GetTop.Result">
<short>
Value for the Top property.
</short>
</element>
<element name="TMonitor.GetWidth">
<short>
Gets the value for the Width property.
</short>
<descr/>
<seealso>
<link id="TMonitor.Width"/>
</seealso>
</element>
<element name="TMonitor.GetWidth.Result">
<short>
Value for the Width property.
</short>
</element>
<element name="TMonitor.GetBoundsRect">
<short>
Gets the value for the BoundsRect property.
</short>
<descr/>
<seealso>
<link id="TMonitor.BoundsRect"/>
</seealso>
</element>
<element name="TMonitor.GetBoundsRect.Result">
<short>
Value for the BoundsRect property.
</short>
</element>
<element name="TMonitor.GetWorkareaRect">
<short>
Gets the value for the WorkareaRect property.
</short>
<descr/>
<seealso>
<link id="TMonitor.WorkareaRect"/>
</seealso>
</element>
<element name="TMonitor.GetWorkareaRect.Result">
<short>
Value for the WorkareaRect property.
</short>
</element>
<element name="TMonitor.GetPrimary">
<short>
Gets the value for the Primary property.
</short>
<descr/>
<seealso>
<link id="TMonitor.Primary"/>
</seealso>
</element>
<element name="TMonitor.GetPrimary.Result">
<short>
Value for the Primary property.
</short>
</element>
<element name="TMonitor.Handle">
<short>Handle which identifies this monitor to the system.</short>
</element>
<element name="TMonitor.MonitorNum">
<short>
Index of the monitor in the <link id="TScreen.Monitors"/> list.
</short>
<descr>
<p>
<var>MonitorNum</var> is a read-only Integer property with the ordinal
position where the class instance is stored in a list of Monitors. The value
for the property is assigned in the UpdateMonitors method in TScreen when the
monitor class instance is created and stored.
</p>
</descr>
<seealso>
<link id="TScreen.Monitors"/>
<link id="TScreen.UpdateMonitors"/>
</seealso>
</element>
<element name="TMonitor.Left">
<short>The left-most screen coordinate for the display.</short>
<descr>
<p>
<var>Left</var> is a read-only Integer property with the coordinate for the
left edge of the monitor. It contains the value from the Left member in
BoundsRect.
</p>
</descr>
<seealso>
<link id="TMonitor.BoundsRect"/>
<link id="#rtl.types.TRect">TRect</link>
</seealso>
</element>
<element name="TMonitor.Height">
<short>
The height for the display.
</short>
<descr>
<p>
<var>Height</var> is a read-only Integer property with the height for the
monitor in pixels. The property value is calculated as the difference between
the Bottom and Top members in BoundsRect.
</p>
</descr>
<seealso>
<link id="TMonitor.BoundsRect"/>
<link id="#rtl.types.TRect">TRect</link>
</seealso>
</element>
<element name="TMonitor.Top">
<short>
The top-most screen coordinate for the display.
</short>
<descr>
<p>
<var>Top</var> is a read-only Integer property with the top coordinate for
the monitor. It contains the value from the Top member in BoundsRect.
</p>
</descr>
<seealso>
<link id="TMonitor.BoundsRect"/>
<link id="#rtl.types.TRect">TRect</link>
</seealso>
</element>
<element name="TMonitor.Width">
<short>
The width for the display.
</short>
<descr>
<p>
Width is a read-only Integer property with the width for the monitor. It is
calculated as the difference between the Right and Left members in BoundsRect.
</p>
</descr>
<seealso>
<link id="TMonitor.BoundsRect"/>
<link id="#rtl.types.TRect">TRect</link>
</seealso>
</element>
<element name="TMonitor.BoundsRect">
<short>
Rectangle with the dimensions for the monitor.
</short>
<descr>
<p>
<var>BoundsRect</var> is a read-only TRect property which contains the bounds
for the display device. The property value is assigned from TMonitorInfo
information retrieved using the platform-specific GetMonitorInfo routine. The
rectangle can be empty (where all members have the value 0) if monitor
information was not successfully retrieved from the widgetset.
</p>
</descr>
<seealso>
<link id="#lcl.lclintf.GetMonitorInfo">GetMonitorInfo</link>
<link id="#lcl.lcltype.TMonitorInfo">TMonitorInfo</link>
<link id="#rtl.types.TRect">TRect</link>
</seealso>
</element>
<element name="TMonitor.WorkareaRect">
<short>
The usable display area on the monitor excluding the system task bar.
</short>
<descr>
<p>
<var>WorkareaRect</var> is a read-only TRect property with the bounds for the
usable display area on the monitor. This does not include any space covered
by the system task bar.
</p>
<p>
The property value is assigned from TMonitorInfo information retrieved using
the platform-specific GetMonitorInfo routine. The rectangle can be empty
(where all members have the value 0) if monitor information was not
successfully retrieved from the widgetset.
</p>
</descr>
<seealso>
<link id="#lcl.lclintf.GetMonitorInfo">GetMonitorInfo</link>
<link id="#lcl.lcltype.TMonitorInfo">TMonitorInfo</link>
<link id="#rtl.types.TRect">TRect</link>
</seealso>
</element>
<element name="TMonitor.Primary">
<short>
Contains <b>True</b> if this is the primary monitor for the system.
</short>
<descr>
<p>
<var>Primary</var> is a read-only Boolean property which indicates if the
monitor is the primary display in a list of monitors. The property value is
determined using flag values in the TMonitorInfo retrieved using
GetMonitorInfo for the platform or operating system. It is set to <b>True</b>
when the monitor information contains MONITORINFOF_PRIMARY in its flags.
</p>
<p>
Primary is used when the value for the PrimaryMonitor property is retrieved
in the TScreen class. It indicates which TMonitor instance is used as the
value for the PrimaryMonitor property.
</p>
</descr>
<seealso>
<link id="TScreen.PrimaryMonitor"/>
<link id="#lcl.lclintf.GetMonitorInfo">GetMonitorInfo</link>
<link id="#lcl.lcltype.TMonitorInfo">TMonitorInfo</link>
</seealso>
</element>
<element name="TMonitor.PixelsPerInch">
<short>
Contains the Pixels Per Inch (or display density) for the monitor.
</short>
<descr>
<p>
PixelsPerInch is a read-only Integer property with the display density for
the monitor. The property value is determined by calling the GetDpiForMonitor
routine for the widgetset to retrieve the effective dots-per-inch for both
horizontal and vertical dimensions. The horizontal density is used in the
property value.
</p>
<p>
If the GetDpiForMonitor routine does not complete successfully, the
PixelsPerInch property in TScreen is used as the property value.
</p>
<p>
PixelsPerInch can be used at run-time to ensure that the display density for
a Font or Canvas matches the setting in a specific monitor. It is used in the
Show and AutoScale methods in TCustomForm to apply an auto-adjust layout
policy. It is also used in the form designer for the Lazarus IDE to perform
similar actions during component streaming.
</p>
</descr>
<seealso>
<link id="#lcl.forms.TCustomForm.Show">TCustomForm.Show</link>
<link id="#lcl.forms.TCustomForm.AutoScale">TCustomForm.AutoScale</link>
</seealso>
</element>
<element name="TMonitorList">
<short>
A list of monitors available on the system.
</short>
<descr>
<p>
<var>TMonitorList</var> is a <var>TList</var> descendant used to store
<var>TMonitor</var> class instances representing the physical monitors
attached to the system. It provides an indexed <var>Items</var> property that
can be used to access monitor information by an ordinal position in the list.
It also provides an overridden Notify method to free a TMonitor instance when
the <var>lnDeleted</var> list notification is received.
</p>
<p>
TMonitorList is the type used to implement the <var>Monitors</var> property
in <var>TScreen</var>.
</p>
</descr>
<seealso>
<link id="TMonitor"/>
<link id="TScreen.Monitors"/>
<link id="#rtl.classes.TList">TList</link>
</seealso>
</element>
<element name="TMonitorList.GetItem" link="#lcl.forms.TMonitorList.Items"/>
<element name="TMonitorList.GetItem.Result"/>
<element name="TMonitorList.GetItem.AIndex"/>
<element name="TMonitorList.SetItem" link="#lcl.forms.TMonitorList.Items"/>
<element name="TMonitorList.SetItem.AIndex"/>
<element name="TMonitorList.SetItem.AValue"/>
<element name="TMonitorList.Notify">
<short>
List notification handler which destroys the Monitor object on removal from
the list.
</short>
<descr/>
<seealso/>
</element>
<element name="TMonitorList.Notify.Ptr">
<short>The monitor object.</short>
</element>
<element name="TMonitorList.Notify.Action">
<short>The list operation.</short>
</element>
<element name="TMonitorList.Items">
<short>The indexed list of all Monitors.</short>
<descr>
<p>
<var>Items</var> is a <var>TMonitor</var> property which provides indexed
access to a monitor in the list by its ordinal position. Items is the default
property for the list, and the target for a list enumerator for the class
instance.
</p>
<p>
TMonitor instances in Items are create and added at run-time when the
<var>UpdateMonitors</var> method in <var>TScreen</var> is called. This occurs
in response to a <var>WM_DISPLAYCHANGE</var> message in the processing loop
for an application.
</p>
</descr>
<seealso>
<link id="TMonitor"/>
<link id="TScreen.UpdateMonitors"/>
<link id="TApplication.HandleMessage"/>
</seealso>
</element>
<element name="TMonitorList.Items.AIndex">
<short>Ordinal position for a monitor in the list.</short>
</element>
<element name="PCursorRec" link="#lcl.forms.TCursorRec"/>
<element name="TCursorRec">
<short>Contains information about a cursor shape.</short>
<descr>
<p>
<var>TCursorRec</var> is a record type which contains information about a
cursor shape used in an application. It contains members with the index
position for the cursor, the Handle for the cursor resource, and a pointer to
the next cursor record in the list.
</p>
</descr>
<seealso/>
</element>
<element name="TCursorRec.Next">
<short>Pointer to the next cursor record in the list.</short>
<descr/>
<seealso/>
</element>
<element name="TCursorRec.Index">
<short>Position of the cursor record in the list..</short>
<descr/>
<seealso/>
</element>
<element name="TCursorRec.Handle">
<short>The handle for the cursor resource.</short>
<descr/>
<seealso/>
</element>
<element name="TScreenFormEvent">
<short>
Type used for a screen notification handler for form-related events.
</short>
<descr/>
<seealso>
<link id="TScreenNotification"/>
<link id="TScreenControlEvent"/>
</seealso>
</element>
<element name="TScreenFormEvent.Sender">
<short>TObject for the event notification.</short>
</element>
<element name="TScreenFormEvent.Form">
<short>The affected form.</short>
</element>
<element name="TScreenControlEvent">
<short>
Type for a screen notification handler used for control-related events.
</short>
<descr/>
<seealso>
<link id="TScreenFormEvent"/>
<link id="TScreenNotification"/>
</seealso>
</element>
<element name="TScreenControlEvent.Sender">
<short>TObject for the event notification.</short>
</element>
<element name="TScreenControlEvent.LastControl">
<short>The <b>new</b> active control.</short>
</element>
<element name="TScreenNotification">
<short>Screen notification events and handler types.</short>
<descr/>
<version>
Modified in LCL version 3.0 to include snNewFormCreated in the enumeration
values.
</version>
<seealso>
<link id="TScreenFormEvent"/>
<link id="TScreenControlEvent"/>
</seealso>
</element>
<element name="TScreenNotification.snNewFormCreated">
<short>
Indicates that a new form instance has been instantiated on a TScreen.
</short>
</element>
<element name="TScreenNotification.snFormAdded">
<short>A form was added.</short>
</element>
<element name="TScreenNotification.snRemoveForm">
<short>A form was removed.</short>
</element>
<element name="TScreenNotification.snActiveControlChanged">
<short>The focus moved to another control.</short>
</element>
<element name="TScreenNotification.snActiveFormChanged">
<short>The focus moved to another form.</short>
</element>
<element name="TScreenNotification.snFormVisibleChanged">
<short>The visibility of a form changed.</short>
</element>
<element name="TMonitorDefaultTo">
<short>
The monitor to use when screen coordinates are outside of the physical bounds
for the screens.
</short>
<descr>
</descr>
<seealso>
</seealso>
</element>
<element name="TMonitorDefaultTo.mdNearest">
<short>Default to the nearest monitor.</short>
</element>
<element name="TMonitorDefaultTo.mdNull">
<short>Default to Nil (no suggested monitor).</short>
</element>
<element name="TMonitorDefaultTo.mdPrimary">
<short>Default to the primary monitor.</short>
</element>
<element name="TScreen">
<short>
Provides information about screen displays in an application.
</short>
<descr>
<p>
<var>TScreen</var> is a <var>TLCLComponent</var> descendant which provides
information about multiple monitors in an LCL application. TScreen allows the
GUI for an application to be managed on multiple monitors. It includes the
size and resolution for a screen, and allows mapping the virtual Desktop and
Workareas to the physical Monitors known to the application.
</p>
<p>
TScreen also provides access to objects displayed on a given screen,
including: <var>Forms</var>, <var>Cursors</var>, and <var>Fonts</var>. For
Delphi compatibility, non-visual <var>DataModules</var> are also included in
the TScreen information. Properties are provided in the class with the
currently active Form, Control and Cursor for a screen.
</p>
<p>
TScreen is the type used for the <var>Screen</var> singleton in an LCL
application.
</p>
</descr>
<seealso>
<link id="TScreen.Cursors"/>
<link id="TScreen.DataModules"/>
<link id="TScreen.Fonts"/>
<link id="TScreen.Forms"/>
<link id="TScreen.CustomForms"/>
<link id="TScreen.Monitors"/>
<link id="TScreen.WorkareaRect"/>
<link id="TScreen.DesktopRect"/>
</seealso>
</element>
<element name="TScreen.crScreen"/>
<element name="TScreen.FActiveControl" link="#lcl.forms.TScreen.ActiveControl"/>
<element name="TScreen.FActiveCustomForm" link="#lcl.forms.TScreen.ActiveCustomForm"/>
<element name="TScreen.FActiveForm" link="#lcl.forms.TScreen.ActiveForm"/>
<element name="TScreen.FCursor" link="#lcl.forms.TScreen.Cursor"/>
<element name="TScreen.FTempCursors"/>
<element name="TScreen.FCursorMap" link="#lcl.forms.TScreen.Cursors"/>
<element name="TScreen.FCustomForms" link="#lcl.forms.TScreen.CustomForms"/>
<element name="TScreen.FCustomFormsZOrdered" link="#lcl.forms.TScreen.CustomFormsZOrdered"/>
<element name="TScreen.FDefaultCursor"/>
<element name="TScreen.FHintFont" link="#lcl.forms.TScreen.HintFont"/>
<element name="TScreen.FFocusedForm" link="#lcl.forms.TScreen.FocusedForm"/>
<element name="TScreen.FFonts" link="#lcl.forms.TScreen.Fonts"/>
<element name="TScreen.FFormList" link="#lcl.forms.TScreen.Forms"/>
<element name="TScreen.FDataModuleList" link="#lcl.forms.TScreen.DataModules"/>
<element name="TScreen.FIconFont" link="#lcl.forms.TScreen.IconFont"/>
<element name="TScreen.FMenuFont" link="#lcl.forms.TScreen.MenuFont"/>
<element name="TScreen.FScreenHandlers"/>
<element name="TScreen.FLastActiveControl">
<short>The last active control, used to detect focus changes.</short>
<seealso>
<link id="TScreen.RestoreLastActive"/>
</seealso>
</element>
<element name="TScreen.FLastActiveCustomForm">
<short>The last active form, used to detect focus changes.</short>
<descr/>
<seealso>
<link id="TScreen.RestoreLastActive"/>
</seealso>
</element>
<element name="TScreen.FMonitors" link="#lcl.forms.TScreen.Monitors"/>
<element name="TScreen.FOnActiveControlChange" link="#lcl.forms.TScreen.OnActiveControlChange"/>
<element name="TScreen.FOnActiveFormChange" link="#lcl.forms.TScreen.OnActiveFormChange"/>
<element name="TScreen.FPixelsPerInch" link="#lcl.forms.TScreen.PixelsPerInch"/>
<element name="TScreen.FSaveFocusedList"/>
<element name="TScreen.FSystemFont" link="#lcl.forms.TScreen.SystemFont"/>
<element name="TScreen.FMagnetManager"/>
<!-- private -->
<element name="TScreen.DeleteCursor">
<short>Removes the specified cursor from the Cursors property.</short>
<descr/>
<seealso>
<link id="TScreen.Cursors"/>
</seealso>
</element>
<element name="TScreen.DeleteCursor.AIndex">
<short>The logical cursor ID.</short>
</element>
<element name="TScreen.DestroyCursors">
<short>Deletes all TCursor instances in the Cursors property.</short>
<descr/>
<seealso>
<link id="TScreen.Cursors"/>
</seealso>
</element>
<element name="TScreen.DestroyMonitors">
<short>Clears the Monitors list.</short>
<descr/>
<seealso>
<link id="TScreen.Monitors"/>
</seealso>
</element>
<element name="TScreen.GetCursors">
<short>Gets the value for the indexed Cursors property.</short>
<descr/>
<seealso>
<link id="TScreen.Cursors"/>
</seealso>
</element>
<element name="TScreen.GetCursors.Result">
<short>Value for the indexed property.</short>
</element>
<element name="TScreen.GetCursors.AIndex">
<short>The logical cursor ID.</short>
</element>
<element name="TScreen.GetCustomFormCount">
<short>Gets the value for the CustomFormCount property.</short>
<descr/>
<seealso>
<link id="TScreen.CustomFormCount"/>
</seealso>
</element>
<element name="TScreen.GetCustomFormCount.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetCustomFormZOrderCount" link="#lcl.forms.TScreen.CustomFormZOrderCount"/>
<element name="TScreen.GetCustomFormZOrderCount.Result"/>
<element name="TScreen.GetCustomForms">
<short>Gets the value for the indexed CustomForms property.</short>
<descr/>
<seealso>
<link id="TScreen.CustomForms"/>
</seealso>
</element>
<element name="TScreen.GetCustomForms.Result">
<short>Value for the indexed property.</short>
</element>
<element name="TScreen.GetCustomForms.Index">
<short>Ordinal position for the property value.</short>
</element>
<element name="TScreen.GetCustomFormsZOrdered">
<short>
Gets the value for the indexed CustomFormsZOrdered property.
</short>
<descr/>
<seealso>
<link id="TScreen.CustomFormsZOrdered"/>
</seealso>
</element>
<element name="TScreen.GetCustomFormsZOrdered.Result">
<short>
TCustomForm instance at the specified position in the Z-Order.
</short>
</element>
<element name="TScreen.GetCustomFormsZOrdered.Index">
<short>
Ordinal position for the property value; smaller values are higher in the
Z-Order.
</short>
</element>
<element name="TScreen.GetDataModuleCount">
<short>Gets the value for the DataModuleCount property.</short>
<descr/>
<seealso>
<link id="TScreen.DataModuleCount"/>
</seealso>
</element>
<element name="TScreen.GetDataModuleCount.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetDataModules">
<short>Gets the value for the indexed DataModules property.</short>
<descr/>
<seealso>
<link id="TScreen.DataModules"/>
</seealso>
</element>
<element name="TScreen.GetDataModules.Result">
<short>Value for the indexed property.</short>
</element>
<element name="TScreen.GetDataModules.AIndex">
<short>Ordinal position for the property value.</short>
</element>
<element name="TScreen.GetDesktopLeft">
<short>Gets the value for the DesktopLeft property.</short>
<descr/>
<seealso>
<link id="TScreen.DesktopLeft"/>
</seealso>
</element>
<element name="TScreen.GetDesktopLeft.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetDesktopTop">
<short>Gets the value for the DesktopTop property.</short>
<descr/>
<seealso>
<link id="TScreen.DesktopTop"/>
</seealso>
</element>
<element name="TScreen.GetDesktopTop.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetDesktopHeight">
<short>Gets the value for the DesktopHeight property.</short>
<descr/>
<seealso>
<link id="TScreen.DesktopHeight"/>
</seealso>
</element>
<element name="TScreen.GetDesktopHeight.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetDesktopWidth">
<short>Gets the value for the DesktopWidth property.</short>
<descr/>
<seealso>
<link id="TScreen.DesktopWidth"/>
</seealso>
</element>
<element name="TScreen.GetDesktopWidth.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetDesktopRect">
<short>Gets the value for the DesktopRect property.</short>
<descr/>
<seealso>
<link id="TScreen.DesktopRect"/>
</seealso>
</element>
<element name="TScreen.GetDesktopRect.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetFonts">
<short>Gets the value for the Fonts property.</short>
<descr/>
<seealso>
<link id="TScreen.Fonts"/>
</seealso>
</element>
<element name="TScreen.GetFonts.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetFormCount">
<short>Gets the value for the GetFormCount property.</short>
<descr/>
<seealso>
<link id="TScreen.FormCount"/>
</seealso>
</element>
<element name="TScreen.GetFormCount.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetForms">
<short>Gets the value for the indexed Forms property.</short>
<descr/>
<seealso>
<link id="TScreen.Forms"/>
</seealso>
</element>
<element name="TScreen.GetForms.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetForms.Index">
<short>
Ordinal position for the form instance in the property value.
</short>
</element>
<element name="TScreen.GetHeight">
<short>Gets the value for the Height property.</short>
<descr>
<p>
Calls <var>GetSystemMetrics</var> to get the value for the property.
</p>
</descr>
<seealso>
<link id="TScreen.Height"/>
</seealso>
</element>
<element name="TScreen.GetHeight.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetMonitor">
<short>
Gets the value for the indexed Monitors property.
</short>
<descr/>
<seealso>
<link id="TScreen.Monitors"/>
</seealso>
</element>
<element name="TScreen.GetMonitor.Result">
<short>
Value for the indexed Monitors property.
</short>
</element>
<element name="TScreen.GetMonitor.Index">
<short>
Ordinal position for the TMonitor instance in the property value.
</short>
</element>
<element name="TScreen.GetMonitorCount">
<short>
Gets the value for the MonitorCount property.
</short>
<descr/>
<seealso>
<link id="TScreen.MonitorCount"/>
</seealso>
</element>
<element name="TScreen.GetMonitorCount.Result">
<short>
Value for the MonitorCount property.
</short>
</element>
<element name="TScreen.GetPrimaryMonitor">
<short>
Gets the value for the PrimaryMonitor property.
</short>
<descr/>
<seealso>
<link id="TScreen.PrimaryMonitor"/>
</seealso>
</element>
<element name="TScreen.GetPrimaryMonitor.Result">
<short>
Value for the PrimaryMonitor property.
</short>
</element>
<element name="TScreen.GetWidth">
<short>
Gets the value for the Width property.
</short>
<descr/>
<seealso>
<link id="TScreen.Width"/>
</seealso>
</element>
<element name="TScreen.GetWidth.Result">
<short>
Value for the Width property.
</short>
</element>
<element name="TScreen.AddForm">
<short>
Internal notification handler which adds a new form to the list of forms on
the screen.
</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.AddForm.AForm">
<short>Form instance added in the method.</short>
</element>
<element name="TScreen.RemoveForm">
<short>
Internal notification handler which removes the specified form from the form
list.
</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.RemoveForm.AForm">
<short>Form instance removed from the list.</short>
</element>
<element name="TScreen.SetFocusedForm">
<short>
Handles form deactivation and activation changes, and makes the specified
form the FocusedForm on the screen.
</short>
<descr>
<p>
<var>SetFocusedForm</var> ensures that the form in AForm becomes the
<var>FocusedForm</var> in the class instance when needed. No actions are
performed in the method, and the return value is set to <b>True</b>, when
AForm and FocusedForm have the same values.
</p>
<p>
SetFocusedForm sends a CM_DEACTIVATE message to the form instance in
FocusedForm (when assigned).
</p>
<p>
The return value indicates if the focus state has changed during form
deactivation, and may return <b>False</b> if deactivation failed. FocusedForm
is set to <b>Nil</b> if deactivation failed.
</p>
<p>
Otherwise, AForm is saved to the FocusedForm property and a CM_ACTIVATE
message is performed. The return value is <b>False</b> if the activation
failed.
</p>
<p>
SetFocuseForm is called from the <var>SetFocusedControl</var> method in
<var>TCustomForm</var> when a new control becomes focused on a form other
than FocusedForm.
</p>
</descr>
<seealso>
<link id="TScreen.FocusedForm"/>
<link id="TCustomForm.SetFocusedControl"/>
</seealso>
</element>
<element name="TScreen.SetFocusedForm.Result">
<short>
<b>False</b> if activation or deactivation fails. <b>True</b> on success or
when no action is needed.
</short>
</element>
<element name="TScreen.SetFocusedForm.AForm">
<short>
Form instance to become the FocusedForm in the class instance.
</short>
</element>
<element name="TScreen.SetCursor">
<short>
Sets the value for the Cursor property.
</short>
<descr/>
<seealso>
<link id="TScreen.Cursor"/>
</seealso>
</element>
<element name="TScreen.SetCursor.AValue">
<short>
New value for the Cursor property.
</short>
</element>
<element name="TScreen.SetCursors">
<short>
Sets the value for the indexed Cursors property.
</short>
<descr/>
<seealso>
<link id="TScreen.Cursors"/>
</seealso>
</element>
<element name="TScreen.SetCursors.AIndex">
<short>
Ordinal position for the cursor handle stored in the indexed property.
</short>
</element>
<element name="TScreen.SetCursors.AValue">
<short>
New cursor handle stored in the property.
</short>
</element>
<element name="TScreen.SetHintFont">
<short>
Sets the value for the HintFont property.
</short>
<descr/>
<seealso>
<link id="TScreen.HintFont"/>
</seealso>
</element>
<element name="TScreen.SetHintFont.AValue">
<short>
New value for the HintFont property.
</short>
</element>
<element name="TScreen.SetIconFont">
<short>
Sets the value for the IconFont property.
</short>
<descr/>
<seealso>
<link id="TScreen.IconFont"/>
</seealso>
</element>
<element name="TScreen.SetIconFont.AValue">
<short>
New value for the IconFont property.
</short>
</element>
<element name="TScreen.SetMenuFont">
<short>
Sets the value for the MenuFont property.
</short>
<descr/>
<seealso>
<link id="TScreen.MenuFont"/>
</seealso>
</element>
<element name="TScreen.SetMenuFont.AValue">
<short>
New value for the MenuFont property.
</short>
</element>
<element name="TScreen.SetSystemFont">
<short>
Sets the value for the SystemFont property.
</short>
<descr/>
<seealso>
<link id="TScreen.SystemFont"/>
</seealso>
</element>
<element name="TScreen.SetSystemFont.AValue">
<short>
New value for the SystemFont property.
</short>
</element>
<element name="TScreen.UpdateLastActive">
<short>
Stores the currently active form and control in the last active members.
Notifies all registered handlers of changes.
</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.RestoreLastActive">
<short>
Moves the Focus back to the previously focused control.
</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.AddHandler">
<short>
Adds a handler routine to the list for the specified handler type.
</short>
<descr>
<p>
<var>AddHandler</var> is a procedure used to add a screen notification
handler to the list of handlers in the TScreen instance.
</p>
<p>
<var>HandlerType</var> is a <var>TScreenNotification</var> enumeration value
that defines the situation(s) where the screen handler can be executed. See
TScreenNotification for more information about values in the enumeration.
</p>
<p>
<var>Handler</var> is a <var>TMethod</var> record with pointers to the code
and optional data executed when the handler is invoked.
</p>
<p>
<var>AsFirst</var> indicates if the handler should be inserted as the initial
handler in the method list (when <b>True</b>), or appended to the end of the
list (when <b>False</b>).
</p>
<p>
AddHandler calls <var>RaiseGDBException</var> to raise an exception when the
pointer to the Code in Handler has not been assigned.
</p>
<p>
AddHandler ensures that a <var>TMethodList</var> exists for handlers using
the value in HandlerType, and calls the <var>Add</var> method in the
<var>TMethodList</var> to store the Handler at the position needed for
AsFirst.
</p>
<p>
AddHandler is called from the implementation of more specialized methods like
AddHandlerFormAdded, AddHandlerRemoveForm, AddHandlerActiveControlChanged,
AddHandlerActiveFormChanged, and AddHandlerFormVisibleChanged.
</p>
</descr>
<seealso>
<link id="TScreen.AddHandlerFormAdded"/>
<link id="TScreen.AddHandlerActiveControlChanged"/>
<link id="TScreen.AddHandlerActiveFormChanged"/>
<link id="TScreen.AddHandlerFormVisibleChanged"/>
<link id="TScreen.AddHandlerRemoveForm"/>
<link id="TScreenNotification"/>
</seealso>
</element>
<element name="TScreen.AddHandler.HandlerType">
<short>The handler type where the routine is stored.</short>
</element>
<element name="TScreen.AddHandler.Handler">
<short>The handler routine added in the method.</short>
</element>
<element name="TScreen.AddHandler.AsFirst">
<short>
Add the handler as the first (True) or last (False) handler in the internal
list.
</short>
</element>
<element name="TScreen.RemoveHandler">
<short>
Removes a screen notification handler using the specified type.
</short>
<descr/>
<seealso>
<link id="TScreenNotificationAddHandler"/>
</seealso>
</element>
<element name="TScreen.RemoveHandler.HandlerType">
<short>The screen notification (event) type.</short>
</element>
<element name="TScreen.RemoveHandler.Handler">
<short>The screen notification handler removed in the method.</short>
</element>
<element name="TScreen.DoAddDataModule">
<short>
Adds the specified data module to the internal list for the screen.
</short>
<descr/>
<seealso>
<link id="TScreen.DataModules"/>
</seealso>
</element>
<element name="TScreen.DoAddDataModule.DataModule">
<short>Data module instance added in the method.</short>
</element>
<element name="TScreen.DoRemoveDataModule">
<short>Removes the specified data module from the internal list.</short>
<descr/>
<seealso>
<link id="TScreen.DataModules"/>
</seealso>
</element>
<element name="TScreen.DoRemoveDataModule.DataModule">
<short>Data module removed in the method.</short>
</element>
<element name="TScreen.NotifyScreenFormHandler">
<short>
Notifies all registered handlers for the given event type.
</short>
<descr>
<p>
<var>NotifyScreenFormHandler</var> retrieves the internal
<var>TMethodList</var> instance used for handler routines with the type
specified in <var>HandlerType</var>. Each of the <var>TScreenFormEvent</var>
instances is signalled using the current class (Self) and Form as arguments.
</p>
<p>
NotifyScreenFormHandler is called from methods in TScreen like AddForm,
RemoveForm, and UpdateLastActive. It is also called (via the Screen
singleton) from the VisibleChanged method in TCustomForm.
</p>
</descr>
<seealso>
<link id="TScreen.AddForm"/>
<link id="TScreen.RemoveForm"/>
<link id="TScreen.UpdateLastActive"/>
<link id="TCustomForm.VisibleChanged"/>
<link id="TScreenFormEvent"/>
<link id="TScreenNotification"/>
<link id="#lazutils.lazmethodlist.TMethodList">TMethodList</link>
</seealso>
</element>
<element name="TScreen.NotifyScreenFormHandler.HandlerType">
<short>Form event type for the notification.</short>
</element>
<element name="TScreen.NotifyScreenFormHandler.Form">
<short>Form instance for the notification.</short>
</element>
<element name="TScreen.GetWorkAreaHeight">
<short>
Gets the value for the WorkAreaHeight property.
</short>
<descr/>
<seealso>
<link id="TScreen.WorkAreaHeight"/>
</seealso>
</element>
<element name="TScreen.GetWorkAreaHeight.Result">
<short>
Value for the WorkAreaHeight property.
</short>
</element>
<element name="TScreen.GetWorkAreaLeft">
<short>
Gets the value for the WorkAreaLeft property.
</short>
<descr/>
<seealso>
<link id="TScreen.WorkAreaLeft"/>
</seealso>
</element>
<element name="TScreen.GetWorkAreaLeft.Result">
<short>
Value for the WorkAreaLeft property.
</short>
</element>
<element name="TScreen.GetWorkAreaRect">
<short>
Gets the value for the WorkAreaRect property.
</short>
<descr/>
<seealso>
<link id="TScreen.WorkAreaRect"/>
</seealso>
</element>
<element name="TScreen.GetWorkAreaRect.Result">
<short>
Value for the WorkAreaRect property.
</short>
</element>
<element name="TScreen.GetWorkAreaTop">
<short>
Gets the value for the WorkAreaTop property.
</short>
<descr/>
<seealso>
<link id="TScreen.WorkAreaTop"/>
</seealso>
</element>
<element name="TScreen.GetWorkAreaTop.Result">
<short>
Value for the WorkAreaTop property.
</short>
</element>
<element name="TScreen.GetWorkAreaWidth">
<short>
Gets the value for the WorkAreaWidth property.
</short>
<descr/>
<seealso>
<link id="TScreen.WorkAreaWidth"/>
</seealso>
</element>
<element name="TScreen.GetWorkAreaWidth.Result">
<short>
Value for the WorkAreaWidth property.
</short>
</element>
<element name="TScreen.GetHintFont">
<short>Gets the value for the HintFont property.</short>
<descr>
<p>
Ensures that a TFont instance exists for the member, that it has been
initialized to the stock hint font for the WidgetSet class, or uses the
default font and the color in clInfoText.
</p>
</descr>
<seealso>
<link id="TScreen.HintFont"/>
</seealso>
</element>
<element name="TScreen.GetHintFont.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetIconFont">
<short>Gets the value for the IconFont property.</short>
<descr>
<p>
Ensures that a TFont instance exists for the member, that it has been
initialized to the stock icon font for the WidgetSet class, or uses the
default font and the color in clDefault or clWindowText (depends on the
UseCLDefault define for the platform).
</p>
</descr>
<seealso>
<link id="TScreen.IconFont"/>
</seealso>
</element>
<element name="TScreen.GetIconFont.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetMenuFont">
<short>Gets the value for the MenuFont property.</short>
<descr/>
<seealso>
<link id="TScreen.MenuFont"/>
</seealso>
</element>
<element name="TScreen.GetMenuFont.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.GetSystemFont">
<short>Gets the value for the SystemFont property.</short>
<descr/>
<seealso>
<link id="TScreen.SystemFont"/>
</seealso>
</element>
<element name="TScreen.GetSystemFont.Result">
<short>Value for the property.</short>
</element>
<element name="TScreen.Notification">
<short>
Performs actions when the specified component is added to or removed from the
class instance.
</short>
<descr>
<p>
<var>Notification</var> is an overridden method used to perform actions needed
when a component is added to or removed from the class instance. It calls the
inherited method on entry to remove the free notification for the component
and to signal the Notification method for any child components. In TScreen, it
ensures that an internal member used to track the value in ActiveControl or
ActiveCustomForm is <b>Nil</b>'d when AComponent is removed and it is stored
in one of the members.
</p>
</descr>
<seealso>
<link id="TScreen.ActiveControl"/>
<link id="TScreen.ActiveCustomForm"/>
<link id="#rtl.classes.TComponent">TComponent</link>
<link id="#rtl.classes.TComponent.Components">TComponent.Components</link>
</seealso>
</element>
<element name="TScreen.Notification.AComponent">
<short>
Component added or removed in the notification.
</short>
</element>
<element name="TScreen.Notification.Operation">
<short>
Operation performed for the specified component.
</short>
</element>
<element name="TScreen.MagnetManager">
<short>
Manages screen / form snapping behavior for the screen.
</short>
<descr>
<p>
<var>MagnetManager</var> is a read-only <var>TWindowMagnetManager</var>
property with the class used to manage magnetic window snapping behavior in an
application. It is initialized in the Create constructor, and is enabled in
the application by default.
</p>
<p>
MagnetManager is used when a TForm instance receives and handles a
TLMWindowPosChanging (WMWindowPosChanging) message. Its SnapForm method is
called to adjust the window position when the form instance is close enough to
an edge that the snapping behavior is engaged.
</p>
<remark>
In the current LCL release, the LM_WINDOWPOSCHANGING message is dispatched for
the Windows platform only. None of the other widgetsets checked for or apply
the message.
</remark>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TWindowMagnetManager"/>
<link id="TCustomForm.WMWindowPosChanging"/>
<link id="#lcl.lmessages.TLMWindowPosChanging">TLMWindowPosChanging</link>
</seealso>
</element>
<element name="TScreen.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance, and
calls the inherited method on entry.
</p>
<p>
Create allocates resources needed for properties, including: Fonts, Monitors,
CustomForms, CustomFormsZOrdered, MagnetManager, and DataModules. Resources
for internal members are also allocated.
</p>
<p>
Create gets the default value used for the PixelsPerInch property from the
ScreenInfo variable in the LCL interface.
</p>
<p>
Create assigns methods in the class instance as the routines used by the
Lazarus IDE to provide support for data modules. Create assigns the routine
used to get system fonts for the application.
</p>
</descr>
<seealso>
<link id="TScreen.Destroy"/>
</seealso>
</element>
<element name="TScreen.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TScreen.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy ensures that screen handlers registered using <var>AddHandler</var>
are freed. Destroy also frees resource allocated for the class instance in
the <var>Create</var> constructor. It calls the inherited method prior to
exit.
</p>
</descr>
<seealso>
<link id="TScreen.Create"/>
</seealso>
</element>
<element name="TScreen.CustomFormIndex">
<short>
Gets the ordinal position in CustomForms for the requested form.
</short>
<descr>
<p>
<var>CustomFormIndex</var> is an <var>Integer</var> function used to get the
position in <var>CustomForms</var> for the specified <var>TCustomForm</var>
instance. It iterates over the values in CustomForms in reverse order. The
return value contains the ordinal position in CustomForms where the
TCustomForm instance in <var>AForm</var> was found, or -1 when AForm does not
exist in CustomForms.
</p>
<p>
Use the <var>FormIndex</var> method to locate a form instance derived from
<var>TForm</var> in the <var>Forms</var> property.
</p>
</descr>
<seealso>
<link id="TScreen.CustomForms"/>
<link id="TScreen.Forms"/>
<link id="TScreen.FormIndex"/>
</seealso>
</element>
<element name="TScreen.CustomFormIndex.Result">
<short>
The ordinal position for the form in CustomForms, or -1 when not found.
</short>
</element>
<element name="TScreen.CustomFormIndex.AForm">
<short>The form instance to locate in CustomForms.</short>
</element>
<element name="TScreen.FormIndex">
<short>
Gets the ordinal position in Forms for the requested form.
</short>
<descr>
<p>
<var>FormIndex</var> is an <var>Integer</var> function used to get the
position in <var>Forms</var> where the specified <var>TForm</var> instance in
located. It iterates over the values in Forms in reverse order. The return
value contains the ordinal position in Forms where the TForm instance in
<var>AForm</var> was found, or -1 when AForm does not exist in Forms.
</p>
<p>
Use the <var>CustomFormIndex</var> method to locate a form instance derived
from <var>TCustomForm</var> in the <var>CustomForms</var> property.
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.FormIndex.Result">
<short>
Ordinal position in Forms for the TForm instance, or -1 when not found.
</short>
</element>
<element name="TScreen.FormIndex.AForm">
<short>The TForm instance to locate in Forms.</short>
</element>
<element name="TScreen.CustomFormZIndex">
<short>
Gets the position in CustomFormsZOrdered for the specified form.
</short>
<descr>
<p>
The return value contains the z-order for the specified form, with the
currently active form at index position zero (<b>0</b>).
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.CustomFormZIndex.Result">
<short>
Position for the specified form in the Z-Order for the screen. 0 if the form
is at the top of the Z-Order.
</short>
</element>
<element name="TScreen.CustomFormZIndex.AForm">
<short>Form instance to locate in CustomFormsZOrdered.</short>
</element>
<element name="TScreen.MoveFormToFocusFront">
<short>Moves the specified form to the front of all other forms.</short>
<descr>
<p>
<var>MoveFormToFocusFront</var> is a method used to move the form specified
in <var>ACustomForm</var> to the top of the Z-order. This means that it
appears on top of all other visible forms for the application.
</p>
<p>
MoveFormToFocusFront is called when the focused control is changed in the
<var>TCustomForm</var> instance. It is also called from the
<var>ShowModal</var> method in TCustomForm.
</p>
<p>
It ensures that ACustomForm is moved to the first position in
<var>CustomForms</var> (the top of the Z-order). When ACustomForm is a
<var>TForm</var> instance, it is also moved to the first position in the
<var>Forms</var> property. Calls <var>MoveFormToZFront</var> to ensure that
the form is moved to the first position in the <var>CustomFormsZOrdered</var>
property.
</p>
</descr>
<errors>
Raises a catchable GDB exception if the form or screen classes are being
destroyed, or when ACustomForm is not assigned or not present in the
CustomForms property.
</errors>
<seealso/>
</element>
<element name="TScreen.MoveFormToFocusFront.ACustomForm">
<short>Form instance to move to the top of the Z-order.</short>
</element>
<element name="TScreen.MoveFormToZFront">
<short>
Moves the form to the front of the Z-order in the CustomFormsZOrdered
property.
</short>
<descr>
<p>
<var>MoveFormToZFront</var> is a method used to ensure that the form in
<var>ACustomForm</var> is at the top of the Z-order in the
<var>CustomFormsZOrdered</var> property. MoveFormToZFront is called from the
<var>MoveFormToFocusFront</var> method.
</p>
</descr>
<errors>
Raises a GDB exception when the form is being destroyed, or the application
is shutting down.
</errors>
<seealso>
<link id="TScreen.MoveFormToFocusFront"/>
</seealso>
</element>
<element name="TScreen.MoveFormToZFront.ACustomForm">
<short>Form instance to move to the top of the Z-order.</short>
</element>
<element name="TScreen.NewFormWasCreated">
<short>
Notifies handler(s) when a new form is created for the TScreen instance.
</short>
<descr>
<p>
<var>NewFormWasCreated</var> is method which notifies form handlers for the
<var>TScreen</var> instance when a new form instance is created. It calls the
NotifyScreenFormHandler method using the handler type for the notification and
the TCustomForm instance in <var>AForm</var> as arguments. The screen form
event is signalled for all registered handlers which use the snNewFormCreated
screen notification type.
</p>
<p>
NewFormWasCreated is called at design-time from the source file manager in the
Lazarus IDE. It is called immediately after a new form or datamodule type is
created and added to the active project in the IDE. NewFormWasCreated is not
called at run-time in the LCL, and has no relationship to when an instance of
a form type is created in an application.
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TScreen.NewFormWasCreated"/>
<link id="TScreenNotification"/>
<link id="TCustomForm"/>
</seealso>
</element>
<element name="TScreen.NewFormWasCreated.AForm">
<short>
Form instance that was created on the screen.
</short>
</element>
<element name="TScreen.GetCurrentModalForm">
<short>
Returns the Modal form at the top of the Z-order for the screen.
</short>
<descr>
<p>
Calls <var>GetCurrentModalFormZIndex</var> to find the first form instance in
<var>CustomFormsZOrdered</var> with the value <var>fsModal</var> in its
<var>FormState</var> property.
</p>
</descr>
<seealso>
<link id="TCustomForm.FormState"/>
<link id="TFormState"/>
</seealso>
</element>
<element name="TScreen.GetCurrentModalForm.Result">
<short>The modal form, or Nil if a modal form is not active.</short>
</element>
<element name="TScreen.GetCurrentModalFormZIndex">
<short>
Returns the index of the top-most modal form in CustomFormsZOrdered.
</short>
<descr>
<p>
Visits the form instances in <var>CustomFormsZOrdered</var> to find the first
<var>TCustomForm</var> instance with the value <var>fsModal</var> in its
<var>FormState</var> property.
</p>
<p>
Returns <b>-1</b> if a modal form is not found in the CustomFormsZOrdered
property.
</p>
<p>
Called from the <var>GetCurrentModalForm</var> method.
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.GetCurrentModalFormZIndex.Result">
<short>The index for the form, or -1 if no modal form is active.</short>
</element>
<element name="TScreen.CustomFormBelongsToActiveGroup">
<short>
Checks whether the specified form is present in the Z-ordered list of forms.
</short>
<descr>
<p>
The return value is <b>True</b> when <var>ACustomForm</var> is found in the
<var>CustomFormsZOrdered</var> property and is not displayed as a modal form
(<var>FormState</var> contains <var>fsModal</var>). The return value is
<b>False</b> if ACustomForm is not found in CustomFormsZOrdered.
</p>
<p>
Used in widgetset classes to determine if a form is used and enabled on the
screen.
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.CustomFormBelongsToActiveGroup.Result">
<short><b>True</b> if the form is used on the screen.</short>
</element>
<element name="TScreen.CustomFormBelongsToActiveGroup.AForm">
<short>Form instance to locate in the Z-ordered forms for the screen.</short>
</element>
<element name="TScreen.FindNonDesignerForm">
<short>
Finds the form with the specified name, excluding designer forms.
</short>
<descr>
<p>
Used when an Application loads its components using the LCL streaming
mechanism. Ignores the designer forms and data modules (where ComponentState
contains csDesigning) handled by the Lazarus IDE.
</p>
</descr>
<seealso>
<link id="TScreen.FindForm"/>
</seealso>
</element>
<element name="TScreen.FindNonDesignerForm.Result">
<short>
Application form instance in CustomForms with the specified name, or Nil.
</short>
</element>
<element name="TScreen.FindNonDesignerForm.FormName">
<short>Name of the form to locate in the method.</short>
</element>
<element name="TScreen.FindForm">
<short>Finds a form on the screen by its name.</short>
<descr>
<p>
Visits the form instances in the CustomForms property, and compares the text
in the Name properties to the value in FormName. CompareText is called to
perform a case-insensitive comparison for the values.
</p>
<p>
The return value is the TCustomForm instance which matches the name in
FormName, or Nil when CustomFormCount is 0 or FormName is not found in
CustomForms.
</p>
</descr>
<seealso>
<link id="TScreen.FindNonDesignerForm"/>
</seealso>
</element>
<element name="TScreen.FindForm.Result">
<short>Form instance with the specified name, or Nil.</short>
</element>
<element name="TScreen.FindForm.FormName">
<short>Name for the form to locate in the method.</short>
</element>
<element name="TScreen.FindNonDesignerDataModule">
<short>
Finds a data module with the specified name, excluding designer data modules.
</short>
<descr>
<p>
Visits the data module instances in the internal list, and compares the Name
property for the TDataModule instances to the value in DataModuleName.
CompareText text is called to perform a case-insensitive comparison for the
values. TDataModule instances with csDesigning in the ComponentState property
are ignored; these are design-time data modules used by the Lazarus IDE.
</p>
<p>
The return value contains the TDataModule instance with the name in
DataModuleName, or Nil when the data module list is empty or the name in
DataModuleName is not found in the list.
</p>
<p>
Used when an Application loads its components using the LCL streaming
mechanism. Ignores the designer forms and data modules (where ComponentState
contains csDesigning) handled by the Lazarus IDE.
</p>
</descr>
<seealso>
<link id="TScreen.FindDataModule"/>
</seealso>
</element>
<element name="TScreen.FindNonDesignerDataModule.Result">
<short>Data module with the specified name, or Nil.</short>
</element>
<element name="TScreen.FindNonDesignerDataModule.DataModuleName">
<short>Name of the data module to locate in the method.</short>
</element>
<element name="TScreen.FindDataModule">
<short>Finds the data module with the specified name.</short>
<descr>
<p>
<var>FindDataModule</var> is a <var>TDataModule</var> function used to get
the data module with the name specified in <var>DataModuleName</var>.
</p>
<p>
FindDataModule visits each of the data modules in the internal list to find
the TDataModule instance with the specified name in its <var>Name</var>
property. <var>CompareText</var> is called to perform a case-insensitive
comparison for the values.
</p>
<p>
The return value is the TDataModule instance with the name in DataModuleName,
or <b>Nil</b> when the internal list is empty or DataModuleName is not found
in the list.
</p>
</descr>
<seealso>
<link id="TScreen.FindNonDesignerDataModule"/>
</seealso>
</element>
<element name="TScreen.FindDataModule.Result">
<short>TDataModule instance with the specified name, or Nil.</short>
</element>
<element name="TScreen.FindDataModule.DataModuleName">
<short>Name for the data module to locate in the method.</short>
</element>
<element name="TScreen.UpdateMonitors">
<short>Rebuilds the list of available monitors.</short>
<descr>
<p>
Calls <var>DestroyMonitors</var> to clear existing <var>TMonitor</var>
instances in the <var>Monitors</var> property. Calls
<var>EnumDisplayMonitors</var> in the LCL interface to create and store
TMonitor instances in the Monitors property.
</p>
<p>
UpdateMonitors is called when the private <var>UpdatedMonitor</var> function
needs to access information for a monitor using its <var>Handle</var>. It is
also called when the value for the <var>Monitor</var> or
<var>MonitorCount</var> property is read.
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.UpdateScreen">
<short>Updates the value for the PixelsPerInch property.</short>
<descr>
<p>
Updates the value for the <var>PixelsPerInch</var> property from the
ScreenInfo in the LCL interface.
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.RemoveAllHandlersOfObject">
<short>
Removes all handler routines for the specified object regardless of
notification type.
</short>
<descr>
<p>
<var>RemoveAllHandlersOfObject</var> is a method used to remove all handler
routines for the specified object, regardless of the
<var>TScreenNotification</var> type. RemoveAllHandlersOfObject iterates over
the method lists in the internal array, and calls the
<var>RemoveAllMethodsOfObject</var> method for the object instance specified
in <var>AnObject</var>. It calls the virtual inherited method prior to exit.
</p>
<p>
Called when the Lazarus IDE is terminated.
</p>
</descr>
<seealso>
<link id="TScreenNotification"/>
<link id="#lazutils.lazmethodlist.TMethodList.RemoveAllMethodsOfObject">TMethodList.RemoveAllMethodsOfObject</link>
<link id="#lcl.lclclasses.TLCLComponent.RemoveAllHandlersOfObject">TLCLComponent.RemoveAllHandlersOfObject</link>
</seealso>
</element>
<element name="TScreen.RemoveAllHandlersOfObject.AnObject">
<short>
Object instance with the handlers removed in the method.
</short>
</element>
<element name="TScreen.AddHandlerNewFormCreated">
<short>
Adds the specified handler routine to the new form handlers for the screen
instance.
</short>
<descr>
<p>
<var>AddHandlerNewFormCreated</var> calls an internal method which adds the
form handler routine in <var>OnNewFormCreated</var> to the list of handlers
for the <var>snNewFormCreated</var> notification type. OnNewFormCreated is an
implementation of TScreenFormEvent which provides access to the screen and
form instances for the notification event. <var>AsFirst</var> indicates
whether the handler is inserted at the beginning of the list (<b>True</b>) or
appended to the end of the list (<b>False</b>). The default value for the
AsFirst parameter is <b>False</b>.
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TScreen.RemoveHandlerNewFormCreated"/>
<link id="TScreenNotification"/>
<link id="TScreenFormEvent"/>
</seealso>
</element>
<element name="TScreen.AddHandlerNewFormCreated.OnNewFormCreated">
<short>
Handler routine added to the internal new screen form handlers for the TScreen
instance.
</short>
</element>
<element name="TScreen.AddHandlerNewFormCreated.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first handler for the type.
<b>False</b> if the routine is append to the end of the list for the handler
type.
</short>
</element>
<element name="TScreen.RemoveHandlerNewFormCreated">
<short>
Removes the specified handler routine from the new form handlers for the
screen instance.
</short>
<descr>
<p>
<var>RemoveHandlerNewFormCreated</var> calls the internal method used to
remove the form handler routine in <var>OnNewFormCreated</var> from the list
of handlers for the snNewFormCreated notification type.
</p>
</descr><version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TScreen.AddHandlerNewFormCreated"/>
<link id="TScreenNotification"/>
<link id="TScreenFormEvent"/>
</seealso>
</element>
<element name="TScreen.RemoveHandlerNewFormCreated.OnNewFormCreated">
<short>
Handler routine removed from the internal new form handlers for the screen
instance.
</short>
</element>
<element name="TScreen.AddHandlerFormAdded">
<short>
Adds a form added notification handler to the class instance.
</short>
<descr/>
<seealso>
<link id="TScreen.RemoveHandlerFormAdded"/>
<link id="TScreenFormEvent"/>
</seealso>
</element>
<element name="TScreen.AddHandlerFormAdded.OnFormAdded">
<short>Routine added as the form added notification handler.</short>
</element>
<element name="TScreen.AddHandlerFormAdded.AsFirst">
<short>
<b>True</b> when OnFormAdded should be the first entry in the list of
handlers for the type.
</short>
</element>
<element name="TScreen.RemoveHandlerFormAdded">
<short>Removes a form added notification handler.</short>
<descr/>
<seealso>
<link id="TScreen.AddHandlerFormAdded"/>
<link id="TScreenFormEvent"/>
</seealso>
</element>
<element name="TScreen.RemoveHandlerFormAdded.OnFormAdded">
<short>Form added handler removed in the method.</short>
</element>
<element name="TScreen.AddHandlerRemoveForm">
<short>Adds a form removed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.AddHandlerRemoveForm.OnRemoveForm">
<short>Form remove handler added in the method.</short>
</element>
<element name="TScreen.AddHandlerRemoveForm.AsFirst">
<short>
<b>True</b> if the handler should be stored as the first routine for the type.
</short>
</element>
<element name="TScreen.RemoveHandlerRemoveForm">
<short>Removes a from removed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.RemoveHandlerRemoveForm.OnRemoveForm">
<short>Form remove handler routine removed in the method.</short>
</element>
<element name="TScreen.AddHandlerActiveControlChanged">
<short>Adds a control changed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.AddHandlerActiveControlChanged.OnActiveControlChanged">
<short>
Active control changed notification handler added in the method.
</short>
</element>
<element name="TScreen.AddHandlerActiveControlChanged.AsFirst">
<short>
<b>True</b> if the handler should be the first in the list for the type.
</short>
</element>
<element name="TScreen.RemoveHandlerActiveControlChanged">
<short>Removes a control changed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.RemoveHandlerActiveControlChanged.OnActiveControlChanged">
<short>Active control changed handler removed in the method.</short>
</element>
<element name="TScreen.AddHandlerActiveFormChanged">
<short>Adds a form changed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.AddHandlerActiveFormChanged.OnActiveFormChanged">
<short>Active form changed handler added in the method.</short>
</element>
<element name="TScreen.AddHandlerActiveFormChanged.AsFirst">
<short>
<b>True</b> if the handler should be the first in the list for the type.
</short>
</element>
<element name="TScreen.RemoveHandlerActiveFormChanged">
<short>Removes a form changed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.RemoveHandlerActiveFormChanged.OnActiveFormChanged">
<short>Active form changed handler removed in the method.</short>
</element>
<element name="TScreen.AddHandlerFormVisibleChanged">
<short>Adds a visible changed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.AddHandlerFormVisibleChanged.OnFormVisibleChanged">
<short>Form visible changed handler added in the method.</short>
</element>
<element name="TScreen.AddHandlerFormVisibleChanged.AsFirst">
<short>
<b>True</b> if the handler should be the first in the list for the type.
</short>
</element>
<element name="TScreen.RemoveHandlerFormVisibleChanged">
<short>Removes a visible changed notification handler.</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.RemoveHandlerFormVisibleChanged.OnFormVisibleChanged">
<short>From visible changed handler removed in the method.</short>
</element>
<element name="TScreen.DisableForms">
<short>
Disables all forms except for <var>SkipForm</var>.
</short>
<descr>
<p>
Used to disable forms when a modal form or dialog is displayed.
</p>
<p>
The enabled state for forms is determined by the widgetset class, and not
from LCL properties. If <var>DisabledList</var> is Nil, a new list is
created. All forms disabled in the method are added to the list. When the
modal form returns, EnableForms is called to restore the list of forms
disabled in the method.
</p>
</descr>
<seealso>
<link id="TScreen.EnableForms"/>
</seealso>
</element>
<element name="TScreen.DisableForms.Result">
<short>The list containing all disabled forms.</short>
</element>
<element name="TScreen.DisableForms.SkipForm">
<short>Don't disable this form (ignored if Nil).</short>
</element>
<element name="TScreen.DisableForms.DisabledList">
<short>The list to update. If Nil, a new list is created and returned.</short>
</element>
<element name="TScreen.EnableForms">
<short>
Re-enables forms disabled in the DisableForms method.
</short>
<descr>
<p>
Use this method to restore all <link id="TScreen.DisableForms">previously
disabled</link> forms.
</p>
</descr>
<seealso>
<link id="TScreen.DisableForms"/>
</seealso>
</element>
<element name="TScreen.EnableForms.AFormList">
<short>
The list containing the forms to enable. The list is destroyed on exit.
</short>
</element>
<element name="TScreen.MonitorFromPoint">
<short>
Finds the monitor containing the given screen coordinates.
</short>
<descr>
<p>
<var>MonitorFromPoint</var> is a <var>TMonitor</var> function used to get the
monitor with the coordinates in the <var>Point</var> argument.
</p>
<p>
<var>MonitorDefault</var> is a <var>TMonitorDefaultTo</var> enumeration value
which indicates which monitor to use when the coordinates in Point cannot be
located on a screen. See TMonitorDefaultTo for more information about the
enumeration values and their meanings.
</p>
<p>
MonitorFromPoint calls the corresponding method in the widgetset class to get
the <var>Handle</var> for the monitor. Values in the <var>Monitors</var>
property are checked for the Handle, and the return value is set to the
TMonitor instance with the given Handle.
</p>
<p>
If the Handle is <b>-1</b> (<var>MONITOR_UNIMPL</var>), the
<var>MonitorFromRect</var> method is called to locate a monitor with the
origin in Point. Otherwise, the values in Monitors are refreshed to ensure
that existing monitors and their handles are up-to-date in the class instance.
</p>
<p>
MonitorFromPoint is called from the <var>GetMonitor</var> method in
<var>TCustomForm</var>, and the <var>AdjustBoundsForMonitor</var> method in
<var>THintWindow</var>.
</p>
</descr>
<seealso>
<link id="TScreen.MonitorFromRect"/>
</seealso>
</element>
<element name="TScreen.MonitorFromPoint.Result">
<short>The monitor where the coordinates are located.</short>
</element>
<element name="TScreen.MonitorFromPoint.Point">
<short>The screen coordinates used to find a monitor.</short>
</element>
<element name="TScreen.MonitorFromPoint.MonitorDefault">
<short>
Monitor returned when the coordinates are not found on a monitor.
</short>
</element>
<element name="TScreen.MonitorFromRect">
<short>
Finds the monitor where the specified rectangle is located.
</short>
<descr>
<p>
<var>MonitorFromRect</var> is a <var>TMonitor</var> function used to get the
monitor where the coordinates in the specified rectangle are located.
</p>
<p>
<var>MonitorDefault</var> is a <var>TMonitorDefaultTo</var> enumeration value
which indicates the monitor used when the coordinates in Rect are not found
on a monitor. See TMonitorDefaultTo for more information about the values in
the enumeration and their meanings.
</p>
<p>
MonitorFromRect calls the corresponding method in the widgetset class to get
the <var>Handle</var> for the monitor where <var>Rect</var> is located. It
searches <var>Monitors</var> for the <var>TMonitor</var> instance with the
Handle value, and uses the TMonitor instance when the Handle is found. The
<var>UpdatedMonitor</var> method is called to ensure that the value in
Monitors are up-to-date.
</p>
<p>
When the Handle contains <b>-1</b> (<var>MONITOR_UNIMPL</var>), the value in
MonitorDefault us used to locate a monitor which intersects the coordinates
in Rect. The return value is set to the TMonitor instance in Monitors which
corresponds to the value in MonitorDefault. If a monitor is not found, the
return value is set to PrimaryMonitor or the closest match as needed for
MonitorDefault.
</p>
</descr>
<seealso>
<link id="TScreen.MonitorFromPoint"/>
</seealso>
</element>
<element name="TScreen.MonitorFromRect.Result">
<short>The TMonitor instance where the rectangle is located.</short>
</element>
<element name="TScreen.MonitorFromRect.Rect">
<short>Rectangle with the screen coordinates to locate in the method.</short>
</element>
<element name="TScreen.MonitorFromRect.MonitorDefault">
<short>
Monitor use when the specified rectangle is not found on a monitor.
</short>
</element>
<element name="TScreen.MonitorFromWindow">
<short>
Finds the monitor containing the form with the given window handle.
</short>
<descr>
<p>
MonitorFromWindow is a TMonitor function used to locate the monitor where the
form represented by the specified window Handle is displayed.
</p>
<p>
<var>MonitorDefault</var> is a <var>TMonitorDefaultTo</var> enumeration value
which indicates the monitor used when the display area for the form is not
found on a monitor.
See <link id="TMonitorDefaultTo">TMonitorDefaultTo</link> for more
information about the values in the enumeration and their meanings.
</p>
<p>
MonitorFromWindow calls the MonitorFromWindow routine in the LCL interface to
get the HMONITOR handle to locate in the Monitors property. The
UpdatedMonitors method is called to ensure that Monitors contains up-to-date
values for the available monitors.
</p>
<p>
If the handle is found in Monitors, the TMonitor instance with the handle is
used as the return value.
</p>
<p>
If a monitor is not found, GetWindowRect is called to get the display area for
the TLCLHandle specified in the Handle argument. MonitorFromRect is called to
locate the monitor which contains the rectangle. The TMonitor instance is used
as the return value.
</p>
<p>
MonitorFromWindow is called from methods like TCustomForm.GetMonitor.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Handle parameter.
</version>
<seealso>
<link id="TMonitor.Handle"/>
<link id="TMonitorDefaultTo"/>
<link id="#lcl.lcltype.TLCLHandle">TLCLHandle</link>
<link id="#lcl.lcltype.HMONITOR">HMONITOR</link>
</seealso>
</element>
<element name="TScreen.MonitorFromWindow.Result">
<short>The TMonitor instance found for the specified handle.</short>
</element>
<element name="TScreen.MonitorFromWindow.Handle">
<short>The TLCLHandle instance on the monitor located in the method.</short>
</element>
<element name="TScreen.MonitorFromWindow.MonitorDefault">
<short>What to return if a monitor was found.</short>
</element>
<element name="TScreen.BeginTempCursor">
<short>
Sets the Cursor property to a temporary shape. Use EndTempCursor to release
it.
</short>
<descr>
<p>
<var>BeginTempCursor</var> is a method used to change the mouse cursor shape
to the temporary cursor in the <var>ACursor</var> argument. It adds the value
in ACursor to an internal list of temporary cursors. The cursor shape is
removed when the <var>EndTempCursor</var> method is called.
</p>
<p>
BeginTempCursor calls <var>SetCursor</var> in the widgetset class to change
the mouse cursor shape to the value in <var>Cursors</var> stored at the index
in ACursor.
</p>
<p>
Use EndTempCursor to remove a given cursor shape, and restore the mouse
cursor to a previous value.
</p>
</descr>
<seealso>
<link id="TScreen.EndTempCursor"/>
<link id="TScreen.BeginScreenCursor"/>
<link id="TScreen.EndScreenCursor"/>
<link id="TScreen.BeginWaitCursor"/>
<link id="TScreen.EndWaitCursor"/>
<link id="TScreen.Cursors"/>
<link id="#lcl.controls.TCursor">TCursor</link>
</seealso>
</element>
<element name="TScreen.BeginTempCursor.aCursor">
<short>
Identifies the temporary mouse cursor shape to apply to the screen.
</short>
</element>
<element name="TScreen.EndTempCursor">
<short>Releases a temporary mouse cursor set with BeginTempCursor.</short>
<descr>
<p>
<var>EndTempCursor</var> is a method used to release the temporary cursor
shape in <var>ACursor</var>. It removes the value from the internal list of
temporary cursors updated in the <var>BeginTempCursor</var> method. Only the
cursor shape in ACursor is removed from the list; other values are left
intact.
</p>
<p>
EndTempCursor calls <var>SetCursor</var> in the widgetset class to apply the
cursor shape in <var>RealCursor</var>.
</p>
<p>
An <var>Exception</var> is raised with the message 'Unbalanced
BeginTempCursor/EndTempCursor calls for cursor' if ACursor is not found in
the list of temporary cursors.
</p>
<p>
Use BeginTempCursor to display and store a temporary mouse cursor shape.
</p>
</descr>
<errors>
Raises an Exception with the message 'Unbalanced
BeginTempCursor/EndTempCursor calls for cursor' if ACursor is not found in
the list of temporary cursors.
</errors>
<seealso>
<link id="TScreen.RealCursor"/>
<link id="TScreen.Cursors"/>
<link id="TScreen.BeginTempCursor"/>
<link id="TScreen.BeginScreenCursor"/>
<link id="TScreen.EndScreenCursor"/>
<link id="TScreen.BeginWaitCursor"/>
<link id="TScreen.EndWaitCursor"/>
<link id="#lcl.controls.TCursor">TCursor</link>
</seealso>
</element>
<element name="TScreen.EndTempCursor.aCursor">
<short>Identifies the cursor shape released in the method.</short>
</element>
<element name="TScreen.BeginWaitCursor">
<short>Sets the cursor to the shape in crHourGlass.</short>
<descr>
<p>
Calls <var>BeginTempCursor</var> using the cursor shape in
<var>crHourGlass</var>.
</p>
</descr>
<seealso>
<link id="TScreen.BeginTempCursor"/>
<link id="TScreen.BeginScreenCursor"/>
<link id="#lcl.controls.crHourGlass">crHourGlass</link>
<link id="#lcl.controls.TCursor">TCursor</link>
</seealso>
</element>
<element name="TScreen.EndWaitCursor">
<short>Removes the crHourGlass mouse cursor shape.</short>
<descr>
<p>
Calls <var>EndTempCursor</var> to remove the <var>crHourGlass</var> mouse
cursor shape.
</p>
</descr>
<seealso>
<link id="TScreen.EndTempCursor"/>
<link id="#lcl.controls.crHourGlass">crHourGlass</link>
<link id="#lcl.controls.TCursor">TCursor</link>
</seealso>
</element>
<element name="TScreen.BeginScreenCursor">
<short>
Changes the active cursor to the most recent shape in the internal list of
cursors.
</short>
<descr>
<p>
Calls the BeginTempCursor method using the mouse cursor shape currently
assigned to the internal member for the screen.
</p>
<p>
Use EndScreenCursor to revert the mouse cursor shape to the value on entry to
the method.
</p>
</descr>
<seealso>
<link id="TScreen.EndScreenCursor"/>
<link id="TScreen.BeginTempCursor"/>
<link id="TScreen.EndTempCursor"/>
</seealso>
</element>
<element name="TScreen.EndScreenCursor">
<short>
Removes the current mouse cursor shape from the internal list, and restores
the previous cursor shape.
</short>
<descr>
<p>
Calls the EndTempCursor method to remove the current mouse cursor shape from
the internal list of cursors. The most recent cursor shape in the internal
list is restored when it differs from the value assigned to Cursor.
</p>
<p>
Use BeginScreenCursor to make the value in Cursor the current cursor shape
for the screen.
</p>
</descr>
<seealso>
<link id="TScreen.BeginScreenCursor"/>
<link id="TScreen.BeginTempCursor"/>
<link id="TScreen.EndTempCursor"/>
</seealso>
</element>
<element name="TScreen.ActiveControl">
<short>
The control which has the focus on the active form for the screen.
</short>
<descr>
<p>
<var>ActiveControl</var> is a read-only <var>TWinControl</var> property which
indicates the form or control that has focus on the screen, and gets input
entered using the keyboard. The property value is updated when the
<var>SetFocusedControl</var> method in <var>TCustomForm</var> sets the active
control for the form and calls the <var>UpdateLastActive</var> method for the
screen.
</p>
</descr>
<seealso>
<link id="TScreen.ActiveForm"/>
<link id="TScreen.ActiveCustomForm"/>
<link id="#lcl.forms.TCustomForm.SetFocusedControl">TCustomForm.SetFocusedControl</link>
</seealso>
</element>
<element name="TScreen.ActiveCustomForm">
<short>The TCustomForm instance which has the focus.</short>
<descr>
<p>
<var>ActiveCustomForm</var> is a read-only <var>TCustomForm</var> property
which contains the active custom form instance which has focus on the screen.
The property value is updated in TCustomForm methods like
<var>SetFocusedControl</var> and <var>MoveToDefaultPosition</var>. It is also
updated in <var>TApplication</var> methods like <var>ControlDestroyed</var>.
</p>
<p>
Use <var>ActiveForm</var> to get the <var>TForm</var> instance that has focus
on the screen.
</p>
</descr>
<seealso>
<link id="TScreen.ActiveForm"/>
<link id="TScreen.ActiveControl"/>
<link id="TCustomForm.SetFocusedControl"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
<link id="TApplication.ControlDestroyed"/>
</seealso>
</element>
<element name="TScreen.ActiveForm">
<short>The TForm instance which has the focus.</short>
<descr>
<p>
<var>ActiveForm</var> is a read-only <var>TForm</var> property which contains
the form instance in the application which has focus on the screen. The
property value is updated from methods in <var>TCustomForm</var> like
<var>SetFocusedControl</var> and <var>MoveToDefaultPosition</var>. It is also
updated from methods in TApplication like <var>ControlDestroyed</var>.
</p>
<p>
Use <var>ActiveCustomForm</var> to get a form instance derived from
<var>TCustomForm</var>, including: <var>THintWindow</var>,
<var>TCustomDockForm</var>, and <var>TLazDockForm</var>. These class types
are not available in ActiveForm.
</p>
</descr>
<seealso>
<link id="TScreen.ActiveControl"/>
<link id="TScreen.ActiveCustomForm"/>
<link id="TCustomForm.SetFocusedControl"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
<link id="TApplication.ControlDestroyed"/>
</seealso>
</element>
<element name="TScreen.Cursor">
<short>Indicates the current mouse cursor shape.</short>
<descr>
<p>
<var>Cursor</var> is a <var>TCursor</var> property which identifies the
current mouse cursor shape drawn on the screen. The numeric value is the
<var>HCURSOR</var> handle for the image drawn as the cursor shape. Cursor
constants (like <var>crHourGlass</var>) defined in the
<file>controls.pp</file> unit can be used instead of the numeric value.
</p>
<p>
Cursor is used as an index into the values in the <var>Cursors</var> property
where the handle for the <var>TCursorImage</var> resources are stored.
Changing the value for the property causes the <var>SetCursor</var> method in
the widgetset class to be called to apply the handle in Cursors at the
position in Cursor.
</p>
</descr>
<seealso>
<link id="TScreen.Cursors"/>
<link id="TScreen.RealCursor"/>
<link id="Controls.crDefault"/>
</seealso>
</element>
<element name="TScreen.RealCursor">
<short>
Gets the value for the Cursor property taking temporary cursors into account.
</short>
<descr>
<p>
<var>RealCursor</var> is a read-only <var>TCursor</var> property which
provides the current shape for the cursor taking temporary cursors into
account.
</p>
<p>
Temporary cursors are added and removed using the <var>BeginTempCursor</var>
and <var>EndTempCursor</var> methods. When a temporary cursor exists,
RealCursor returns the most recent cursor shape added to the internal list
using BeginTempCursor. If the internal list is empty, the value in Cursor is
returned as the property value.
</p>
<p>
The value from RealCursor is used in the <var>SetCursor</var> method to
determine the value stored in the <var>Cursor</var> property, and passed as
an argument to SetCursor in the widgetset class.
</p>
</descr>
</element>
<element name="TScreen.Cursors">
<short>
Provides indexed access to the available mouse cursor shapes for the screen.
</short>
<descr>
<p>
<var>Cursors</var> is an indexed <var>HCURSOR</var> property which provides
access to the handle for a mouse cursor shape by its numeric value. The
cursor constants (like <var>crHourGlass</var>) defined in the
<file>controls.pp</file> unit can be used instead of the numeric value.
</p>
<p>
Cursors uses an internal <var>TMap</var> instance to store the handle values
and provides access using the index values. When the value for the property
is read, <var>CreateStandardCursor</var> in the widgetset class is called to
retrieve the handle. If it has not been assigned, a temporary
<var>TCursorImage</var> is created for the cursor resource and its handle is
added to the internal map.
</p>
<p>
Setting a new value for the indexed property causes an existing handle in the
internal map to be re-created.
</p>
</descr>
<seealso>
<link id="TScreen.Cursor"/>
<link id="TScreen.RealCursor"/>
<link id="TScreen.Cursors"/>
</seealso>
</element>
<element name="TScreen.Cursors.Index">
<short>Ordinal position for the requested cursor shape.</short>
</element>
<element name="TScreen.CustomFormCount">
<short>
Number of TCustomForm form instances in the CustomForms property.
</short>
<descr>
<p>
<var>CustomFormCount</var> is a read-only <var>Integer</var> property which
contains the number of <var>TCustomForm</var> instances stored in the
<var>CustomForms</var> property. Read access for the property value is
redirected to the <var>Count</var> property in CustomForms.
</p>
</descr>
<seealso>
<link id="TScreen.CustomForms"/>
<link id="TCustomForm"/>
</seealso>
</element>
<element name="TScreen.CustomForms">
<short>
Provides indexed access to the TCustomForm instances on the screen.
</short>
<descr>
<p>
<var>CustomForms</var> is a read-only indexed <var>TCustomForm</var> property
which provides access to a custom form instance in the list by its ordinal
position.
</p>
<p>
Values in the CustomForms property are added and removed when the
<var>CreateNew</var> and <var>Destroy</var> methods in TCustomForm are
executed.
</p>
<p>
Use <var>CustomFormsZOrdered</var> to access a custom form instance by its
Z-order on the screen.
</p>
<p>
Use the <var>Forms</var> property to access a <var>TForm</var> instance on
the screen by its ordinal position.
</p>
</descr>
<seealso>
<link id="TScreen.CustomFormCount"/>
<link id="TScreen.CustomFormsZOrdered"/>
<link id="TScreen.Forms"/>
</seealso>
</element>
<element name="TScreen.CustomForms.Index">
<short>Ordinal position for the requested form.</short>
</element>
<element name="TScreen.CustomFormsZOrdered">
<short>
The list of Custom Forms, indexed by Z-order (zero is top-most).
</short>
<descr>
<p>
<var>CustomFormsZOrdered</var> is a read-only indexed <var>TCustomForm</var>
property which provides access to a custom form by its ordinal position in
the Z-Order for the screen. The form at position <b>0</b> (<b>zero</b>) is
displayed at the top of the Z-Order, and overlaps any form with a higher
Z-Order value.
</p>
<p>
Values in the property are added and removed in the <var>AddForm</var> and
<var>RemoveForm</var> methods.
</p>
<p>
CustomFormsZOrdered is used in widgetset classes when an application on the
screen is minimized or maximized, or when a form is hidden or displayed using
the <var>ShowHide</var> method in its widgetset class.
</p>
<p>
Use <var>CustomFormZOrderCount</var> to get the number of custom form
instances in CustomFormsZOrdered.
</p>
<p>
Use <var>CustomForms</var> or <var>Forms</var> to access a form instance by
its ordinal position in the list of forms on the screen.
</p>
</descr>
<seealso>
<link id="TScreen.CustomFormZOrderCount"/>
<link id="TScreen.CustomForms"/>
<link id="TScreen.Forms"/>
<link id="TCustomForm.Visible"/>
<link id="TCustomForm.Show"/>
<link id="TCustomForm.Hide"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
</seealso>
</element>
<element name="TScreen.CustomFormsZOrdered.Index">
<short>Ordinal position in the Z-Order (0 is top-most).</short>
</element>
<element name="TScreen.CustomFormZOrderCount">
<short>
Number of custom forms instances in the CustomFormsZOrdered property.
</short>
<descr>
<p>
<var>CustomFormZOrderCount</var> is a read-only <var>Integer</var> property
which contains the number of <var>TCustomForm</var> instances stored in the
<var>CustomFormsZOrdered</var> property. Read access for the property value
is re-directed to the <var>Count</var> property in the list used for
CustomFormsZOrdered.
</p>
<p>
Use <var>CustomForms</var> and <var>CustomFormCount</var> to access
TCustomForm instances on the screen regardless of their Z-Order.
</p>
<p>
Use <var>Forms</var> and <var>FormCount</var> to access <var>TForm</var>
instances on the screen regardless of their Z-Order.
</p>
</descr>
<seealso>
<link id="TScreen.CustomFormsZOrdered"/>
<link id="TScreen.CustomForms"/>
<link id="TScreen.CustomFormCount"/>
<link id="TScreen.Forms"/>
<link id="TScreen.FormCount"/>
</seealso>
</element>
<element name="TScreen.DesktopLeft">
<short>The left-most coordinate of the desktop.</short>
<descr>
<p>
<var>DesktopLeft</var> is a read-only <var>Integer</var> property with the
left coordinate for the desktop. The property value contains the virtual
screen coordinate returned from <var>GetSystemMetrics</var> for the
<var>SM_XVIRTUALSCREEN</var> parameter.
</p>
<p>
DesktopLeft is used in the <var>MoveToDefaultPosition</var> method in
<var>TCustomForm</var>. The values in <var>DesktopLeft</var>,
<var>DesktopTop</var>, <var>DesktopWidth</var> and <var>DesktopHeight</var>
are also assigned to members in the <var>DesktopRect</var> property.
</p>
</descr>
<seealso>
<link id="TScreen.DesktopRect"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
</seealso>
</element>
<element name="TScreen.DesktopTop">
<short>The top-most coordinate for the desktop.</short>
<descr>
<p>
<var>DesktopTop</var> is a read-only <var>Integer</var> property with the top
coordinate for the desktop. The property value contains the virtual screen
coordinate returned from <var>GetSystemMetrics</var> for the
<var>SM_YVIRTUALSCREEN</var> parameter.
</p>
<p>
DesktopTop is used in the <var>MoveToDefaultPosition</var> method in
<var>TCustomForm</var>. The values in <var>DesktopLeft</var>,
<var>DesktopTop</var>, <var>DesktopWidth</var> and <var>DesktopHeight</var>
are also assigned to members in the <var>DesktopRect</var> property.
</p>
</descr>
<seealso>
<link id="TScreen.DesktopRect"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
</seealso>
</element>
<element name="TScreen.DesktopHeight">
<short>The total vertical size for the desktop.</short>
<descr>
<p>
<var>DesktopHeight</var> is a read-only <var>Integer</var> property with the
total height for the desktop. The property values is the result from
<var>GetSystemMetrics</var> using the <var>SM_CYVIRTUALSCREEN</var> parameter.
</p>
<p>
DesktopHeight is used in the <var>MoveToDefaultPosition</var> method in
<var>TCustomForm</var>. The values in <var>DesktopLeft</var>,
<var>DesktopTop</var>, <var>DesktopWidth</var> and <var>DesktopHeight</var>
are also assigned to members in the <var>DesktopRect</var> property.
</p>
</descr>
<seealso>
<link id="TScreen.DesktopRect"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
</seealso>
</element>
<element name="TScreen.DesktopWidth">
<short>The total horizontal size for the desktop.</short>
<descr>
<p>
<var>DesktopWidth</var> is a read-only <var>Integer</var> property with the
total width for the desktop. The property values is the result from
<var>GetSystemMetrics</var> using the <var>SM_CXVIRTUALSCREEN</var> parameter.
</p>
<p>
DesktopWidth is used in the <var>MoveToDefaultPosition</var> method in
<var>TCustomForm</var>. The values in <var>DesktopLeft</var>,
<var>DesktopTop</var>, <var>DesktopWidth</var> and <var>DesktopHeight</var>
are also assigned to members in the <var>DesktopRect</var> property.
</p>
</descr>
<seealso>
<link id="TScreen.DesktopRect"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
</seealso>
</element>
<element name="TScreen.DesktopRect">
<short>Bounds rectangle for the desktop spanning all monitors.</short>
<descr>
<p>
<var>DesktopRect</var> is a read-only <var>TRect</var> property with the
bounds for the desktop spanning all monitors. Member values in the property
are derived from the <var>DesktopLeft</var>, <var>DesktopTop</var>,
<var>DesktopWidth</var>, and <var>DesktopHeight</var> properties.
</p>
<p>
DesktopRect is provided as a convenience property; it is not used directly in
the LCL.
</p>
</descr>
<seealso>
<link id="TScreen.DesktopLeft"/>
<link id="TScreen.DesktopTop"/>
<link id="TScreen.DesktopHeight"/>
<link id="TScreen.DesktopWidth"/>
</seealso>
</element>
<element name="TScreen.FocusedForm">
<short>The form that has Focus on the screen.</short>
<descr>
<p>
<var>FocusedForm</var> is a read-only <var>TCustomForm</var> property which
contains the form which has focus on the screen. The value for the property
is maintained in the <var>SetFocusedForm</var> method, which ensures that the
previously focused form is deactivated before setting the value in the
property. It is also updated in the <var>RemoveForm</var> method when the
freed form instance is the current value for the property.
</p>
<p>
FocusedForm is updated in the <var>ShowModal</var> method in
<var>TCustomForm</var> when the focus is changed to a modal form. It is also
updated in the <var>ControlDestroyed</var> method in <var>TApplication</var>
when the freed control is also the current value for the property.
</p>
<p>
The value in the property is used to prevent hint windows from being
displayed for other forms when a modal form is active.
</p>
</descr>
<seealso>
<link id="TScreen.ActiveForm"/>
<link id="TScreen.ActiveCustomForm"/>
</seealso>
</element>
<element name="TScreen.FormCount">
<short>The number of Forms on the screen.</short>
<descr>
<p>
<var>FormCount</var> is a read-only <var>Integer</var> property with the
number of <var>TForm</var> instances stored in the <var>Forms</var> property.
Read access to the property value is redirected to the <var>Count</var>
property in Forms.
</p>
<p>
Use <var>CustomFormCount</var> to get the number of <var>TCustomForm</var>
instances in the <var>CustomForms</var> property.
</p>
</descr>
<seealso>
<link id="TScreen.Forms"/>
<link id="TScreen.CustomFormCount"/>
<link id="TScreen.CustomForms"/>
</seealso>
</element>
<element name="TScreen.Forms">
<short>Provides indexed access to TForm instances on the screen.</short>
<descr>
<p>
<var>Forms</var> is a read-only indexed <var>TForm</var> property which
provides access to the TForm instances on the screen by their ordinal
position in the list of forms. <var>Index</var> values must be in the range
<b>0..<var>FormCount</var>-1</b>. An <var>EListError</var> exception is
raised when Index contains an invalid position for the list.
</p>
<p>
Values are added to and removed from Forms in the <var>AddForm</var> and
<var>RemoveForm</var> methods. These methods are called when the
<var>CreateNew</var> or <var>Destroy</var> method in TForm is executed. Forms
is used in widgetset classes to get the form instance with a given
<var>Handle</var> in the widgetset.
</p>
<p>
Use <var>CustomForms</var> and <var>CustomFormCount</var> to access the
<var>TCustomForm</var> instances on the screen.
</p>
</descr>
<errors>
Raises an EListError exception when Index contains an invalid position for
the list.
</errors>
<seealso>
<link id="TScreen.FormCount"/>
<link id="TScreen.CustomForms"/>
<link id="TScreen.CustomFormCount"/>
<link id="TCustomForm.CreateNew"/>
<link id="TCustomForm.Destroy"/>
</seealso>
</element>
<element name="TScreen.Forms.Index">
<short>Ordinal position for the form in the property value.</short>
</element>
<element name="TScreen.DataModuleCount">
<short>The number of data modules for the screen.</short>
<descr>
<p>
<var>DataModuleCount</var> is a read-only <var>Integer</var> property with
the number of <var>TDataModule</var> instances stored in the
<var>DataModules</var> property. Read access for the property value is
redirected to the <var>Count</var> property in DataModules.
</p>
<p>
Use DataModules to access a TDataModule instance by its ordinal position in
the list of data modules.
</p>
</descr>
<seealso>
<link id="TScreen.DataModules"/>
</seealso>
</element>
<element name="TScreen.DataModules">
<short>Provides indexed access to data modules on the screen.</short>
<descr>
<p>
<var>DataModules</var> is a read-only indexed <var>TDataModule</var> property
which provides access to a data module by its ordinal position in the list.
Data modules are a non-visual component at run-time, and are provided to
maintain compatibility with the Delphi VCL equivalent.
</p>
<p>
<var>Index</var> contains the ordinal position in the list for the property
value, and must be in the range <b>0..<var>DataModuleCount</var>-1</b>. An
<var>EListError</var> exception is raised if Index has an invalid position
for the list.
</p>
<p>
Use <var>DataModuleCount</var> to get the number of data module instances in
the property.
</p>
</descr>
<seealso>
<link id="TScreen.DataModuleCount"/>
<link id="#rtl.classes.TDataModule">TDataModule</link>
</seealso>
</element>
<element name="TScreen.DataModules.Index">
<short>
Ordinal position for the TDataModule instance in the property value.
</short>
</element>
<element name="TScreen.HintFont">
<short>The font used to display Hints.</short>
<descr>
<p>
<var>HintFont</var> is a <var>TFont</var> property with the font used to
display hint text for forms and controls. Reading the property value causes
the <var>InitStockFont</var> method in the widgetset class to be called. If
the hint font is not initialized in the widgetset class, default font
attributes are assigned to the font instance using the color in
<var>clInfoText</var>.
</p>
<p>
The value in HintFont is used to set the default font for
<var>THintWindow</var> instances, It can be used in controls which display
their own custom hint windows and hint text should be displayed in the
default font for the platform.
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.IconFont">
<short>The font used for desktop icons.</short>
<descr>
<p>
IconFont is passed to the InitStockFont method in the widgetset to initialize
the font.
</p>
<remark>
Not used in the current LCL implementation.
</remark>
</descr>
<seealso>
</seealso>
</element>
<element name="TScreen.MenuFont">
<short>The font used in menus.</short>
<descr/>
<seealso/>
<notes>
<note>
Currently used only in FindFontName in the TurboPower IPro package.
</note>
</notes>
</element>
<element name="TScreen.SystemFont">
<short>
The default font used for system task dialogs and controls like TSpeedButton.
</short>
<descr/>
<seealso/>
</element>
<element name="TScreen.Fonts">
<short>The names for the available (installed) fonts.</short>
<descr>
<p>
<var>Fonts</var> is a read-only <var>TStringList</var> property which contains
the names for the fonts found using the <var>EnumFontFamiliesEx</var> routine
for the widgetset. Values in Fonts are unique (no duplicates) and sorted
alphabetically in ascending order.
</p>
</descr>
<version>
Modified in LCL version 3.2 to use the TStringList type instead of TStrings.
</version>
<seealso/>
</element>
<element name="TScreen.Height">
<short>The height of the primary monitor.</short>
<descr>
<p>
<var>Height</var> is a read-only <var>Integer</var> property with the height
of the primary monitor for the system. The property value contains the result
from <var>GetSystemMetrics</var> using the <var>SM_CYSCREEN</var> parameter.
</p>
<p>
Values in <var>Height</var> and <var>Width</var> are used when setting the
position for forms or other dialogs to ensure that they are visible on the
monitor. They are also used when LCL coordinates are converted to screen
coordinates to ensure that the positions are valid for the monitor.
</p>
</descr>
<seealso>
<link id="TScreen.PrimaryMonitor"/>
</seealso>
</element>
<element name="TScreen.MonitorCount">
<short>The number of available Monitors.</short>
<descr>
<p>
<var>MonitorCount</var> is a read-only <var>Integer</var> property with the
number of <var>TMonitor</var> instances stored in the <var>Monitors</var>
property. Reading value for the property causes the <var>UpdateMonitors</var>
method to be called when Monitors is empty. The property value is redirected
to the <var>Count</var> property in Monitors.
</p>
<p>
Use <var>Monitors</var> to access a <var>TMonitor</var> instance by its
ordinal position in the list.
</p>
</descr>
<seealso>
<link id="TScreen.Monitors"/>
</seealso>
</element>
<element name="TScreen.Monitors">
<short>
Provides indexed access to the available monitors in the class instance.
</short>
<descr>
<p>
<var>Monitors</var> is a read-only indexed <var>TMonitor</var> property which
provides access to the available monitors in the class instance by their
ordinal position in the list.
</p>
<p>
Reading a value for the property causes the <var>UpdateMonitors</var> method
to be called when the number of monitors in the <var>TMonitorList</var>
instance is <b>0</b> (<b>zero</b>). The property value is the TMonitor
instance in the list at the specified ordinal position.
</p>
<p>
Use <var>MonitorCount</var> to get the number of entries stored in the
Monitors property.
</p>
</descr>
<seealso>
<link id="TScreen.MonitorCount"/>
<link id="TMonitor"/>
<link id="TMonitorList"/>
</seealso>
</element>
<element name="TScreen.Monitors.Index">
<short>
Ordinal position for the TMonitor instance in the property value.
</short>
</element>
<element name="TScreen.PixelsPerInch">
<short>
The number of screen pixels per virtual inch (DPI) for the screen.
</short>
<descr>
<p>
PixelsPerInch is a read-only Integer property which contains the number of
screen pixels per inch for the display device. The display uses virtual
inches, which typically are bigger than physical inches. This requires that
text appear bigger on a screen than on a printer.
</p>
<p>
The default value for the property is set in the constructor for the class
instance using the horizontal pixels per inch from the <var>ScreenInfo</var>
variable in the <file>graphics</file> unit. The value is updated (from the
same source) when the <var>UpdateScreen</var> method is called.
</p>
<p>
The property value is used at run-time to detected when scaling is needed in
forms, controls, and fonts to adjust for different design-time PPI settings.
</p>
</descr>
<seealso/>
</element>
<element name="TScreen.PrimaryMonitor">
<short>
The primary monitor which typically includes the task bar area.
</short>
<descr>
<p>
<var>PrimaryMonitor</var> is a read-only <var>TMonitor</var> property with
the primary monitor for the system. The property value is determined by
checking for the <var>TMonitor</var> instance in <var>Monitors</var> with its
<var>Primary</var> property set to <b>True</b>. The property value is
<b>Nil</b> if a monitor is not found with its Primary property set to
<b>True</b>.
</p>
<p>
The property value is used in the <var>MoveToDefaultPosition</var> method in
<var>TCustomForm</var>. It is also used in widgetset classes to select the
monitor for a dialog when the main form for an application has not been
assigned.
</p>
</descr>
<seealso>
<link id="TScreen.Monitors"/>
<link id="TCustomForm.MoveToDefaultPosition"/>
<link id="TMonitor"/>
</seealso>
</element>
<element name="TScreen.Width">
<short>The width of the primary monitor.</short>
<descr>
<p>
<var>Width</var> is a read-only <var>Integer</var> property with the width
for the primary monitor. The property value is the result from
<var>GetSystemMetrics</var> using the <var>SM_CXSCREEN</var> parameter.
</p>
<p>
Use <var>Height</var> to get height for the primary monitor.
</p>
<p>
Use <var>DesktopWidth</var> to get the usable width for the entire desktop.
</p>
</descr>
<seealso>
<link id="TScreen.Height"/>
<link id="TScreen.DesktopWidth"/>
</seealso>
</element>
<element name="TScreen.WorkAreaRect">
<short>
The usable display area on the primary monitor excluding the task bar.
</short>
<descr>
<p>
<var>WorkAreaRect</var> is a read-only <var>TRect</var> property with the
bounds for the usable display area on the primary monitor. It excludes the
area covered by the system task bar. The return value is the result from the
platform-specific SystemParametersInfo routine in the LCL interface using the
SPI_GETWORKAREA parameter constant.
</p>
<p>
Use DesktopRect to get the bounds for the entire desktop spanning all
monitors.
</p>
<p>
Use the Monitors property to access screen information for a specific monitor.
</p>
</descr>
<seealso>
<link id="TScreen.DesktopRect"/>
<link id="TScreen.Monitors"/>
</seealso>
</element>
<element name="TScreen.WorkAreaHeight">
<short>
The usable height of the primary monitor excluding the system task bar.
</short>
<descr>
<p>
The property value is calculated as the difference between the
<var>Bottom</var> and <var>Top</var> members in <var>WorkAreaRect</var>.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TScreen.WorkAreaLeft">
<short>The usable left coordinate on the primary monitor.</short>
<descr>
<p>
The property value contains the <var>Left</var> member from
<var>WorkAreaRect</var>.
</p>
</descr>
<seealso>
<link id="TScreen.WorkareaRect"/>
</seealso>
</element>
<element name="TScreen.WorkAreaTop">
<short>The usable top coordinate on the primary monitor.</short>
<descr>
<p>
Returns the value for the <var>Top</var> member in <var>WorkAreaRect</var>,
which omits the task bar area if aligned to the top of the screen.
</p>
<p>
Use the <var>DesktopTop</var> property to get the coordinate for the top of
the primary monitor.
</p>
</descr>
<seealso>
<link id="TScreen.WorkAreaRect"/>
<link id="TScreen.DesktopTop"/>
</seealso>
</element>
<element name="TScreen.WorkAreaWidth">
<short>The usable width for the WorkAreaRect.</short>
<descr>
<p>
Returns the difference between the <var>Right</var> and <var>Left</var>
members in <var>WorkAreaRect</var>.
</p>
<p>
Use <var>DesktopWidth</var> to get the width for the entire desktop spanning
all monitors.
</p>
</descr>
<seealso>
<link id="TScreen.WorkAreaRect"/>
<link id="TScreen.DesktopWidth"/>
</seealso>
</element>
<element name="TScreen.OnActiveControlChange">
<short>
Event handler signalled when the active form control for the screen has been
changed.
</short>
<descr>
<p>
<var>OnActiveControlChange</var> is a <var>TNotifyEvent</var> property with
the event handler signalled when the active control on the screen has been
changed. The <var>Sender</var> argument contains the <var>TScreen</var>
instance for the change notification.
</p>
<p>
OnActiveControlChange is signalled (when assigned) from the
<var>UpdateLastActive</var> method, and occurs after the
<var>OnActiveFormChange</var> event has been signalled (when assigned).
</p>
</descr>
<seealso>
<link id="TScreen.AddHandlerActiveControlChanged"/>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TScreen.OnActiveFormChange">
<short>
Event handler signalled when the active form on the screen has been changed.
</short>
<descr>
<p>
<var>OnActiveFormChange</var> is a <var>TNotifyEvent</var> property with the
event handler signalled when the active form on the screen has been changed.
<var>Sender</var> contains the <var>TScreen</var> instance for the change
notification.
</p>
<p>
OnActiveFormChange is signalled (when assigned) from the
<var>UpdateLastActive</var> method, and occurs before the
<var>OnActiveControlChange</var> event handler.
</p>
</descr>
<seealso>
<link id="TScreen.AddHandlerActiveFormChanged"/>
<link id="TScreen.AddHandlerActiveFormChanged"/>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TQueryEndSessionEvent">
<short>
Specifies an event type used to handle a WM_QUERYENDSESSION window message in
an application.
</short>
<descr/>
<seealso>
<link id="TApplication.OnQueryEndSession"/>
</seealso>
</element>
<element name="TQueryEndSessionEvent.Cancel">
<short>Set Cancel to <b>True</b> to prevent the session from ending.</short>
</element>
<element name="TExceptionEvent">
<short>
Defines an event handler signalled to perform exception handling in an
application.
</short>
<descr>
<p>
<var>TExceptionEvent</var> is an object procedure type that defines an event
handler signalled to perform exception handling in an application. Arguments
passed to the event handler identify the application generating the
notification, and the exception class instance. Applications must implement
an object procedure using the signature for the event, and assign it to an
event handler to respond to the notification.
</p>
<p>
<var>TExceptionEvent</var> is the type used to implement exception handlers
in <var>TApplication</var> and <var>TApplicationProperties</var>.
</p>
</descr>
<seealso>
<link id="TApplication.HandleException"/>
<link id="TApplicationProperties.OnException"/>
</seealso>
</element>
<element name="TExceptionEvent.Sender">
<short>Object instance for the notification.</short>
</element>
<element name="TExceptionEvent.E">
<short>Exception instance for the notification.</short>
</element>
<element name="TGetHandleEvent">
<short>
Specifies an event handler used to get the handle for the main form in an
application.
</short>
<descr>
<p>
<var>TGetHandleEvent</var> is an object procedure type which defines an event
handler signalled to get the handle for the main form in an application.
<var>TGetHandleEvent</var> is the type used to implement the
<var>OnGetMainFormHandle</var> event handler in <var>TApplication</var> and
<var>TApplicationProperties</var>.
</p>
</descr>
<seealso>
<link id="TApplication.OnGetMainFormHandle"/>
<link id="TApplicationProperties.OnGetMainFormHandle"/>
<link id="TApplication.AddOnGetMainFormHandleHandler"/>
<link id="TApplication.RemoveOnGetMainFormHandleHandler"/>
</seealso>
</element>
<element name="TGetHandleEvent.Handle">
<short>Handle for the form instance used as the main form.</short>
</element>
<element name="TIdleEvent">
<short>
Specifies an event handler signalled when an application becomes idle.
</short>
<descr>
<p>
<var>TIdleEvent</var> is an object procedure type which specifies an event
handler signalled when an application becomes idle.
</p>
<p>
<var>Sender</var> is the object for the event notification and normally
contains the <var>Application</var> singleton.
</p>
<p>
<var>Done</var> is a variable <var>Boolean</var> parameter which indicates if
the event handler has finished processing. When set to <b>False</b>,
subsequent idle event handlers can be called. When set to <b>True</b>, the
idle state processing has been completed.
</p>
<p>
TIdleEvent is the type used for the <var>OnIdle</var> event handler in
<var>TApplication</var>. The event handler is signalled when the application
becomes idle. The event handler can return <b>False</b> in Done to allow
other idle event handlers to be signalled. The idle event handlers are called
repeatedly until Done is set to <b>True</b>.
</p>
<p>
Use the TIdleEvent event handler type to provide short duration event
handlers which ensure that the application remains responsive.
</p>
</descr>
<seealso/>
</element>
<element name="TIdleEvent.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TIdleEvent.Done">
<short>Set to <b>True</b> when processing is done.</short>
</element>
<element name="TOnUserInputEvent">
<short>
Specifies an event handler signalled to respond to user input messages in an
application.
</short>
<descr>
<p>
<var>TOnUserInputEvent</var> is an object procedure type which defines an
event handler signalled to respond to user input messages in an application.
It is used as a callback which forwards input messages from widgetset classes
to the current application.
</p>
<p>
<var>TOnUserInputEvent</var> is the type used for the <var>OnUserInput</var>
event handler in <var>TApplication</var> and
<var>TApplicationProperties</var>.
</p>
</descr>
<seealso>
<link id="TApplication.OnUserInput"/>
<link id="TApplicationProperties.OnUserInput"/>
<link id="TApplication.AddOnUserInputHandler"/>
<link id="TApplication.RemoveOnUserInputHandler"/>
</seealso>
</element>
<element name="TOnUserInputEvent.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TOnUserInputEvent.Msg">
<short>Message with the user input for the event.</short>
</element>
<element name="TDataEvent">
<short>
Specifies the type used for an asynchronous callback method.
</short>
<descr/>
<seealso>
<link id="TApplication.QueueAsyncCall"/>
</seealso>
</element>
<element name="TDataEvent.Data">
<short>PtrInt type with the argument passed to the method.</short>
</element>
<element name="TCMHintShow">
<short>Provides access to members in a CM_HINTSHOW control message.</short>
<descr>
<p>
TCMHintShow is a record type used to represent a CM_HINTSHOW control message
passed as an argument to methods in a control.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.CMHintShow">TControl.CMHintShow</link>
</seealso>
</element>
<element name="TCMHintShow.Msg">
<short>Cardinal value representing the control message.</short>
</element>
<element name="TCMHintShow.UnusedMsg">
<short>
Padding added for alignment on 64-bit platforms.
</short>
</element>
<element name="TCMHintShow.Reserved">
<short>Reserved parameter values for the message.</short>
</element>
<element name="TCMHintShow.HintInfo">
<short>Pointer to the hint information for the control message.</short>
</element>
<element name="TCMHintShow.Result">
<short>Result returned for the control message.</short>
</element>
<element name="TCMHintShowPause">
<short>Not used in the current LCL implementation.</short>
<descr>
<p>
TCMHintShowPause is not used in the current LCL implementation.
</p>
</descr>
<seealso/>
</element>
<element name="TCMHintShowPause.Msg"/>
<element name="TCMHintShowPause.UnusedMsg"/>
<element name="TCMHintShowPause.WasActive"/>
<element name="TCMHintShowPause.Pause"/>
<element name="TCMHintShowPause.Result"/>
<element name="TAppHintTimerType">
<short>Represents TApplication hint timer states.</short>
<descr>
<p>
<var>TAppHintTimerType</var> is used in the implementation of the
<var>TApplication</var> class, and passed as an argument to its
<var>StartHintTime</var> method.
</p>
</descr>
<seealso/>
</element>
<element name="TAppHintTimerType.ahttNone">
<short>The hint timer is off.</short>
</element>
<element name="TAppHintTimerType.ahttShowHint">
<short>
Waiting to show a hint; used when a hint timer is started.
</short>
</element>
<element name="TAppHintTimerType.ahttHideHint">
<short>
Waiting to hide an hint; used when the hint control is changed or the mouse
leaves a hint rectangle.
</short>
</element>
<element name="TAppHintTimerType.ahttReshowHint">
<short>
Waiting to show the next hint; used when the hide hint timer is started.
</short>
</element>
<element name="TShowHintEvent">
<short>
Defines an event handler signalled to perform hint display.
</short>
<descr>
<p>
<var>TShowHintEvent</var> is an object procedure type which defines an event
handler signalled to perform hint display. It is the type used for the
<var>TApplication.OnShowHint</var> event handler property.
</p>
</descr>
<seealso>
<link id="TApplication.OnShowHint"/>
<link id="TApplication.ShowHintWindow"/>
<link id="TApplication.AddOnShowHintHandler"/>
<link id="TApplication.RemoveOnShowHintHandler"/>
<link id="TApplicationProperties.OnShowHint"/>
</seealso>
</element>
<element name="TShowHintEvent.HintStr">
<short>Text for hint display event.</short>
</element>
<element name="TShowHintEvent.CanShow">
<short><b>True</b> if the hint can be displayed.</short>
</element>
<element name="TShowHintEvent.HintInfo">
<short>Hint info structure for the hint.</short>
</element>
<element name="THintInfoAtMouse">
<short>
Stores control and mouse position information for a hint display.
</short>
<descr>
<p>
<var>THintInfoAtMouse</var> is a record type used to store Control and Mouse
position information for a hint display.
</p>
<p>
THintInfoAtMouse is passed as an argument to the <var>ShowHintWindow</var>
method in <var>TApplication</var>. It is also used in the implementation of
TApplication methods like <var>ActivateHint</var> and <var>OnHintTimer</var>.
</p>
</descr>
<seealso>
<link id="TApplication.ShowHintWindow"/>
<link id="TApplication.ActivateHint"/>
<link id="TApplication.OnHintTimer"/>
</seealso>
</element>
<element name="THintInfoAtMouse.MousePos">
<short>Position of the mouse cursor for the hint display.</short>
</element>
<element name="THintInfoAtMouse.Control">
<short>Control for the hint display.</short>
</element>
<element name="THintInfoAtMouse.ControlHasHint">
<short>Indicates if hint text is available for form or control.</short>
</element>
<element name="TApplicationFlag">
<short>Application state flags.</short>
<descr>
<p>
<var>TApplicationFlag</var> is an enumeration type with values that represent
activity or state in an application. <var>TApplicationFlag</var> values are
stored in the <var>TApplicationFlags</var> type used to implement the
<var>Flags</var> property in <var>TApplication</var>.
</p>
</descr>
<seealso>
<link id="TApplicationFlags"/>
<link id="TApplication.Flags"/>
</seealso>
</element>
<element name="TApplicationFlag.AppWaiting">
<short>Application is in an Idle state and waiting for a message.</short>
</element>
<element name="TApplicationFlag.AppIdleEndSent">
<short>
IdleEnd handlers have been notified of message arrival; end the idle state
for the application.
</short>
</element>
<element name="TApplicationFlag.AppHandlingException">
<short>In exception handling.</short>
<notes><note>Not used in the current LCL version.</note></notes>
</element>
<element name="TApplicationFlag.AppNoExceptionMessages">
<short>
Suppresses exception display for the application; set when an exception is
aborted in the application.
</short>
</element>
<element name="TApplicationFlag.AppActive">
<short>
The application has focus; prevents recursive application activation.
</short>
</element>
<element name="TApplicationFlag.AppDestroying">
<short>Shutting down; set when the application instance is freed.</short>
</element>
<element name="TApplicationFlag.AppDoNotCallAsyncQueue">
<short>Skip asynchronous callbacks between handled messages.</short>
<notes>
<note>
Included in Flags when the application is being destroyed. Causes an
exception to be raised in QueueAsyncCall.
</note>
</notes>
</element>
<element name="TApplicationFlag.AppInitialized">
<short>Application has been initialized.</short>
</element>
<element name="TApplicationFlags">
<short>
Set type used to store values from the TApplicationFlag enumeration.
</short>
<descr>
<p>
<var>TApplicationFlags</var> is the type used for the <var>Flags</var>
property in <var>TApplication</var>.
</p>
</descr>
<seealso>
<link id="TApplicationFlag"/>
<link id="TApplication.Flags"/>
</seealso>
</element>
<element name="TApplicationNavigationOption">
<short>Which keys can be used for the navigation within a form.</short>
<descr>
<p>
<var>TApplicationNavigationOption</var> is an enumerated type with values
that control the behaviors enabled for navigation in an application. Values
from TApplicationNavigationOption are stored in the
<var>TApplicationNavigationOptions</var> set type used to implement the
<var>Navigation</var> property in <var>TApplication</var>.
</p>
</descr>
<seealso>
<link id="TApplicationNavigationOptions"/>
<link id="TApplication.Navigation"/>
</seealso>
</element>
<element name="TApplicationNavigationOption.anoTabToSelectNext">
<short>
The Tab key moves the Focus to the next (or previous) control in TabOrder.
</short>
</element>
<element name="TApplicationNavigationOption.anoReturnForDefaultControl">
<short>
The Enter key triggers the default action.
</short>
</element>
<element name="TApplicationNavigationOption.anoEscapeForCancelControl">
<short>The Escape key triggers the Cancel action.</short>
</element>
<element name="TApplicationNavigationOption.anoF1ForHelp">
<short>The F1 key brings up context sensitive help.</short>
</element>
<element name="TApplicationNavigationOption.anoArrowToSelectNextInParent">
<short>The Arrow keys move the focus.</short>
</element>
<element name="TApplicationNavigationOptions" link="#lcl.forms.TApplicationNavigationOption"/>
<element name="TApplicationHandlerType">
<short>Types of Application notification handlers.</short>
<descr>
<p>
<var>TApplicationHandlerType</var> is an enumerated type with values that
identify handler categories used in <var>TApplication</var>.
</p>
<p>
TApplicationHandlerType is used as an index value for the internal array of
<var>TMethodList</var> instances used in TApplication. It is passed as an
argument to the <var>AddHandler</var> and <var>RemoveHandler</var> methods in
TApplication to identify the method list where the handler is stored. It is
also used in the implementation of TApplication methods used to retrieve,
execute, or maintain handlers such as: <var>Destroy</var> and
<var>RemoveAllHandlersOfObject</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TApplicationHandlerType.ahtIdle">
<short>Application becoming idle.</short>
</element>
<element name="TApplicationHandlerType.ahtIdleEnd">
<short>Application idle state is ending.</short>
</element>
<element name="TApplicationHandlerType.ahtKeyDownBefore">
<short>
Handler for KeyDown events, invoked before interface and LCL handlers.
</short>
</element>
<element name="TApplicationHandlerType.ahtKeyDownAfter">
<short>
Default handler for KeyDown events, invoked after interface and LCL handlers.
</short>
</element>
<element name="TApplicationHandlerType.ahtActivate">
<short>Handler invoked on application activated.</short>
</element>
<element name="TApplicationHandlerType.ahtDeactivate">
<short>Handler invoked on application deactivated.</short>
</element>
<element name="TApplicationHandlerType.ahtUserInput">
<short>Handler invoked on user input.</short>
<notes>
<note>
Used in NotifyUserInputHandler; implemented in Sparta MDI package
</note>
</notes>
</element>
<element name="TApplicationHandlerType.ahtException">
<short>Handler invoked on handled exception.</short>
</element>
<element name="TApplicationHandlerType.ahtEndSession">
<short>Handler invoked on session end.</short>
<notes><note>Used in IntfEndSession.</note></notes>
</element>
<element name="TApplicationHandlerType.ahtQueryEndSession">
<short>Handler invoked before session ends.</short>
</element>
<element name="TApplicationHandlerType.ahtMinimize">
<short>Handler invoked when the application is minimized.</short>
</element>
<element name="TApplicationHandlerType.ahtModalBegin">
<short>Handler invoked when a form is shown modally.</short>
</element>
<element name="TApplicationHandlerType.ahtModalEnd">
<short>Handler invoked when the last modal form is closed.</short>
</element>
<element name="TApplicationHandlerType.ahtRestore">
<short>Handler invoked on application restored (from minimized state).</short>
</element>
<element name="TApplicationHandlerType.ahtDropFiles">
<short>Handler invoked on files dropped.</short>
<notes><note>Used in IntfDropFiles.</note></notes>
</element>
<element name="TApplicationHandlerType.ahtHelp">
<short>Handler invoked on F1 key (help request).</short>
<notes><note>Used when OnHelp is not assigned in the
application.</note></notes>
</element>
<element name="TApplicationHandlerType.ahtHint">
<short>Handler invoked on Hint request.</short>
</element>
<element name="TApplicationHandlerType.ahtShowHint">
<short>Handler invoked on Hint becoming visible.</short>
</element>
<element name="TApplicationHandlerType.ahtGetMainFormHandle">
<short>Handler provides the Handle for the main form.</short>
</element>
<element name="TApplicationHandlerType.ahtActionExecute">
<short>
Handler signalled to execute an action.
</short>
</element>
<element name="TApplicationHandlerType.ahtActionUpdate">
<short>
Handler signalled to update an action.
</short>
</element>
<element name="PAsyncCallQueueItem">
<short>A queued asynchronous callback request node.</short>
<descr/>
<seealso>
<link id="TAsyncCallQueueItem"/>
</seealso>
</element>
<element name="TAsyncCallQueueItem">
<short>Record used for a queued asynchronous callback request.</short>
<descr/>
<seealso>
<link id="TApplication.QueueAsyncCall"/>
</seealso>
</element>
<element name="TAsyncCallQueueItem.Method">
<short>Object procedure with the callback method.</short>
<descr/>
</element>
<element name="TAsyncCallQueueItem.Data">
<short>Pointer to the callback method argument.</short>
<descr/>
</element>
<element name="TAsyncCallQueueItem.NextItem">
<short>Pointer to the next item in the callback queue.</short>
<descr/>
</element>
<element name="TAsyncCallQueueItem.PrevItem">
<short>Pointer to the previous item in the callback queue.</short>
<descr/>
</element>
<element name="TAsyncCallQueue">
<short>Represents an asynchronous callback queue.</short>
<descr>
</descr>
<seealso>
<link id="TApplication.QueueAsyncCall"/>
</seealso>
</element>
<element name="TAsyncCallQueue.Top">
<short>The first queued callback request.</short>
</element>
<element name="TAsyncCallQueue.Last">
<short>The last queued callback request.</short>
</element>
<element name="TAsyncCallQueues">
<short>Management information for asynchronous callbacks.</short>
<descr>
<p>
Two queues are used in TAsyncCallQueues. New calls are added to the Next
queue. Cur contains the callbacks currently being processed in the queue.
</p>
<p>
When the application starts processing the calls, the Next queue becomes the
Cur queue, and a new Next queue is created. This simplifies thread-safe
addition in subsequent calls.
</p>
</descr>
<seealso>
<link id="TApplication.QueueAsyncCall"/>
</seealso>
</element>
<element name="TAsyncCallQueues.CritSec">
<short>The critical section for adding and removing queue elements.</short>
<descr/>
</element>
<element name="TAsyncCallQueues.Cur">
<short>The currently processed queue. Processed entries are removed.</short>
<descr/>
</element>
<element name="TAsyncCallQueues.Next">
<short>New calls are added to this queue.</short>
<descr/>
</element>
<element name="TApplicationType">
<short>
Identifies the kind of device where the application currently runs.
</short>
<descr>
<p>
<var>TApplicationType</var> identifies the kind of device where the
application currently runs. Note that the same application can run on
differing device types if it has a flexible user interface.
</p>
<p>
TApplicationType is the type used to implement the <var>ApplicationType</var>
property in <var>TApplication</var>, and returned from widgetset methods that
identify the platform for the interface.
</p>
</descr>
<seealso/>
</element>
<element name="TApplicationType.atDefault">
<short>The widgetset will attempt to auto-detect the device type.</short>
</element>
<element name="TApplicationType.atDesktop">
<short>For common desktops and notebooks.</short>
</element>
<element name="TApplicationType.atPDA">
<short>For smartphones and other devices with a smallish touchscreen.</short>
</element>
<element name="TApplicationType.atKeyPadDevice">
<short>
Devices without any pointing device, such as keypad feature phones or kiosk
machines.
</short>
</element>
<element name="TApplicationExceptionDlg">
<short>Enumeration with dialog types for an application.</short>
<descr>
<p>
<var>TApplicationExceptionDlg</var> is an enumerated type with values that
indicates the type of dialog displayed for an application exception.
<var>TApplicationExceptionDlg</var> is the type used to implement the
<var>ExceptionDialog</var> property in <var>TApplication</var> and
<var>TApplicationProperties</var>.
</p>
</descr>
<seealso>
<link id="TApplication.ExceptionDialog"/>
<link id="TApplicationProperties.ExceptionDialog"/>
</seealso>
</element>
<element name="TApplicationExceptionDlg.aedOkCancelDialog">
<short>
Exception handler window will be a dialog with Ok/Cancel buttons.
</short>
</element>
<element name="TApplicationExceptionDlg.aedOkMessageBox">
<short>Exception handler window will be a simple message box.</short>
</element>
<element name="TApplicationShowGlyphs">
<short>
Indicates the application policy for displaying glyphs on menus and buttons.
</short>
<descr>
<p>
<var>TApplicationShowGlyphs</var> is an enumerated type with values that
indicate the policy for displaying glyphs on menus and buttons.
TApplicationShowGlyphs is the type used to implement the
<var>ShowButtonGlyphs</var> and <var>ShowMenuGlyphs</var> properties in both
<var>TApplication</var> and <var>TApplicationProperties</var>.
</p>
</descr>
<seealso>
<link id="TApplication.ShowButtonGlyphs"/>
<link id="TApplication.ShowMenuGlyphs"/>
<link id="TApplicationProperties.ShowButtonGlyphs"/>
<link id="TApplicationProperties.ShowMenuGlyphs"/>
<link id="#lcl.menus.TGlyphShowMode">TGlyphShowMode</link>
</seealso>
</element>
<element name="TApplicationShowGlyphs.sbgAlways">
<short>Show glyphs always (disregards system preferences).</short>
</element>
<element name="TApplicationShowGlyphs.sbgNever">
<short>Show glyphs never (disregards system preferences).</short>
</element>
<element name="TApplicationShowGlyphs.sbgSystem">
<short>Show glyphs according to the platform or OS preferences.</short>
</element>
<element name="TTaskBarBehavior">
<short>How forms are represented in the TaskBar.</short>
<descr>
<p>
<var>TTaskBarBehavior</var> is an enumerated type with values that define how
forms are displayed in the task bar. TTaskBarBehavior is the type used to
implement the <var>TaskBarBehavior</var> property in <var>TApplication</var>.
</p>
<remark>
Some Linux window managers do not support task bar behaviors. For example:
Cinnamon.
</remark>
</descr>
<seealso>
<link id="TApplication.TaskBarBehavior"/>
</seealso>
</element>
<element name="TTaskBarBehavior.tbDefault">
<short>Show TaskBar buttons according to the platform default.</short>
</element>
<element name="TTaskBarBehavior.tbMultiButton">
<short>Show buttons for Forms with ShowInTaskBar=stDefault.</short>
</element>
<element name="TTaskBarBehavior.tbSingleButton">
<short>Hide buttons for Forms with ShowInTaskBar=stDefault.</short>
</element>
<element name="TApplicationDoubleBuffered">
<short>
Enumeration with values used in the DoubleBuffered property in TApplication.
</short>
<descr/>
<seealso>
<link id="TApplication.DoubleBuffered"/>
</seealso>
</element>
<element name="TApplicationDoubleBuffered.adbDefault">
<short>
Widgetset dependent. For Windows, it is <b>True</b> unless in a remote
desktop connection. For other widgetsets it is <b>False</b>.
</short>
</element>
<element name="TApplicationDoubleBuffered.adbFalse">
<short>DoubleBuffered is not used on the platform.</short>
</element>
<element name="TApplicationDoubleBuffered.adbTrue">
<short>DoubleBuffered is used on the platform.</short>
</element>
<element name="TApplication">
<short>Application management and configuration for a GUI application.</short>
<descr>
<p>
<var>TApplication</var> is a <var>TCustomApplication</var> descendant which
provides facilities used to manage and configure a GUI application.
Properties, methods, and event handlers are provided which allow a program to
create, execute, monitor, maintain and destroy an application and its forms.
Every GUI application contains an Application variable that represents the
TApplication or descendent class instance.
</p>
<p>
TApplication provides a message processing loop that includes hooks for event
handlers and exception handling, and supports dispatching messages for
<var>TCustomAction</var> instances used in application forms. TApplication
provides support for hints and content-sensitive help for forms and controls
used in the application. Convenience methods, like <var>MessageBox</var>, are
provided to simplify access to dialogs and error messages in the application.
</p>
<remark>
For the macOS Carbon widgetset, an application is executed via the Application
Bundle. As a result, command line parameters are not available to the
application instance. The OnDropFiles event handler must be used to detected
when associated files need to be opened.
</remark>
</descr>
<seealso>
<link id="TApplication.GetParams"/>
<link id="TApplication.OnDropFiles"/>
<link id="#lazutils.lazutf8.ParamStrUTF8">ParamStrUTF8</link>
<link id="#fcl.custapp.TCustomApplication.ExeName">TCustomApplication.ExeName</link>
<link id="#fcl.custapp.TCustomApplication.Params">TCustomApplication.Params</link>
<link id="#fcl.custapp.TCustomApplication.ParamCount">TCustomApplication.ParamCount</link>
</seealso>
</element>
<element name="TApplication.FApplicationHandlers">
<short>
Holds the registered handler routines for the application.
</short>
</element>
<element name="TApplication.FApplicationType" link="#lcl.forms.TApplication.ApplicationType"/>
<element name="TApplication.FCaptureExceptions" link="#lcl.forms.TApplication.CaptureExceptions"/>
<element name="TApplication.FComponentsToRelease">
<short>The list of components marked for release.</short>
<descr/>
<seealso>
<link id="TApplication.Release"/>
</seealso>
</element>
<element name="TApplication.FComponentsReleasing">
<short>
The list of components which currently are released (destroyed).
</short>
<descr/>
<seealso>
<link id="TApplication.Release"/>
</seealso>
</element>
<element name="TApplication.FCreatingForm"/>
<element name="TApplication.FDoubleBuffered"/>
<element name="TApplication.FExceptionDialog"/>
<element name="TApplication.FExtendedKeysSupport"/>
<element name="TApplication.FFindGlobalComponentEnabled" link="#lcl.forms.TApplication.FindGlobalComponentEnabled"/>
<element name="TApplication.FFlags" link="#lcl.forms.TApplication.Flags"/>
<element name="TApplication.FHint" link="#lcl.forms.TApplication.Hint"/>
<element name="TApplication.FHintColor" link="#lcl.forms.TApplication.HintColor"/>
<element name="TApplication.FHintControl" link="#lcl.forms.TApplication.HintControl"/>
<element name="TApplication.FHintHidePause" link="#lcl.forms.TApplication.HintHidePause"/>
<element name="TApplication.FHintHidePausePerChar" link="#lcl.forms.TApplication.HintHidePausePerChar"/>
<element name="TApplication.FHintPause" link="#lcl.forms.TApplication.HintPause"/>
<element name="TApplication.FHintRect">
<short>The screen area of the current Hint window.</short>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.FHintShortCuts" link="#lcl.forms.TApplication.HintShortCuts"/>
<element name="TApplication.FHintShortPause" link="#lcl.forms.TApplication.HintShortPause"/>
<element name="TApplication.FHintTimer">
<short>The timer for showing and hiding Hints.</short>
</element>
<element name="TApplication.FHintTimerType">
<short>The Hint time mode.</short>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.FHintWindow">
<short>The current Hint window.</short>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.FIcon" link="#lcl.forms.TApplication.Icon"/>
<element name="TApplication.FBigIconHandle">
<short>The Handle for the big application icon.</short>
</element>
<element name="TApplication.FLayoutAdjustmentPolicy"/>
<element name="TApplication.FMainFormOnTaskBar" link="#lcl.forms.TApplication.MainFormOnTaskBar"/>
<element name="TApplication.FModalLevel" link="#lcl.forms.TApplication.ModalLevel"/>
<element name="TApplication.FLayoutAdjustmentPolicy"/>
<element name="TApplication.FMoveFormFocusToChildren"/>
<element name="TApplication.FOnCircularException"/>
<element name="TApplication.FOnGetMainFormHandle" link="#lcl.forms.TApplication.OnGetMainFormHandle"/>
<element name="TApplication.FOnMessageDialogFinished"/>
<element name="TApplication.FOnModalBegin" link="#lcl.forms.TApplication.OnModalBegin"/>
<element name="TApplication.FOnModalEnd" link="#lcl.forms.TApplication.OnModalEnd"/>
<element name="TApplication.FScaled"/>
<element name="TApplication.FShowButtonGlyphs" link="#lcl.forms.TApplication.ShowButtonGlyphs"/>
<element name="TApplication.FShowMenuGlyphs" link="#lcl.forms.TApplication.ShowMenuGlyphs"/>
<element name="TApplication.FSmallIconHandle">
<short>The Handle for the small application icon.</short>
</element>
<element name="TApplication.FIdleLockCount">
<short>
Counter for nested Idle locks, preventing execution of OnIdle handlers.
</short>
</element>
<element name="TApplication.FLastKeyDownSender">
<short>Cached key event parameter.</short>
</element>
<element name="TApplication.FLastKeyDownKeys">
<short>List of key values for the last KeyDown sender.</short>
</element>
<element name="TApplication.FLastKeyDownShift">
<short>Cached key event parameter.</short>
</element>
<element name="TApplication.FMainForm" link="#lcl.forms.TApplication.MainForm"/>
<element name="TApplication.FMouseControl" link="#lcl.forms.TApplication.MouseControl"/>
<element name="TApplication.FNavigation" link="#lcl.forms.TApplication.Navigation"/>
<element name="TApplication.FOldExceptProc">
<short>The previously installed exception handler.</short>
</element>
<element name="TApplication.FOnActionExecute" link="#lcl.forms.TApplication.OnActionExecute"/>
<element name="TApplication.FOnActionUpdate" link="#lcl.forms.TApplication.OnActionUpdate"/>
<element name="TApplication.FOnActivate" link="#lcl.forms.TApplication.OnActivate"/>
<element name="TApplication.FOnDeactivate" link="#lcl.forms.TApplication.OnDeactivate"/>
<element name="TApplication.FOnDestroy" link="#lcl.forms.TApplication.OnDestroy"/>
<element name="TApplication.FOnDropFiles" link="#lcl.forms.TApplication.OnDropFiles"/>
<element name="TApplication.FOnHelp" link="#lcl.forms.TApplication.OnHelp"/>
<element name="TApplication.FOnHint" link="#lcl.forms.TApplication.OnHint"/>
<element name="TApplication.FOnIdle" link="#lcl.forms.TApplication.OnIdle"/>
<element name="TApplication.FOnIdleEnd" link="#lcl.forms.TApplication.OnIdleEnd"/>
<element name="TApplication.FOnEndSession" link="#lcl.forms.TApplication.OnEndSession"/>
<element name="TApplication.FOnQueryEndSession" link="#lcl.forms.TApplication.OnQueryEndSession"/>
<element name="TApplication.FOnMinimize" link="#lcl.forms.TApplication.OnMinimize"/>
<element name="TApplication.FOnRestore" link="#lcl.forms.TApplication.OnRestore"/>
<element name="TApplication.FOnShortcut" link="#lcl.forms.TApplication.OnShortcut"/>
<element name="TApplication.FOnShowHint" link="#lcl.forms.TApplication.OnShowHint"/>
<element name="TApplication.FOnUserInput" link="#lcl.forms.TApplication.OnUserInput"/>
<element name="TApplication.FAsyncCall" link="#lcl.forms.TApplication.QueueAsyncCall">
<short>Queues for asynchronous calls.</short>
</element>
<element name="TApplication.FShowHint" link="#lcl.forms.TApplication.ShowHint"/>
<element name="TApplication.FShowMainForm" link="#lcl.forms.TApplication.ShowMainForm"/>
<element name="TApplication.FLastMousePos">
<short>Cached mouse event parameter.</short>
</element>
<element name="TApplication.FLastMouseControl">
<short>Cached mouse event parameter.</short>
</element>
<element name="TApplication.FLastMouseControlValid">
<short>Cached mouse event parameter.</short>
</element>
<element name="TApplication.FBidiMode" link="#lcl.forms.TApplication.BiDiMode"/>
<element name="TApplication.FRestoreStayOnTop">
<short>The list of all forms that should be restored to StayOnTop.</short>
<descr>The list is created in RemoveStayOnTop, processed in
RestoreStayOnTop.</descr>
</element>
<element name="TApplication.FTaskBarBehavior" link="#lcl.forms.TApplication.TaskBarBehavior"/>
<element name="TApplication.FUpdateFormatSettings"/>
<element name="TApplication.FRemoveStayOnTopCounter"/>
<element name="TApplication.FExceptionCounter"/>
<element name="TApplication.DoOnIdleEnd">
<short>
Notifies the OnIdleEnd handlers when the application exits Idle state.
</short>
</element>
<element name="TApplication.GetActive"/>
<element name="TApplication.GetActive.Result"/>
<element name="TApplication.GetCurrentHelpFile">
<short>
Gets the HelpFile name for the active form, or the Application.
</short>
<descr>
<p>
<var>GetCurrentHelpFile</var> is a <var>String</var> function used to get the
help file name for the active form or application.
</p>
<p>
<var>GetCurrentHelpFile</var> checks for an active form in the
<var>Screen</var> singleton. If a form is active, the file name in its
<var>HelpFile</var> property is used as the return value. If a form is not
active, the <var>HelpFile</var> in the <var>Application</var> instance is
used.
</p>
</descr>
<seealso>
<link id="TScreen.ActiveCustomForm"/>
<link id="TCustomForm.HelpFile"/>
<link id="TApplication.HelpFile"/>
</seealso>
</element>
<element name="TApplication.GetCurrentHelpFile.Result">
<short>Help file name located in the method.</short>
</element>
<element name="TApplication.GetExename">
<short>Gets the name of the executable for the application.</short>
<descr>
<p>
<var>GetExename</var> is a <var>String</var> function used to get the name of
the executable file which started the application. The return value contains
the first command line parameter (ordinal position 0) returned from the
<var>ParamStrUTF8</var> routine in <file>LazUtils</file>.
</p>
</descr>
<seealso>
<link id="#lazutils.lazutf8.ParamStrUTF8">ParamStrUTF8</link>
</seealso>
</element>
<element name="TApplication.GetExename.Result">
<short>Name of the executable file used to start the application.</short>
</element>
<element name="TApplication.GetHandle">
<short>Gets the value for the Handle property.</short>
<descr>
<p>
Returns the AppHandle property from the WidgetSet singleton.
</p>
</descr>
<seealso>
<link id="TApplication.Handle"/>
</seealso>
</element>
<element name="TApplication.GetHandle.Result">
<short>The Handle for the application.</short>
</element>
<element name="TApplication.GetMainFormHandle">
<short>
Determines the main form handle, using all available handlers.
</short>
<descr/>
<seealso>
<link id="TApplication.OnGetMainFormHandle"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.GetMainFormHandle.Result">
<short>Handle value for the main form.</short>
</element>
<element name="TApplication.GetTitle">
<short>
Gets the value for the Title when it is not already stored in the property.
</short>
<descr>
<p>
Extracts the program name from the command line arguments when Title is
unassigned.
</p>
</descr>
</element>
<element name="TApplication.GetTitle.Result">
<short>Value for the Title property.</short>
</element>
<element name="TApplication.FreeIconHandles">
<short>Destroys the application icons.</short>
<descr>
<p>
<var>FreeIconHandles</var> is a procedure used to free icon handles used in
the application. FreeIconHandles ensures that the internal members for the
small and large icon handles are destroyed (when assigned). The
<var>DestroyIcon</var> routine is called to destroy each of the icon handles
using the correct routine for the widgetset implementation.
</p>
<p>
FreeIconHandles is called from the destructor for the class instance, and
when an icon for the application has been changed.
</p>
</descr>
<seealso>
<link id="TApplication.Destroy"/>
<link id="TApplication.IconChanged"/>
<link id="TApplication.SmallIconHandle"/>
<link id="TApplication.BigIconHandle"/>
</seealso>
</element>
<element name="TApplication.IconChanged">
<short>
Implements the OnChange event handler used for the Icon in the application.
</short>
<descr>
<p>
<var>IconChanged</var> is a method used to load the new application icon, and
to notify the widgetset and all forms of the change. It implements the
<var>OnChange</var> event handler assigned to the <var>Icon</var> for the
application.
</p>
<p>
It frees existing handles both the small and large versions of the Icon for
the application, and calls the <var>AppSetIcon</var> method in the widgetset
class to re-create the handles.
</p>
<p>
IconChanged posts a <var>CM_ICONCHANGED</var> control message to each of the
<var>TCustomForm</var> instances in the <var>Screen</var> singleton.
Unassigned handle values are provided for both the small and large icons on
the form.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.IconChanged.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TApplication.SetBidiMode">
<short>Sets the value for the BiDiMode property.</short>
<descr>
<p>
<var>SetBidiMode</var> is a method used to set value for the
<var>BiDiMode</var> property. It updates the property value, and calls
<var>NotifyCustomForms</var> to post a <var>CM_PARENTBIDIMODECHANGED</var>
control message to all <var>TCustomForm</var> instances on the
<var>Screen</var>.
</p>
</descr>
<seealso>
<link id="TApplication.BiDiMode"/>
<link id="TApplication.NotifyCustomForms"/>
</seealso>
</element>
<element name="TApplication.SetBidiMode.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplication.SetFlags">
<short>Sets the value for the Flags property.</short>
<descr>
<p>
SetFlags allows the value AppNoExceptionMessages to be added to or removed
from the values in the TApplicationFlags set type. All other existing values
in Flags are not modified.
</p>
</descr>
<seealso>
<link id="TApplication.Flags"/>
<link id="TApplicationFlags"/>
</seealso>
</element>
<element name="TApplication.SetFlags.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplication.SetMainFormOnTaskBar">
<short>Sets the value for the MainFormOnTaskBar property.</short>
<descr>
<p>
Calls the <var>AppSetMainFormOnTaskBar</var> method in the widgetset class to
apply the new value for the property.
</p>
</descr>
<seealso>
<link id="TApplication.MainFormOnTaskBar"/>
</seealso>
</element>
<element name="TApplication.SetMainFormOnTaskBar.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplication.SetNavigation">
<short>Sets the value for the Navigation property.</short>
<descr/>
<seealso>
<link id="TApplication.Navigation"/>
</seealso>
</element>
<element name="TApplication.SetNavigation.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplication.SetShowButtonGlyphs">
<short>Sets the value for the ShowButtonGlyphs property.</short>
<descr>
<p>
Updates the property value, and calls the <var>NotifyCustomForms</var> method
to post a <var>CM_APPSHOWBTNGLYPHCHANGED</var> control message to
<var>TCustomForm</var> instances for the application.
</p>
</descr>
<seealso>
<link id="TApplication.ShowButtonGlyphs"/>
</seealso>
</element>
<element name="TApplication.SetShowButtonGlyphs.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplication.SetShowMenuGlyphs" link="#lcl.forms.TApplication.ShowMenuGlyphs"/>
<element name="TApplication.SetShowMenuGlyphs.AValue"/>
<element name="TApplication.SetTaskBarBehavior" link="#lcl.forms.TApplication.TaskBarBehavior"/>
<element name="TApplication.SetTaskBarBehavior.AValue"/>
<element name="TApplication.UpdateMouseControl">
<short>
Updates the internal member used to track the mouse capture control in the
application.
</short>
<descr>
<p>
Ensures that a CM_MOUSELEAVE message is performed for the current MouseControl
before the member is updated. Updates values in the HintControl and Hint
properties, and performs a CM_MOUSEENTER message after the MouseControl has
been changed.
</p>
</descr>
<seealso>
<link id="TApplication.MouseControl"/>
<link id="TApplication.Hint"/>
<link id="TApplication.HintControl"/>
<link id="GetLongHint"/>
</seealso>
</element>
<element name="TApplication.UpdateMouseControl.NewMouseControl">
<short>
Control instance to receive the mouse capture.
</short>
</element>
<element name="TApplication.UpdateMouseHint">
<short>Sets Hint to the (new) hint that applies to CurrentControl.</short>
<descr>
</descr>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.UpdateMouseHint.CurrentControl">
<short>The control under the mouse.</short>
</element>
<element name="TApplication.SetCaptureExceptions" link="#lcl.forms.TApplication.CaptureExceptions"/>
<element name="TApplication.SetCaptureExceptions.AValue"/>
<element name="TApplication.SetHint" link="#lcl.forms.TApplication.Hint"/>
<element name="TApplication.SetHint.AValue"/>
<element name="TApplication.SetHintColor" link="#lcl.forms.TApplication.HintControl"/>
<element name="TApplication.SetHintColor.AValue"/>
<element name="TApplication.SetIcon" link="#lcl.forms.TApplication.Icon"/>
<element name="TApplication.SetIcon.AValue"/>
<element name="TApplication.SetShowHint" link="#lcl.forms.TApplication.ShowHint"/>
<element name="TApplication.SetShowHint.AValue"/>
<element name="TApplication.StopHintTimer">
<short>Disables the Hint timer.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.ValidateHelpSystem">
<short>
Checks for an installed <link
id="#lcl.HelpIntfs.HelpManager">HelpManager</link>.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.ValidateHelpSystem.Result">
<short><b>True</b> when HelpManager is not Nil.</short>
</element>
<element name="TApplication.WndProc" link="#lcl.controls.TControl.WndProc"/>
<element name="TApplication.WndProc.AMessage"/>
<element name="TApplication.DispatchAction">
<short>Asks the active form and MainForm to handle the action.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.DispatchAction.Result">
<short><b>True</b> when the action was handled.</short>
</element>
<element name="TApplication.DispatchAction.Msg"/>
<element name="TApplication.DispatchAction.Action"/>
<element name="TApplication.AddHandler">
<short>
Adds an application notification handler to the list of handlers for the
specified type.
</short>
<descr>
<p>
<var>AddHandler</var> is a procedure used to add an application notification
handler to the list of handlers in the TApplication instance.
</p>
<p>
<var>HandlerType</var> is a <var>TApplicationHandlerType</var> enumeration
value that defines the situation(s) where the handler can be executed. See
TApplicationHandlerType for more information about values in the enumeration.
</p>
<p>
<var>Handler</var> is a <var>TMethod</var> record with pointers to the code
and optional data executed when the handler is invoked.
</p>
<p>
<var>AsFirst</var> indicates if the handler should be inserted as the initial
handler in the method list (when <b>True</b>), or appended to the end of the
list (when <b>False</b>).
</p>
<p>
AddHandler calls <var>RaiseGDBException</var> to raise an exception when the
pointer to the Code in Handler has not been assigned.
</p>
<p>
AddHandler ensures that a <var>TMethodList</var> exists for handlers using
the value in HandlerType, and calls the <var>Add</var> method in the
<var>TMethodList</var> to store the Handler at the position needed for
AsFirst.
</p>
<p>
AddHandler is called from the implementation of methods specialized for a
specific application handler type, like:
</p>
<ul>
<li>AddOnIdleHandler</li>
<li>AddOnIdleEndHandler</li>
<li>AddOnUserInputHandler</li>
<li>AddOnKeyDownBeforeHandler</li>
<li>AddOnKeyDownHandler</li>
<li>AddOnActivateHandler</li>
<li>AddOnDeactivateHandler</li>
<li>AddOnExceptionHandler</li>
<li>AddOnEndSessionHandler</li>
<li>AddOnQueryEndSessionHandler</li>
<li>AddOnMinimizeHandler</li>
<li>AddOnModalBeginHandler</li>
<li>AddOnModalEndHandler</li>
<li>AddOnRestoreHandler</li>
<li>AddOnDropFilesHandler</li>
<li>AddOnHelpHandler</li>
<li>AddOnHintHandler</li>
<li>AddOnShowHintHandler</li>
<li>AddOnGetMainFormHandleHandler</li>
</ul>
</descr>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
<seealso>
</seealso>
</element>
<element name="TApplication.AddHandler.HandlerType">
<short>
Application handler type for the handler routine.
</short>
</element>
<element name="TApplication.AddHandler.Handler">
<short>
Handler routine added in the method.
</short>
</element>
<element name="TApplication.AddHandler.AsFirst">
<short>
<b>True</b> if the handler is stored as the first entry in the list of
handlers for the type. <b>False</b> to append the handler to the end of the
list.
</short>
</element>
<element name="TApplication.RemoveHandler">
<short>
Removes an application notification handler from the list for the specified
handler type.
</short>
<descr>
<p>
Calls the Remove method in the TMethodList for the application handler type
in the HandlerType argument. Handler contains the TMethod instance to locate
and remove from the application handlers for the type.
</p>
<p>
RemoveHandler is called from other methods which operate on a specific
TApplicationHandlerType, like:
</p>
<ul>
<li>RemoveOnIdleHandler</li>
<li>RemoveOnIdleEndHandler</li>
<li>RemoveOnUserInputHandler</li>
<li>RemoveOnKeyDownBeforeHandler</li>
<li>RemoveOnKeyDownHandler</li>
<li>RemoveOnActivateHandler</li>
<li>RemoveOnDeactivateHandler</li>
<li>RemoveOnExceptionHandler</li>
<li>RemoveOnEndSessionHandler</li>
<li>RemoveOnQueryEndSessionHandler</li>
<li>RemoveOnMinimizeHandler</li>
<li>RemoveOnModalBeginHandler</li>
<li>RemoveOnModalEndHandler</li>
<li>RemoveOnRestoreHandler</li>
<li>RemoveOnDropFilesHandler</li>
<li>RemoveOnHelpHandler</li>
<li>RemoveOnHintHandler</li>
<li>RemoveOnShowHintHandler</li>
<li>RemoveOnGetMainFormHandleHandler</li>
</ul>
</descr>
<seealso>
<link id="TApplication.AddHandler"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveHandler.HandlerType">
<short>
Application notification type for the handler removed in the method.
</short>
</element>
<element name="TApplication.RemoveHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.RunLoop">
<short>Encapsulates the application message loop (HandleMessage).</short>
</element>
<element name="TApplication.Activate">
<short>
Handler for application activation, notifies all activation handlers.
</short>
</element>
<element name="TApplication.Deactivate">
<short>
Handler for application deactivation, notifies all deactivation handlers.
</short>
<descr/>
</element>
<element name="TApplication.Deactivate.Force">
<short><b>True</b> when called from the widgetset.</short>
</element>
<element name="TApplication.GetConsoleApplication">
<short>Always returns <b>False</b> for a GUI application.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.GetConsoleApplication.Result">
<short><b>False</b> for a GUI application.</short>
</element>
<element name="TApplication.NotifyIdleHandler">
<short>Signals all idle handlers for the application.</short>
<descr>
<p>
<var>NotifyIdleHandler</var> is a method used to signal event handlers using
the <var>ahtIdle</var> application handler type.
</p>
<p>
The internal array of handlers is checked for a <var>TMethodList</var> which
uses the application handler type. If it exists, each of the methods in the
list are signalled, in reverse order, using the value in <var>Done</var> as a
control flag. While Done is <b>True</b>, the handlers are continuously called
in the loop. If any handler in the list sets Done to <b>False</b>, the method
is exited.
</p>
<p>
NotifyIdleHandler is called from the <var>Idle</var> method. It occurs after
the <var>ReleaseComponents</var> and <var>ProcessAsyncCallQueue</var> methods
have been called. It is also called after the <var>OnIdle</var> event handler
in the TApplication has been signalled (when assigned) and when the Done
argument to the event handler is <b>True</b>.
</p>
</descr>
<seealso>
<link id="TApplication.OnIdle"/>
<link id="TApplication.Idle"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.NotifyIdleHandler.Done">
<short>
<b>True</b> when all handlers are done, meaning: wait for the next message.
</short>
</element>
<element name="TApplication.NotifyIdleEndHandler">
<short>
Notifies all Idle End handlers when a new message has arrived.
</short>
<descr>
<p>
Executes the <var>CallNotifyEvents</var> method in the TMethodList for the
handler type. Te application instance is passed as an argument to the method.
</p>
<p>
NotifyIdleEndHandler is called when AppIdleEndSent is included in the Flags
for the TApplication instance. It occurs after the OnIdleEnd event handler
has been signalled (when assigned).
</p>
</descr>
<seealso>
<link id="TApplication.OnIdleEnd"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.NotifyActivateHandler">
<short>Notifies all Activate handlers for the application.</short>
<descr>
<p>
<var>NotifyActivateHandler</var> signals the <var>OnActivate</var> event
handler (when assigned) using the <var>TApplication</var> instance as the
Sender for the notification event. The <var>CallNotifyEvents</var> method in
the TMethodList is called to signal each of the routines for the handler type.
</p>
<p>
NotifyActivateHandler is called when an application is initially executed,
and when focus is acquired from a different application.
</p>
</descr>
<seealso>
<link id="TApplication.OnActivate"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.NotifyDeactivateHandler">
<short>Notifies all Deactivate handlers for the application.</short>
<descr>
<p>
<var>NotifyDeactivateHandler</var> is a method used to signal all of the
deactivate handlers for the application. OnDeactivate is signalled (when
assigned) using the application instance as an argument.
</p>
<p>
CallNotifyEvents is executed for each of the handlers in the TMethodList for
the ahtDeactivate notification type. Use AddOnDeactivateHandler and
RemoveOnDeactivateHandler to maintain an additional handler for the
notification type.
</p>
<p>
NotifyDeactivateHandler is called from the Deactivate method, and occurs when
focus is changed to another application or the application is closed.
</p>
</descr>
<seealso>
<link id="TApplication.OnDeactivate"/>
<link id="TApplication.AddOnDeactivateHandler"/>
<link id="TApplication.RemoveOnDeactivateHandler"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.NotifyCustomForms">
<short>
Performs the specified message for all custom forms in the application.
</short>
<descr>
<p>
Calls the <var>Perform</var> method for custom forms in the application using
<var>Msg</var> as an argument.
</p>
<p>
NotifyCustomForms is called when theme options for button or menu glyphs are
changed to sbgSystem in the application instance.
</p>
</descr>
<seealso>
<link id="TScreen.CustomForms"/>
<link id="Screen"/>
<link id="TApplication.IntfThemeOptionChange"/>
<link id="#lcl.controls.TControl.Perform">TControl.Perform</link>
</seealso>
</element>
<element name="TApplication.NotifyCustomForms.Msg">
<short>The message sent to the forms.</short>
</element>
<element name="TApplication.IsHintMsg">
<short>Exists for Delphi compatibility only.</short>
<descr>
<p>
Always returns <var>False</var> in <var>TApplication</var>. Provided for
Delphi code compatibility only.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.IsHintMsg.Result">
<short>Always returns <b>False</b>.</short>
</element>
<element name="TApplication.IsHintMsg.Msg">
<short>Not used in the implementation.</short>
</element>
<element name="TApplication.DoOnHelp">
<short>
Signals an OnHelp event handler.
</short>
<descr>
<p>
Signals the OnHelp message handler. DoOnHelp tries the OnHelp handlers for
the active form and the Application, as well as handler routines added for
the ahtHelp handler type.
</p>
<p>
The <var>CallHelp</var> argument indicates if handler(s) in the
<var>Application</var> instance should be called when the event handler in
the form is completed. Set CallHelp to <b>False</b> when the help request has
been satisfied in one of the event handlers.
</p>
<p>
DoOnHelp is called from the HelpCommand method.
</p>
</descr>
<seealso>
<link id="TApplication.OnHelp"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.DoOnHelp.Result">
<short><b>True</b> when the message was handled.</short>
</element>
<element name="TApplication.DoOnHelp.Command">
<short>
Help command to handle in the event handler(s).
</short>
</element>
<element name="TApplication.DoOnHelp.Data">
<short>
Pointer to the help data used in the event handler(s).
</short>
</element>
<element name="TApplication.DoOnHelp.CallHelp">
<short>
<b>True</b> to signal a help handler in the form. <b>False</b> if the Help
request is handled by the application.
</short>
</element>
<element name="TApplication.DoOnMouseMove">
<short>
OnMouseMove message handler, updates the Hint.
</short>
<descr>
<p>
<var>DoOnMouseMove</var> performs actions needed when a mouse move message is
received and applied for the application. It retrieves the current position
for the mouse pointer, and calls the ActivateHint method to build / display a
hint for the active form / control in the application.
</p>
<p>
DoOnMouseMove is called from the NotifyUserInputHandler method.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.ShowHintWindow">
<short>Shows or hides the Hint window for the application.</short>
<descr>
<p>
When a parented HintControl has been assigned, handler routines are signalled
to check whether the hint can be display in the event handler. The OnShowHint
event handler is signalled first (when assigned). Additional application
handlers assigned using AddOnShowHintHandler are signalled next.
</p>
<p>
If the hint text is not empty, it is displayed and its timer is started.
Otherwise the HideHint method is called to hide the hint window.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.ShowHintWindow.Info">
<short>
Updated with the Hint-related information for a parent control or form.
</short>
</element>
<element name="TApplication.OnHintTimer">
<short>
Implements an event handler signalled when the timer for a hint display has
elapsed.
</short>
<descr>
<p>
<var>OnHintTimer</var> is an implementation of the event handler assigned to
the OnTimer event handler in the internal timer for the application instance.
</p>
<p>
It calls StopHintTimer to ensure that the timer is disabled. If the mouse
pointer is not within the client area for the current form or control,
HideHint is called to hide the hint window. Otherwise, hint information for
the control under the mouse pointer is retrieved and ShowHintWindow is called
to start a new hint display.
</p>
<p>
OnHintTimer is called directly from the StartHintTimer method when Internal
is set to 0 (or a negative value).
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.OnHintTimer.Sender">
<short>
Object instance (TApplication) for the event notification.
</short>
</element>
<element name="TApplication.SetTitle">
<short>Sets the value for the Title property.</short>
<descr>
<p>
Calls the inherited method on entry. Calls the <var>AppSetTitle</var> method
in the widgetset class to apply the new value for the property.
</p>
</descr>
<seealso>
<link id="TApplication.Title"/>
</seealso>
</element>
<element name="TApplication.SetTitle.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplication.StartHintTimer">
<short>Starts the timer for display of a hint message.</short>
<descr>
<p>
Called from the ActivateHint method when a hint window is not already active
and visible in the application.
</p>
</descr>
<seealso>
<link id="TApplication.Hint"/>
<link id="TApplication.HintPause"/>
<link id="TApplication.ActivateHint"/>
<link id="TAppHintTimerType"/>
</seealso>
</element>
<element name="TApplication.StartHintTimer.Interval">
<short>
Interval (in milliseconds) that the hint timer must wait before executing the
OnHintTimer routine. Normally contains the value in HintPause where 500ms is the default.
</short>
</element>
<element name="TApplication.StartHintTimer.TimerType">
<short>
Contains ahttShowHint in StartHintTimer.
</short>
</element>
<element name="TApplication.UpdateVisible">
<short>Asks the widgetset to update its task bar entries.</short>
<descr>
<p>
<var>UpdateVisible</var> is a method used to notify the widgetset class
instance that the task bar needs to be updated for the visible forms in the
application. If there are visible forms which share application taskbar item
then the application task bar item must be visible, too. Otherwise, hide it.
</p>
<p>
UpdateVisible is called when a form is added to or removed from the
CustomForms in the Screen singleton for the application.
</p>
</descr>
<seealso>
<link id="TApplication.TaskBarBehavior"/>
<link id="TCustomForm.ShowInTaskBar"/>
<link id="Screen"/>
<link id="TScreen.CustomForms"/>
<link id="TScreen.CustomFormCount"/>
<link id="#lcl.controls.TWinControl.Showing">TWinControl.Showing</link>
<link id="#lcl.controls.TControl.ControlState">TControl.ControlState</link>
</seealso>
</element>
<element name="TApplication.DoIdleActions">
<short>Updates all Actions and hides splash screens.</short>
<descr>
<p>
<var>DoIdleActions</var> ensures that the UpdateActions method is called for
visible and enabled forms in the application. This allows the TBasicAction
instances in menus and controls on each form to be updated as well.
</p>
<p>
DoIdleActions hides any form instance in Screen which uses fsSplash in its
FormStyle property.
</p>
<p>
DoIdleActions is called from the Idle method after OnIdle and other idle
event handlers have been signalled and indicated that they have been
completed successfully.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.MenuPopupHandler">
<short>Implements the OnMenuPopupHandler for the application.</short>
<descr>
<p>
Assigned as the handler routine for the OnMenuPopupHandler variable in the
LCL when the application instance is created.
</p>
<p>
Calls the <var>HideHint</var> method to manage values in
<var>HintWindow</var>, <var>HintControl</var>, and <var>HintRect</var> (when
needed).
</p>
</descr>
<seealso>
<link id="#lcl.menus.OnMenuPopupHandler">OnMenuPopupHandler</link>
</seealso>
</element>
<element name="TApplication.MenuPopupHandler.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TApplication.ProcessAsyncCallQueue">
<short>Calls all methods queued in QueueAsyncCall.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.DoDecLCLRefcountToZero">
<short>
Performs actions needed when the reference count for a TLCLComponent instance
reaches 0 in the application.
</short>
<descr>
<p>
DoDecLCLRefcountToZero is used in the ReleaseComponent method, and is assigned
as the handler routine for the OnDecLCLRefcountToZero event when the
LCLRefCount for the TLCLComponent has a value larger than 0.
</p>
<p>
DoDecLCLRefcountToZero ensures that the global OnDecLCLRefcountToZero handler
in <file>lclclasses.pp</file> is unassigned and a call to FreeComponent is
queued for asynchronous execution in the application. This is done to prevent
an exception that occurs when the component is freed while a previous call to
the OnDecLCLRefcountToZero handler is still in process.
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TApplication.ReleaseComponent"/>
<link id="TApplication.FreeComponent"/>
<link id="#lcl.lclclasses.TLCLComponent.LCLRefCount">TLCLComponent.LCLRefCount</link>
<link id="#lcl.lclclasses.OnDecLCLRefcountToZero">OnDecLCLRefcountToZero</link>
</seealso>
</element>
<element name="TApplication.DoDecLCLRefcountToZero.Sender">
<short/>
</element>
<element name="TApplication.FreeComponent" link="#lcl.forms.TApplication.ReleaseComponents"/>
<element name="TApplication.FreeComponent.Data">
<short>Ignored, should be zero.</short>
</element>
<element name="TApplication.ReleaseComponents">
<short>Destroys all components marked for release.</short>
<descr>
<p>
ReleaseComponents ensures that any component in the internal list calls
ReleaseComponent to handle the free notification for a reference-counted LCL
component.
</p>
<p>
ReleaseComponents is called from the Idle and FreeComponent methods.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.DoBeforeFinalization">
<short>Destroys all components.</short>
<descr>
<p>
Called from the <var>BeforeFinalization</var> routine which is used as the
<var>ExitProc</var> handler in the application instance.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.GetParams">
<short>
Returns the command line argument at the specified ordinal position.
</short>
<descr>
<p>
<var>GetParams</var> is an overridden <var>String</var> function in
TApplication and is used to get the argument at the specified position in the
command line. It re-implements the read access specifier for the Params
property from the ancestor class (TCustomApplication), and does not call the
inherited method.
</p>
<p>
<var>Index</var> is the ordinal position for the requested parameter value.
Index should be in the range <b>0..<var>ParamCount</var></b>. Values in Index
outside this range cause an empty string ('') to be returned for a parameter
value.
</p>
<p>
In most cases, the parameter at position <b>0</b> contains the name and
optional path to the executable file for the application. For cross-platform
compatibility, use the ExeName property to get the path and name for the binary
instead. Subsequent index positions contain any command line arguments passed
to the executable.
</p>
<p>
The return value contains the UTF-8-encoded string with the value for the
parameter at the specified position, or an empty string when not present. The
value is retrieved using the <var>ParamStrUTF8</var> routine for the position
in Index.
</p>
</descr>
<seealso>
<link id="#lazutils.lazutf8.ParamStrUTF8">ParamStrUTF8</link>
<link id="#fcl.custapp.TCustomApplication.Params">TCustomApplication.Params</link>
<link id="#fcl.custapp.TCustomApplication.ParamCount">TCustomApplication.ParamCount</link>
<link id="#rtl.system.ParamStr">ParamStr</link>
</seealso>
</element>
<element name="TApplication.GetParams.Result">
<short>
String with the requested parameter value, or an empty string when not found.
</short>
</element>
<element name="TApplication.GetParams.Index">
<short>
Ordinal position for the requested parameter value.
</short>
</element>
<element name="TApplication.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance.
</p>
<p>
It ensures that the LCL is configured to use the private <var>WndProc</var>
method to handle messages dispatched for the application instance.
</p>
<p>
Create allocates resources needed in the class instance, and sets the default
values for properties. Event handler routines implemented in
<var>TApplication</var> are assigned as needed.
</p>
<p>
Create calls the inherited constructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.Create">TComponent.Create</link>
</seealso>
</element>
<element name="TApplication.Create.AOwner">
<short>The Owner object that invoked this instance of TApplication.</short>
</element>
<element name="TApplication.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is the overridden destructor for the class instance.
</p>
<p>
<var>Destroy</var> ensures that the value <var>AppDestroying</var> is
included in the <var>Flags</var> for the application, and signals the
<var>OnDestroy</var> event handler (when assigned). Destroy calls the
<var>ProcessAsyncCallQueue</var> method to process / handle queued
asynchronous method calls pending for the application instance.
</p>
<p>
Hint display is cancelled and suppressed while the application is shutting
down. The action component for the application is set to <b>Nil</b> to
prevent execution of associated actions during shutdown.
</p>
<p>
Destroy frees resources allocated in the application instance, including the
Icon and any Icon handles currently in use. Handlers added to application
instance are also freed.
</p>
<p>
Destroy calls the inherited destructor, and discards any pending asynchronous
calls not previously handled for the application instance. Exception handling
is restored to the state on entry to the Create constructor. Finally, the
Application class instance is set to <b>Nil</b>.
</p>
</descr>
<errors>
<p>
Destroy calls <var>RaiseGDBException</var> to raise an exception if the
current class instance is unassigned (contains <b>Nil</b>). Uses the
exception message 'TApplication.Destroy Self=nil'.
</p>
<p>
Raises an <var>EAssertFalied</var> exception if the CustomApplication and
Application variables do not contain the same TCustomApplication instance.
</p>
</errors>
<seealso/>
</element>
<element name="TApplication.ActivateHint">
<short>Configures a hint window for the specified mouse position.</short>
<descr>
<p>
<var>ActivateHint</var> is a procedure used to configure a hint window
display at the coordinates specified in <var>CursorPos</var>.
</p>
<p>
ActivateHint retrieves the hint information at the mouse position. If the
control for the hint differs from the current hint control, the existing hint
is deactivated. The new hint window sets its hint timer and calculates the
rectangle for the hint window.
</p>
<p>
If a hint is not available for the specified mouse position, the
<var>CancelHint</var> method is called.
</p>
<p>
ActivateHint is used in the implementation of the <var>DoOnMouseMove</var>
and <var>ShowHintWindow</var> methods.
</p>
</descr>
<seealso>
<link id="TApplication.ShowHintWindow"/>
<link id="TApplication.DoOnMouseMove"/>
<link id="TApplication.CancelHint"/>
<link id="TApplication.HideHint"/>
<link id="TApplication.Hint"/>
<link id="TApplication.HintPause"/>
<link id="TApplication.OnHint"/>
</seealso>
</element>
<element name="TApplication.ActivateHint.CursorPos">
<short>Mouse cursor position used to retrieve the hint information.</short>
</element>
<element name="TApplication.ActivateHint.CheckHintControlChange">
<short>
Indicates if hint controls are used to compared existing and new hint windows.
</short>
</element>
<element name="TApplication.GetControlAtMouse">
<short>Gets the control under the mouse pointer.</short>
<descr>
<p>
<var>GetControlAtMouse</var> is a <var>TControl</var> function used to get
the control under the mouse pointer. The return value contains the form or
control at the position where the mouse pointer is located. The return value
is <b>Nil</b> at design-time.
</p>
<p>
GetControlAtMouse updates internal members used to track the control and its
position.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.GetControlAtMouse.Result">
<short>The control under the mouse pointer, or Nil at design-time.</short>
</element>
<element name="TApplication.GetControlAtPos">
<short>
Gets the control which contains the specified position, and optionally updates
the internal tracking members for mouse capture when needed.
</short>
<descr>
<p>
<var>GetControlAtPos</var> is a <var>TControl</var> function used to get the
control which contains the point specified in <var>P</var>. The X and Y
members in P are screen coordinates.
</p>
<p>
GetControlAtPos compares the coordinates in P to existing tracking members
used for the last active mouse control in the application. If the control is
valid and uses the coordinates in P, it is used as the return value for the
method. Otherwise, FindControlAtPos is called to locate the control at the
position in P.
</p>
<p>
The return value is <b>Nil</b> if a control is not found for the specified
position, or when called at design-time. When the return value is assigned, the
internal tracking members are updated with the last active control and its
position.
</p>
<p>
GetControlAtPos is used in the implementation of the GetControlAtMouse method,
and in private TControl methods.
</p>
</descr>
<version>
Added in LCL version 4.0.
</version>
<seealso>
<link id="TApplication.GetControlAtMouse"/>
</seealso>
</element>
<element name="TApplication.GetControlAtPos.Result">
<short>
Control with bounds which include the specified position.
</short>
</element>
<element name="TApplication.GetControlAtPos.P">
<short>
TPoint instance with the horizontal and vertical screen coordinates for a
control to locate in the method.
</short>
</element>
<element name="TApplication.ControlDestroyed">
<short>Clears all references to the destroyed control.</short>
<descr>
<p>
<var>ControlDestroyed</var> is a method used to update the application when
the control in <var>AControl</var> is freed. ControlDestroyed ensures that
any property in the application that contains a reference to AControl is set
to <b>Nil</b>, including:
</p>
<ul>
<li>MainForm</li>
<li>MouseControl</li>
<li>HintControl</li>
<li>CreatingForm (internal)</li>
</ul>
<p>
Properties in the <var>Screen</var> singleton are also updated to remove any
references to AControl, including:
</p>
<ul>
<li>ActiveControl</li>
<li>ActiveCustomForm</li>
<li>ActiveForm</li>
<li>FocusedForm</li>
</ul>
<p>
The <var>UpdateLastActive</var> method in Screen is called to perform change
notification for the forms and / or controls.
</p>
<p>
ControlDestroyed is called from the <var>Destroy</var> method in
<var>TControl</var>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Destroy">TControl.Destroy</link>
</seealso>
</element>
<element name="TApplication.ControlDestroyed.AControl">
<short>Control instance which is being freed.</short>
</element>
<element name="TApplication.BigIconHandle">
<short>Returns the Handle for the large application Icon.</short>
<seealso>
<link id="TApplication.Icon"/>
<link id="TApplication.SmallIconHandle"/>
</seealso>
</element>
<element name="TApplication.BigIconHandle.Result">
<short>
HIcon instance with the handle for the large icon, or 0 (zero) when not
available.
</short>
</element>
<element name="TApplication.SmallIconHandle">
<short>Returns the Handle for the small application Icon.</short>
<seealso>
<link id="TApplication.Icon"/>
<link id="TApplication.BigIconHandle"/>
</seealso>
</element>
<element name="TApplication.SmallIconHandle.Result">
<short>
HIcon instance with the handle for the small icon, or 0 (zero) when not
available.
</short>
</element>
<element name="TApplication.BringToFront">
<short>
Asks the widgetset to bring the last form for the application in front of all
other programs.
</short>
<descr>
<p>
Calls the AppBringToFront method in the widgetset class.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.CreateForm">
<short>Creates a Form or component, owned by Application.</short>
<descr>
<remark>
The method name is slightly misleading, and kept only for Delphi
compatibility. The method can actually create any kind of component.
</remark>
<p>
CreateForm creates a Component instance of the given class, and sets the
pointer to the component variable. If it is a form, it will be added to the
list of forms in the application.
</p>
<p>
A splash form is shown immediately.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.CreateForm.InstanceClass">
<short>The class type used to create the new instance.</short>
</element>
<element name="TApplication.CreateForm.Reference">
<short>The variable for the new component reference.</short>
</element>
<element name="TApplication.UpdateMainForm">
<short>
Makes the specified form the MainForm in the Application.
</short>
<descr>
<p>
UpdateMainForm is a method used to make the form instance in AForm the main
form for the application. It stores the value in AForm to the MainForm
property. No actions are performed in the method for the following conditions:
</p>
<ul>
<li>MainForm is already assigned.</li>
<li>AForm is marked for release.</li>
<li>The Handle for AForm has not yet been allocated.</li>
<li>
AForm is a MDI Child form (FormStyle contains fsMDIChild) or a splash screen
form (FormStyle contains fsSplash).
</li>
</ul>
<p>
UpdateMainForm is called from the CreateForm method, and occurs before the
form calls its HandleNeeded method. It is also called when the Handle for a
form is created (or re-created) in the CreateWnd method in TForm.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.UpdateMainForm.AForm">
<short>The form to use as the MainForm in the Application.</short>
</element>
<element name="TApplication.QueueAsyncCall">
<short>Inserts an asynchronous call into the queue.</short>
<descr>
<p>
This is thread safe.
</p>
</descr>
<errors>
Exceptions on various inconsistencies of the queue.
</errors>
<seealso/>
<example file="forms/tapplication_queueasynccall.pas"/>
</element>
<element name="TApplication.QueueAsyncCall.AMethod">
<short>The method to call asynchronously.</short>
</element>
<element name="TApplication.QueueAsyncCall.Data">
<short>The argument passed to the method.</short>
</element>
<element name="TApplication.RemoveAsyncCalls">
<short>Removes all calls added via QueueAsyncCall.</short>
<descr>
<p>
This is thread safe.
</p>
</descr>
<errors>
Exceptions are raised for various inconsistencies in the queue.
</errors>
<seealso>
<link id="TApplication.QueueAsyncCall"/>
<link id="TApplication.Flags"/>
<link id="TApplicationFlags"/>
<link id="TApplicationFlag"/>
<link id="TAsyncCallQueues"/>
<link id="TAsyncCallQueue"/>
<link id="#rtl.system.TMethod">TMethod</link>
</seealso>
</element>
<element name="TApplication.RemoveAsyncCalls.AnObject">
<short>
Object instance with the queued TMethod request removed in the method.
</short>
</element>
<element name="TApplication.ReleaseComponent">
<short>
Safely destroys a component used in the application.
</short>
<descr>
<p>
<var>ReleaseComponent</var> is a method used to ensure that the component in
AComponent is freed in the application.
</p>
<p>
No actions are performed in the method if <var>Destroy</var> has already been
called for AComponent (<var>ComponentState</var> contains
<var>csDestroying</var>).
</p>
<p>
If the Application <var>Flags</var> contains <var>AppDestroying</var>, the
<var>Free</var> method for AComponent is called immediately.
</p>
<p>
During normal processing, ReleaseComponent adds the component instance to a
list of components pending release when it is not already present. Its
FreeNotification method is called to perform notifications for owners. If it
is the first item in the pending release list, the OnDecLCLRefcountToZero
handler in <file>lclclasses.pp</file> is set to the DoDecLCLRefcountToZero
method for the application. This ensures that an asynchronously call to
<var>FreeComponent</var> is performed when the reference count reaches 0 and
the application enters an idle state.
</p>
<p>
ReleaseComponent is called from the <var>ReleaseComponents</var> method in
<var>TApplication</var>, and from the <var>Release</var> method in
<var>TCustomForm</var>. It may also be used in the implementation of controls
to ensure that its resources are freed as needed.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.ReleaseComponent.AComponent">
<short>The component to destroy.</short>
</element>
<element name="TApplication.ExecuteAction">
<short>Signals an OnActionExecute handler (when assigned).</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden <var>Boolean</var> function used to
signal an <var>OnActionExecute</var> event handler assigned to the control.
ExecuteAction reimplements the method defined in the ancestor (TComponent)
and does <b>not</b> call the inherited method.
</p>
<p>
ExecuteAction signals a TActionEvent event handler using the action instance
in <var>ExeAction</var> as an argument. The Handled argument in the event is
used as the return value for the method, and is set to <b>True</b> if the
action was successfully executed in an event handler.
</p>
<p>
In LCL version 3.0 or higher, multiple handler routines can be assigned which
use the ahtActionExecute event type. This situation can occur when
TApplicationProperties tries to assign an OnActionExecute handler to the
TApplication instance and it already has a user-specified handler. It can also
happen when the AddOnActionExecuteHandler method is called directly to add a
handler routine for the application event type.
</p>
<p>
If OnActionExecute handler is not assigned, or returns <b>False</b>, the other
handlers in the internal list are signalled to determine whether they can
execute the action. Each handler routine is signalled until one of them
changes the Handled argument in the event type to <b>True</b>. If none of the
routines can execute the action, the return value is <b>False</b>.
</p>
</descr>
<version>
Modified in in LCL version 3.0 to provide support for multiple OnActionExecute
event handlers in the application.
</version>
<seealso>
<link id="TApplication.AddOnActionExecuteHandler"/>
<link id="TApplication.RemoveOnActionExecuteHandler"/>
<link id="TApplicationHandlerType"/>
<link id="#lcl.actnlist.TActionEvent">TActionEvent</link>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
</seealso>
</element>
<element name="TApplication.ExecuteAction.Result">
<short>
<b>True</b> when the Action was handled in one of the event handlers for the
type.
</short>
</element>
<element name="TApplication.ExecuteAction.ExeAction">
<short>
The Action to execute in the event handler.
</short>
</element>
<element name="TApplication.UpdateAction">
<short>
Signals an OnActionUpdate handler (when assigned).
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden <var>Boolean</var> function used to
signal an <var>OnActionUpdate</var> event handler (when assigned) to update
the settings in the action instance in <var>TheAction</var>. UpdateAction
reimplements the method defined in the ancestor (TComponent), and does
<b>not</b> call the inherited method.
</p>
<p>
UpdateAction signals a TActionEvent event handler using the action instance
in <var>TheAction</var> as an argument. The Handled argument in the event is
used as the return value for the method, and is set to <b>True</b> if the
action was successfully updated in an event handler.
</p>
<p>
In LCL version 3.0 or higher, multiple handler routines can be assigned which
use the ahtActionUpdate event type. This situation can occur when
TApplicationProperties tries to assign an OnActionUpdate handler to the
TApplication instance and it already has a user-specified handler. It can also
happen when the AddOnActionUpdateHandler method is called directly to add a
handler routine for the application event type.
</p>
<p>
If OnActionUpdate handler is not assigned, or returns <b>False</b>, the other
handlers in the internal list are signalled to determine whether they can
update the action. Each handler routine is signalled until one of them
changes the Handled argument in the event type to <b>True</b>. If none of the
routines can update the action, the return value is <b>False</b>.
</p>
</descr>
<version>
Modified in in LCL version 3.0 to provide support for multiple OnActionUpdate
event handlers in the application.
</version>
<seealso>
<link id="TApplication.AddOnActionUpdateHandler"/>
<link id="TApplication.RemoveOnActionUpdateHandler"/>
<link id="TApplicationHandlerType"/>
<link id="#lcl.actnlist.TActionEvent">TActionEvent</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
</seealso>
</element>
<element name="TApplication.UpdateAction.Result">
<short><b>True</b> if the action was updated in the event handler.</short>
</element>
<element name="TApplication.UpdateAction.TheAction">
<short>The action updated in an event handler.</short>
</element>
<element name="TApplication.HandleException">
<short>
<var>HandleException</var> method for handling an exception;
attempts to maintain program execution if possible, otherwise exits
gracefully.
</short>
<descr>
<p>
Individual exception handler methods should be supplied by the application
programmer to override place-holder entries declared in ancestor classes.
This method checks whether the application is halted when an exception
occurs, or invokes the appropriate handler. It also writes details about the
exception to the appropriate place for debugging.
</p>
<p>
HandleException may signal the OnCircularException event handler (when
assigned) if an exception is raised while the method is already active.
</p>
<p>
HandleException ensures that existing capture(s) are released, and that all
forms with the stay on top attribute are removed so that the exception message
can be shown.
</p>
<p>
The OnException event handler (and other handlers for the ahtException handler
type) are signalled (when assigned). If OnException handlers are not used,
the ShowException method is called.
</p>
<p>
Any forms with the stay on top attribute are restored prior to exiting the
method.
</p>
</descr>
<seealso>
<link id="#fcl.custapp.TCustomApplication.HandleException">TCustomApplication.HandleException</link>
</seealso>
</element>
<element name="TApplication.HandleException.Sender">
<short>
Object instance (TApplication) for the exception.
</short>
</element>
<element name="TApplication.HandleMessage">
<short>Handles pending messages, and enters the Idle state.</short>
<descr>
<p>
<var>HandleMessage</var> is a method used to process pending window or
control messages in the application. It calls the
<var>AppProcessMessages</var> method in the widgetset class to handle pending
messages. It calls the <var>Idle</var> method to enter the idle state where
queued asynchronous callbacks can be handled and idle handlers can be
signalled.
</p>
<p>
It is very similar to the <var>ProcessMessages</var> method, which does not
signal idle handlers for the application or wait for a new message before
exit.
</p>
<p>
HandleMessage is called from the private RunLoop method in
<var>TApplication</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.HelpCommand">
<short>Show help.</short>
<descr>
<p>
Currently relies on OnHelp handlers. CallHelp is not implemented at the
application level.
</p>
</descr>
<seealso>
<link id="TApplication.OnHelp"/>
<link id="TApplication.AddOnHelpHandler"/>
<link id="TApplication.RemoveOnHelpHandler"/>
</seealso>
</element>
<element name="TApplication.HelpCommand.Result">
<short>
<b>True</b> if the help command was handled when the OnHelp event handler was
executed.
</short>
</element>
<element name="TApplication.HelpCommand.Command">
<short>
Numeric help command type requested in the method.
</short>
</element>
<element name="TApplication.HelpCommand.Data">
<short>
Pointer to the data for the help request.
</short>
</element>
<element name="TApplication.HelpContext">
<short>Shows context-sensitive help for the application.</short>
<descr>
<p>
<var>HelpContext</var> is a <var>Boolean</var> function used to display
context-sensitive help for the specified help context. It calls the DoOnHelp
method to select and execute a help handler routine for the specified help
context. The routine may be one of the OnHelp event handlers found in the
active form or in TApplication. If neither are assigned, the application
handlers are checked for a routine using the ahtHelp handler type.
</p>
<p>
If the help context was handled in DoOnHelp, not additional actions are
performed in the method. Otherwise, the ShowHelpOrErrorForContext is called
to handle the help request.
</p>
<p>
The return value is <b>False</b> if the help context could not be handled
using any of these options.
</p>
</descr>
<seealso>
<link id="TApplication.OnHelp"/>
<link id="TApplication.AddOnHelpHandler"/>
<link id="TApplication.RemoveOnHelpHandler"/>
</seealso>
</element>
<element name="TApplication.HelpContext.Result">
<short><b>True</b> if the help request was handled in the method.</short>
</element>
<element name="TApplication.HelpContext.Context">
<short>Help context displayed in the method.</short>
</element>
<element name="TApplication.HelpKeyword">
<short>Shows help for the specified keyword.</short>
<descr/>
<seealso>
<link id="TApplication.OnHelp"/>
<link id="TApplication.AddOnHelpHandler"/>
<link id="TApplication.RemoveOnHelpHandler"/>
</seealso>
</element>
<element name="TApplication.HelpKeyword.Result">
<short>
Returns <b>True</b> if the keyword help request was handled in the OnHelp
event handler.
</short>
</element>
<element name="TApplication.HelpKeyword.Keyword">
<short>
String with the keyword for the help request.
</short>
</element>
<element name="TApplication.HelpShowTableOfContents">
<short>
Displays the Help Table of Contents using the Help Manager for the
application.
</short>
<descr>
<p>
<var>HelpShowTableOfContents</var> is a method used to display the Help Table
of Contents for the application. It uses the global <var>HelpManager</var>
variable (when assigned) to call its <var>ShowTableOfContents</var> method.
This method must be re-implemented in a descendent class; the default
implementation simply returns the <var>shrHelpNotFound</var> result.
</p>
<p>
The return value is <b>True</b> when the HelpManager successfully displays
the Table of Contents, and returns the <var>shrSuccess</var> result code. If
HelpManager has not been assigned, the return value is always <b>False</b>.
</p>
</descr>
<seealso>
<link id="#lcl.helpintfs.HelpManager">HelpManager</link>
<link id="#lcl.helpintfs.THelpManager.ShowTableOfContents">THelpManager.ShowTableOfContents</link>
<link id="#lcl.helpintfs.TShowHelpResult">TShowHelpResult</link>
</seealso>
<version>
Added in LCL version 2.2.0. This method is Delphi compatible.
</version>
</element>
<element name="TApplication.HelpShowTableOfContents.Result">
<short>
<b>True</b> if the Help Table of Contents was successfully displayed by the
application.
</short>
</element>
<element name="TApplication.ShowHelpForObject">
<short>When Sender is a TControl, invoke its ShowHelp method.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.ShowHelpForObject.Sender">
<short>Should be a TControl, otherwise no help is displayed.</short>
</element>
<element name="TApplication.RemoveStayOnTop">
<short>
Removes the StayOnTop attribute from all visible forms in the application.
</short>
<descr>
<p>
<var>RemoveStayOnTop</var> is a method used to remove the stay on top
attribute from visible forms in the application.
</p>
<p>
RemoveStayOnTop calls the AppRemoveStayOnTopFlags method in the widgetset
class instance. <var>ASystemTopAlso</var> indicates whether system
dialogs/forms with the stay on top attribute are included in the list of forms
affected in the method. The default value for ASystemTopAlso is <b>False</b>,
and omits these forms from the list.
</p>
<p>
RemoveStayOnTop builds the internal list of forms used in the RestoreStayOnTop
method. It adds each visible form instance in Screen.CustomForms to the
internal list, and sets its FormStyle property to fsNormal. Any form without a
Parent, not Visible, or without FormStyle set to fsStayOnTop is not
added to the list or affected in the method.
</p>
<p>
RemoveStayOnTop is called from methods like ModalStarted and HandleException.
</p>
<p>
See <var>RestoreStayOnTop</var> for the actions performed to restore the stay
on top attribute to the list of forms.
</p>
</descr>
<seealso>
<link id="TApplication.RestoreStayOnTop"/>
<link id="TApplication.ModalStarted"/>
<link id="TApplication.HandleException"/>
<link id="TCustomForm.FormStyle"/>
<link id="TCustomForm.Visible"/>
<link id="Screen"/>
<link id="TScreen.CustomForms"/>
<link id="TScreen.CustomFormCount"/>
<link id="#lcl.controls.TControl.Parent">TControl.Parent</link>
<link id="#lcl.controls.TFormStyle">TFormStyle</link>
<link id="#lcl.controls.fsAllNonSystemStayOnTop">fsAllNonSystemStayOnTop</link>
</seealso>
</element>
<element name="TApplication.RemoveStayOnTop.ASystemTopAlso">
<short>
Indicates whether system dialogs/forms with stay on top set are also updated.
Default value is <b>False</b>.
</short>
</element>
<element name="TApplication.RestoreStayOnTop">
<short>
Restores StayOnTop for all forms changed by RemoveStayOnTop.
</short>
<descr>
</descr>
<seealso>
<link id="TApplication.RemoveStayOnTop"/>
</seealso>
</element>
<element name="TApplication.RestoreStayOnTop.ASystemTopAlso">
<short>
Indicates whether system dialogs/forms with stay on top set are also updated.
Default value is <b>False</b>.
</short>
</element>
<element name="TApplication.IsWaiting">
<short><b>True</b> if the application is waiting for a message event.</short>
<descr>
<p>
The return value is <b>True</b> when <var>AppWaiting</var> has been included
in the <var>Flags</var> for the application.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.IsWaiting.Result">
<short><b>True</b> if the application is in AppWaiting state.</short>
</element>
<element name="TApplication.CancelHint">
<short>
Called when the Hint timer has expired to stop showing the Hint.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.HideHint">
<short>Hides the Hint window.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.HintMouseMessage">
<short>Called when the mouse is over a control with a Hint.</short>
<descr>
<p>
Does nothing in the current LCL version.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.HintMouseMessage.Control"/>
<element name="TApplication.HintMouseMessage.AMessage"/>
<element name="TApplication.Initialize">
<short>Initializes the widgetset (and more).</short>
<descr>
<p>
<var>Initialize</var> is an overridden procedure in TApplication used to
perform initialization tasks for the application. Initialize calls the
inherited method to provide support for instance counting in the custom
application. Initialize ensures that the <var>WidgetSet</var> class type is
assigned for the application, and that the Screen singleton is initialized
and updated.
</p>
<p>
Initialize raises an <var>Exception</var> if WidgetSet has not been assigned,
or contains a class type other than <var>TWidgetSet</var>, for the
application.
</p>
<p>
Initialize updates the <var>Flags</var> property to include the value
<b>AppInitialized</b> when both the LCL interface (Widgetset) and the Screen
singleton have been configured.
</p>
<p>
Initialize loads the graphic image used in the <var>Icon</var> property. If a
resource with the name <b>MAINICON</b> is included in the Lazarus Resource,
it is loaded and used as the application icon. Otherwise,
<var>FindResource</var> is called to locate and load the named icon from the
resource handle.
</p>
</descr>
<errors>
Raises an Exception if the WidgetSet class is invalid or not assigned.
</errors>
<seealso>
<link id="Screen"/>
<link id="TApplication.Icon"/>
<link id="TApplication.Flags"/>
<link id="#lcl.interfacebase.WidgetSet">WidgetSet</link>
<link id="#fcl.custapp.TCustomApplication.Initialize">TCustomApplication.Initialize</link>
</seealso>
</element>
<element name="TApplication.MessageBox">
<short>Display an message dialog with response buttons.</short>
<descr>
<p>
The function is used internally to display messages during the handling of
<var>Exceptions</var>, but is also available to application programmers as an
alternative to some of the message dialogs found in the <file>Dialogs</file>
unit.
</p>
<p>
The function returns an integer value corresponding to the button that was
pressed; its value can be determined by reference to the constants
[IDOK..IDHELP].
</p>
</descr>
<seealso>
<link id="#lcl.Dialogs.MessageDlg">MessageDlg</link>
</seealso>
<example file="dialogs/displaymessagebox.pas"/>
</element>
<element name="TApplication.MessageBox.Result">
<short>Indicates the pressed button.</short>
<descr>
<p>Can be one of the following values:</p>
<ul>
<li>IDOK</li>
<li>IDCANCEL</li>
<li>IDABORT</li>
<li>IDRETRY</li>
<li>IDIGNORE</li>
<li>IDYES</li>
<li>IDNO</li>
<li>IDCLOSE</li>
<li>IDHELP</li>
</ul>
</descr>
</element>
<element name="TApplication.MessageBox.Text">
<short>The text in the MessageBox.</short>
<descr/>
</element>
<element name="TApplication.MessageBox.Caption">
<short>The Caption of the MessageBox.</short>
<descr/>
</element>
<element name="TApplication.MessageBox.Flags">
<short>
The icon and buttons appearing in the message box.
</short>
<descr>
<p>
Several constants are declared in the LCLType unit.
</p>
<p>
Add (better: OR) an icon constant and a buttons constant. For example:
</p>
<code>MB_ABORTRETRYIGNORE + MB_ICONQUESTION</code>
<p>
Causes the application to display a query (?) icon in a box with three
buttons: ABORT RETRY IGNORE.
</p>
<p>
Buttons can be one of:
</p>
<ul>
<li>MB_OK</li>
<li>MB_OKCANCEL</li>
<li>MB_ABORTRETRYIGNORE</li>
<li>MB_YESNOCANCEL</li>
<li>MB_YESNO</li>
<li>MB_RETRYCANCEL</li>
</ul>
<p>
The icon can be one of:
</p>
<ul>
<li>MB_ICONHAND</li>
<li>MB_ICONQUESTION</li>
<li>MB_ICONEXCLAMATION</li>
<li>MB_ICONASTERISK</li>
<li>MB_ICONWARNING (same as MB_ICONEXCLAMATION)</li>
<li>MB_ICONERROR (same as MB_ICONHAND)</li>
<li>MB_ICONSTOP (same as MB_ICONHAND)</li>
<li>MB_ICONINFORMATION (same as MB_ICONASTERISK)</li>
</ul>
</descr>
</element>
<element name="TApplication.Minimize">
<short>
Asks the widgetset to minimize the application.
</short>
<descr>
<p>
Calls the <var>AppMinimize</var> method in the widgetset class to hide the
MainForm and update its WindowState property. Other forms and modal pop-up
windows for the application are also minimized.
</p>
<p>
Use MainFormOnTaskbar to control whether the form is displayed on the Task bar
when the application has been minimized.
</p>
<p>
Use Restore to display the application and its forms and dialogs using their
states before they were minimized.
</p>
</descr>
<seealso>
<link id="TApplication.MainForm"/>
<link id="TApplication.MainFormOnTaskBar"/>
<link id="TApplication.ModalLevel"/>
<link id="TApplication.Restore"/>
<link id="TCustomForm.FormState"/>
<link id="TCustomForm.ShowInTaskBar"/>
<link id="TCustomForm.WindowState"/>
<link id="TCustomForm.Visible"/>
<link id="TScreen.CustomFormsZOrdered"/>
</seealso>
</element>
<element name="TApplication.ModalStarted">
<short>Called when a modal form display is started.</short>
<descr>
<p>
Invokes all OnModalBegin handlers when entering Modal state.
</p>
</descr>
<seealso>
<link id="TApplication.ModalFinished"/>
</seealso>
</element>
<element name="TApplication.ModalFinished">
<short>Called when a modal form is closed.</short>
<descr>
<p>
Invokes all OnModalEnd handlers when exiting Modal state.
</p>
</descr>
<seealso>
<link id="TApplication.ModalStarted"/>
</seealso>
</element>
<element name="TApplication.Restore">
<short>Restores a previously minimized application.</short>
<descr>
<p>
Calls the <var>AppRestore</var> method in the widgetset class, which
generally restores the main form for the application and re-focuses its
active control. It will also restore an active modal dialog.
</p>
<p>
Use Minimize to hide the forms and dialogs for the application, and to
optionally display the minimized form(s) on the Task bar.
</p>
</descr>
<seealso>
<link id="TApplication.Minimize"/>
<link id="TApplication.MainForm"/>
<link id="TCustomForm.FormState"/>
<link id="TCustomForm.WindowState"/>
<link id="TCustomForm.Visible"/>
</seealso>
</element>
<element name="TApplication.Notification">
<short>
Performs actions when a component is added to or removed from the application.
</short>
<descr>
<p>
<var>Notification</var> is an overridden method in <var>TApplication</var>
used to perform actions needed when a component is added to or removed from
the application. Notification provides special handling when component
references are removed. It ensures that the internal member for a given
component is set to <var>Nil</var> when the reference is freed. If the freed
component is the MainForm for the application, the Terminate method is called
to shut down the application and update the OS-level ExitCode.
</p>
</descr>
<seealso>
<link id="#rtl.Classes.TComponent.Notification">TComponent.Notification</link>
</seealso>
</element>
<element name="TApplication.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TApplication.Notification.Operation">
<short>Operation performed for the component reference.</short>
</element>
<element name="TApplication.ProcessMessages">
<short>
Call this method during lengthy operations to ensure the GUI remains
responsive.
</short>
<descr>
<p>
Calls <var>AppProcessMessages</var> in the widgetset class to processes
pending messages, and calls <var>ProcessAsyncCallQueue</var> to handle any
queued asynchronous callbacks.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.Idle">
<short>Called when the application enters the idle state.</short>
<descr>
<p>
Idle is a method used to perform actions when the application enters an idle
state. It allows the application to free components pending release, and
handle any queued asynchronous requests.
</p>
<p>
In addition, Idle calls event and application handlers assigned in the class
instance. OnIdle is signalled (when assigned). NotifyIdleHandler is called to
signal any application handler(s) using the ahtIdle handler type.
</p>
<p>
The DoIdleActions method is called to update the actions for Visible and
Enabled forms, and to hide visible splash screen forms (FormStyle is
fsSplash).
</p>
<p>
When the Wait argument is set to <b>True</b>, the AppWaitMessage method in
the widgetset class is called to capture an message on the handles for the
application. This action is not performed when Wait is <b>False</b>.
</p>
<p>
Idle calls the DoOnIdleEnd method to signal the OnIdleEnd event handler and
any application handlers using the ahtIdleEnd handler type.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.Idle.Wait">
<short>Indicates if the method waits for the next message.</short>
</element>
<element name="TApplication.Run">
<short>
Loads the form and passes control to the event loop for the application.
</short>
<descr>
<p>
<var>Run</var> is the method called to start execution of the application. It
reimplements the method introduced in TCustomApplication to provide support
for the MainForm and processing loop used in a GUI application. The Run
method is generally called, via the Application singleton, from the .lpr
project file.
</p>
<p>
If the MainForm property has been assigned, and should be displayed, the
AppSetupMainForm method in the widgetset class is called to set the window
state for the main form. The Show method in MainForm is also called to scale
the form (when needed) to the PixelsPerInch for the monitor. The form is made
visible and brought to the top of the Z-Order in the application.
</p>
<p>
The AppRun method in the widgetset class is called to start the message loop
using the private RunLoop method.
</p>
</descr>
<seealso>
<link id="TApplication.MainForm"/>
<link id="TApplication.ShowMainForm"/>
<link id="TApplication.Scaled"/>
<link id="Application"/>
<link id="TCustomForm.Show"/>
<link id="TCustomForm.Visible"/>
<link id="TCustomForm.Monitor"/>
<link id="TMonitor.PixelsPerInch"/>
<link id="#lcl.controls.TControl.BringToFront">TControl.BringToFront</link>
<link id="#fcl.CustApp.TCustomApplication.Run">TCustomApplication.Run</link>
</seealso>
</element>
<element name="TApplication.ShowException">
<short>
Shows the message for the specified exception and asks the user to abort or
continue.
</short>
<descr>
<p>
<var>E</var> is the Exception instance with the message displayed in the
method. If the message contains an invalid UTF-8 codepoint, AnsiToUtf8 is
called to get a valid UTF-8 value for the exception message.
</p>
<p>
ShowException creates a dialog to display the exception message. If the
exception occurred before the application was fully initialized, the
inherited ShowException method is called.
</p>
<p>
The value in the ExceptionDialog property determines the type of dialog
displayed for the message, and the buttons available on the dialog. While the
dialog is active, the OnIdle event handlers in the application are disabled.
They are re-enabled when the dialog is closed. The modal result from the
dialog determines whether the application is terminated by calling Halt, or
allowed to continue.
</p>
<remark>
No actions are performed in the method when AppNoExceptionMessages has been
included in the Flags for the application. The exception message is not
displayed and control is returned to the calling routine.
</remark>
</descr>
<seealso>
<link id="TApplication.ExceptionDialog"/>
<link id="TApplication.Flags"/>
<link id="TApplicationFlags"/>
<link id="TApplicationFlag"/>
<link id="#fcl.CustApp.TCustomApplication.ShowException">TCustomApplication.ShowException</link>
<link id="#rtl.system.Halt">Halt</link>
<link id="#rtl.sysutils.Exception">Exception</link>
</seealso>
</element>
<element name="TApplication.ShowException.E">
<short>
The exception with the message to display in the method.
</short>
</element>
<element name="TApplication.Terminate">
<short>
The application is terminated and the component engine is shutdown.
</short>
<descr>
<p>
<var>Terminate</var> is an overridden method in <var>TApplication</var>, and
calls the inherited method on entry to set the values in Terminated and
ExitCode. It calls the AppTerminate method the widgetset class instance to
perform actions needed to halt the application using the mechanism(s) for the
operating system or platform.
</p>
<p>
Use Terminated to determine if the method has already been called and has not
yet been completed in the widgetset class.
</p>
</descr>
<seealso>
<link id="#fcl.custapp.TCustomApplication.Terminate">TCustomApplication.Terminate</link>
<link id="#fcl.custapp.TCustomApplication.Terminated">TCustomApplication.Terminated</link>
</seealso>
</element>
<element name="TApplication.DisableIdleHandler">
<short>Disables Idle handling.</short>
<descr>
<p>
Blocks Idle handling by incrementing the internal idle lock counter. Can be
called multiple times, but each call must be followed by EnableIdleHandler.
</p>
<p>
Used in the ShowException method while an exception dialog is active.
</p>
</descr>
<seealso>
<link id="TApplication.EnableIdleHandler"/>
<link id="TApplication.ShowException"/>
</seealso>
</element>
<element name="TApplication.EnableIdleHandler">
<short>Resumes Idle handling.</short>
<descr>
<p>
Attempts to re-enable idle handling by decrementing the internal idle lock
counter. Idle handling is enabled when the internal idle lock counter is 0.
</p>
<p>
Called from the ShowException method when the exception dialog is exited.
</p>
</descr>
<errors>
Raises a catchable GDB Exception if the idle handler has not already been
disabled.
</errors>
<seealso>
<link id="TApplication.DisableIdleHandler"/>
</seealso>
</element>
<element name="TApplication.NotifyUserInputHandler">
<short>Notifies all user input handlers of the specified message.</short>
<descr>
<p>
Ensures that ActivateHint or CancelHint is called for a mouse message in the
Msg argument.
</p>
<p>
Signals the OnUserInput event handler when assigned to allow filtering
messages at the application level. Signals each of the user input handlers
for the application using the Sender object instance and Msg as arguments.
Sender defaults to the application instance when unassigned.
</p>
<p>
<var>NotifyUserInputHandler</var> is used to pass mouse and character events
between a widgetset class instance and the forms and controls in an
application. It is called from the message processing mechanism that is part
of the LCL interface.
</p>
</descr>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.NotifyUserInputHandler.Msg">
<short>
Message examined in the method for mouse or character events.
</short>
</element>
<element name="TApplication.NotifyKeyDownBeforeHandler">
<short>Notifies all ahtKeyDownBefore handlers.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.NotifyKeyDownBeforeHandler.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TApplication.NotifyKeyDownBeforeHandler.Key">
<short>Key code examined in the event handler.</short>
</element>
<element name="TApplication.NotifyKeyDownBeforeHandler.Shift">
<short>Ctrl, Alt, Shift modifier for the key code.</short>
</element>
<element name="TApplication.NotifyKeyDownHandler">
<short>
Notifies all ahtKeyDownAfter handlers, and eventually reacts to F1 (Help).
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.NotifyKeyDownHandler.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TApplication.NotifyKeyDownHandler.Key">
<short>Key code examined in the event handler.</short>
</element>
<element name="TApplication.NotifyKeyDownHandler.Shift">
<short>Ctrl, Alt, Shift modifier for the key code.</short>
</element>
<element name="TApplication.ControlKeyDown">
<short>
Handles KeyDown events in a Control, e.g. handles navigation keys.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.ControlKeyDown.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TApplication.ControlKeyDown.Key">
<short>Key code examined in the event handler.</short>
</element>
<element name="TApplication.ControlKeyDown.Shift">
<short>Ctrl, Alt, Shift modifier for the key code.</short>
</element>
<element name="TApplication.ControlKeyUp">
<short>
Handles KeyUp events in a Control, e.g. handles Enter and Esc keys.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.ControlKeyUp.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TApplication.ControlKeyUp.Key">
<short>Key code examined in the event handler.</short>
</element>
<element name="TApplication.ControlKeyUp.Shift">
<short>Ctrl, Alt, Shift modifier for the key code.</short>
</element>
<element name="TApplication.AddOnIdleHandler">
<short>
Adds an application Idle handler to the list of handlers for the type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnIdleHandler.Handler">
<short>Idle handler Routine added to the handlers for the type.</short>
</element>
<element name="TApplication.AddOnIdleHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first item in the list.
<b>False</b> if the handler is appended to the list.
</short>
</element>
<element name="TApplication.RemoveOnIdleHandler">
<short>
Removes an application Idle handler for the list of handlers for the type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnIdleHandler.Handler">
<short>
Handler routine removed from the list of idle handlers.
</short>
</element>
<element name="TApplication.AddOnIdleEndHandler">
<short>
Adds an application IdleEnd handler to the list of handlers for the type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnIdleEndHandler.Handler">
<short>
Idle end handler routine added to the list of handlers.
</short>
</element>
<element name="TApplication.AddOnIdleEndHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first item in the list.
<b>False</b> if the handler is appended to the list.
</short>
</element>
<element name="TApplication.RemoveOnIdleEndHandler">
<short>Removes an application IdleEnd handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnIdleEndHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnUserInputHandler">
<short>
Adds an application user input handler to the list of handlers for the type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnUserInputHandler.Handler">
<short>
Handler routine added in the method to the list of handlers.
</short>
</element>
<element name="TApplication.AddOnUserInputHandler.AsFirst">
<short>
<b>True</b> if the handler routine is inserted as the first entry in the
list. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnUserInputHandler">
<short>
Removes an application user input handler from the list of handlers for the
type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnUserInputHandler.Handler">
<short>Handler routine removed from the list of handlers.</short>
</element>
<element name="TApplication.AddOnKeyDownBeforeHandler">
<short>Adds an application key down before interface handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnKeyDownBeforeHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnKeyDownBeforeHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnKeyDownBeforeHandler">
<short>Removes an application key down before interface handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnKeyDownBeforeHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnKeyDownHandler">
<short>
Adds an application key down handler to the list for the type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnKeyDownHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnKeyDownHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnKeyDownHandler">
<short>Removes an application key down after interface handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnKeyDownHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnActivateHandler">
<short>Adds an application activation handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnActivateHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnActivateHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnActivateHandler">
<short>Removes an application activation handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnActivateHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnDeactivateHandler">
<short>Adds an application deactivation handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnDeactivateHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnDeactivateHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnDeactivateHandler">
<short>Removes an application deactivation handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnDeactivateHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnExceptionHandler">
<short>Adds an application exception handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnExceptionHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnExceptionHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnExceptionHandler">
<short>Removes an application exception handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnExceptionHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnEndSessionHandler">
<short>Adds an application logoff handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnEndSessionHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnEndSessionHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnEndSessionHandler">
<short>Removes an application logoff handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnEndSessionHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnQueryEndSessionHandler">
<short>Adds an application logoff query handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnQueryEndSessionHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnQueryEndSessionHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnQueryEndSessionHandler">
<short>Removes an application logoff query handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnQueryEndSessionHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnMinimizeHandler">
<short>Adds an application minimizing handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnMinimizeHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnMinimizeHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnMinimizeHandler">
<short>Removes an application minimizing handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnMinimizeHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnModalBeginHandler">
<short>Adds an application becoming modal handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnModalBeginHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnModalBeginHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnModalBeginHandler">
<short>Removes an application becoming modal handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnModalBeginHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnModalEndHandler">
<short>Adds an application exiting modal state handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnModalEndHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnModalEndHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnModalEndHandler">
<short>Removes an application exiting modal state handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnModalEndHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnRestoreHandler">
<short>Adds an application exiting minimized state handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnRestoreHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnRestoreHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnRestoreHandler">
<short>Removes an application exiting minimized state handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnRestoreHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnDropFilesHandler">
<short>Adds an application dropped files handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnDropFilesHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnDropFilesHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnDropFilesHandler">
<short>Removes an application dropped files handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnDropFilesHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnHelpHandler">
<short>Adds an application Help handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnHelpHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnHelpHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnHelpHandler">
<short>Removes an application Help handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnHelpHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnHintHandler">
<short>Adds an application Hint handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnHintHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnHintHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnHintHandler">
<short>Removes an application Hint handler.</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnHintHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnShowHintHandler">
<short>
Adds an application Hint show handler to the list for the handler type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnShowHintHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnShowHintHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnShowHintHandler">
<short>
Removes an application Hint show handler from the list for the handler type.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnShowHintHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnGetMainFormHandleHandler">
<short>
Adds a handler signalled when the application MainForm handle is retrieved.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.AddOnGetMainFormHandleHandler.Handler">
<short>
Handler routine added in the method to the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnGetMainFormHandleHandler.AsFirst">
<short>
<b>True</b> if the handler is inserted as the first routine in the list of
handlers. <b>False</b> if it is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnGetMainFormHandleHandler">
<short>
Removes a handler used to get the handle for the main form in the application.
</short>
<descr/>
<seealso>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.RemoveOnGetMainFormHandleHandler.Handler">
<short>
Handler routine removed in the method.
</short>
</element>
<element name="TApplication.AddOnActionExecuteHandler">
<short>
Adds the specified routine to the list of ahtActionExecute handlers for the
application.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<element name="TApplication.AddOnActionExecuteHandler.Handler">
<short>
Handler routine added or inserted in the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnActionExecuteHandler.AsFirst">
<short>
<b>True</b> if the handler routine is inserted as the first entry in the
handler list. <b>False</b> if the routine is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnActionExecuteHandler">
<short>
Removes the specified routine from the list of ahtActionExecute handlers for
the application.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<element name="TApplication.RemoveOnActionExecuteHandler.Handler">
<short>
Handler routine located and removed in the method.
</short>
</element>
<element name="TApplication.AddOnActionUpdateHandler">
<short>
Adds the specified routine to the list of ahtActionUpdate handlers for the
application.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<element name="TApplication.AddOnActionUpdateHandler.Handler">
<short>
Handler routine added or inserted in the list of handlers for the type.
</short>
</element>
<element name="TApplication.AddOnActionUpdateHandler.AsFirst">
<short>
<b>True</b> if the handler routine is inserted as the first entry in the
handler list. <b>False</b> if the routine is appended to the end of the list.
</short>
</element>
<element name="TApplication.RemoveOnActionUpdateHandler">
<short>
Removes the specified routine from the list of ahtActionUpdate handlers for
the application.
</short>
<descr/>
<version>
Added in LCL version 3.0.
</version>
<seealso/>
</element>
<element name="TApplication.RemoveOnActionUpdateHandler.Handler">
<short>
Handler routine located and removed in the method.
</short>
</element>
<element name="TApplication.RemoveAllHandlersOfObject">
<short>
Removes all handlers implemented for the specified object.
</short>
<descr>
<p>
<var>RemoveAllHandlersOfObject</var> ensures that all handler routines for
the object specified in AnObject are removed from the method lists for each
of the TApplicationHandlerType values. The RemoveAllMethodsOfObject method in
each of the TMethodList instances is called to remove the handlers for the
specified object.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.RemoveAllHandlersOfObject.AnObject">
<short>
Object instance for the handlers removed in the method.
</short>
</element>
<element name="TApplication.DoBeforeMouseMessage">
<short>
Performs actions needed before a mouse message is processed in the
application.
</short>
<descr>
<p>
DoBeforeMouseMessage ensures that the value in MouseControl is updated before
the mouse message is handled in the application. It calls UpdateMouseControl
to assign the control under the mouse pointer to the CurMouseControl argument.
</p>
<p>
DoBeforeMouseMessage is called when messages are exchanged between a
widgetset class instance and the LCL application.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.DoBeforeMouseMessage.CurMouseControl">
<short>
Current value for the MouseControl property. May be updated with the new
control under the mouse pointer in the method.
</short>
</element>
<element name="TApplication.IsShortcut">
<short>
Checks whether a handler is available for the shortcut key in the message.
</short>
<descr>
<p>
The return value is set to <b>True</b> if the key code in the message is
handled by the application or one of the enabled forms or controls in the
application.
</p>
<p>
IsShortCut signals the OnShortcut event handler (when assigned) to determine
if the accelerator is handled at the application level. If it is handled in
OnShortcut, no additional actions are performed in the method.
</p>
<p>
Next, an enabled modal form on the screen calls its IsShortCut method to
examine the accelerator.
</p>
<p>
The active form for the Screen is checked when it is enabled by calling its
IsShortCut method.
</p>
<p>
Finally, the main form for the application is checked by calling its
IsShortCut method.
</p>
<p>
The return value is <b>False</b> when the shortcut is not handled in any of
the preceding calls to IsShortCut.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.IsShortcut.Result">
<short><b>True</b> when the shortcut is handled.</short>
</element>
<element name="TApplication.IsShortcut.Message">
<short>
Message with the key code for the accelerator.
</short>
</element>
<element name="TApplication.IntfQueryEndSession">
<short>Called by the interface to confirm the end of a session.</short>
<descr>
<p>
Asks all QueryEndSession handlers to confirm termination of the application.
</p>
</descr>
<seealso>
<link id="TApplication.OnQueryEndSession"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.IntfQueryEndSession.Cancel">
<short>
Returns <b>True</b> if the application can be terminated.
</short>
</element>
<element name="TApplication.IntfEndSession">
<short>Called by the interface when the session ends.</short>
<descr>Notifies all OnEndSession handlers.</descr>
<seealso>
<link id="TApplication.OnEndSession"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.IntfAppActivate">
<short>Called by the interface on application activation.</short>
<descr>
Notifies all activation handlers.
</descr>
<seealso>
<link id="TApplication.OnActivate"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.IntfAppDeactivate">
<short>Called by the interface on application deactivation.</short>
<descr/>
<seealso>
<link id="TApplication.OnDeactivate"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.IntfAppMinimize">
<short>Called by the interface when the application is minimized.</short>
<descr/>
<seealso>
<link id="TApplication.OnMinimize"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.IntfAppRestore">
<short>Called by the interface when the application is restored.</short>
<descr/>
<seealso>
<link id="TApplication.OnRestore"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.IntfDropFiles">
<short>Called by the interface when files have been dropped.</short>
<descr/>
<seealso>
<link id="TApplication.OnDropFiles"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.IntfDropFiles.FileNames">
<short>
Array of file file names processed using the OnDropFiles event handler.
</short>
</element>
<element name="TApplication.IntfSettingsChange">
<short>
Called when the WM_SETTINGCHANGE message is handled for the application.
</short>
<descr>
<p>
Calls <var>GetFormatSettingsUTF8</var> or <var>GetFormatSettings</var>,
depending on use of UTF-8 in the RTL, when UpdateFormatSettings is set to
<b>True</b>. This applies to Windows platforms only.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.IntfThemeOptionChange">
<short>Called by the interface when a theme option has changed.</short>
<descr>
<p>
<var>IntfThemeOptionChange</var> posts control messages to notify a custom
form when either toShowButtonImages or toShowMenuImages is the value in
<var>AOption</var>.
</p>
<dl>
<dt>toShowButtonImages</dt>
<dd>
Posts a CM_APPSHOWBTNGLYPHCHANGED control message when ShowButtonGlyphs is set
to sbgSystem.
</dd>
<dt>toShowMenuImages</dt>
<dd>
Posts a CM_APPSHOWMENUGLYPHCHANGED control message when ShowMenuGlyphs is set
to sbgSystem.
</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TApplication.IntfThemeOptionChange.AThemeServices">
<short>
TThemeServices instance for the callback. Not used in the current LCL
implementation.
</short>
</element>
<element name="TApplication.IntfThemeOptionChange.AOption">
<short>
TThemeOption changed in the callback.
</short>
</element>
<element name="TApplication.IsRightToLeft">
<short>
Indicates if BiDiMode contains a value other than bdLeftToRight.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.IsRightToLeft.Result">
<short>
Returns <b>True</b> if BiDiMode is set to a value other than bdLeftToRight.
</short>
</element>
<element name="TApplication.IsRTLLang">
<short>
Checks the given language name for use of right-to-left reading.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.IsRTLLang.Result">
<short><b>True</b> when the language code uses right-to-left reading.</short>
</element>
<element name="TApplication.IsRTLLang.ALang">
<short>ISO language code examined in the method.</short>
</element>
<element name="TApplication.Direction">
<short>
Gets the TBidiMode value with the direction for the specified language name.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.Direction.Result">
<short>TBiDiMode value for the specified language.</short>
</element>
<element name="TApplication.Direction.ALang">
<short>ISO language name examined in the method.</short>
</element>
<element name="TApplication.DoArrowKey">
<short>Uses arrow keys for navigation, if enabled.</short>
</element>
<element name="TApplication.DoArrowKey.AControl">
<short>The control receiving the key.</short>
</element>
<element name="TApplication.DoArrowKey.Key">
<short>The virtual key; becomes VK_UNKNOWN when handled.</short>
</element>
<element name="TApplication.DoArrowKey.Shift">
<short>The active modifier keys.</short>
</element>
<element name="TApplication.DoTabKey">
<short>Uses the Tab key for navigation, if enabled.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.DoTabKey.AControl">
<short>The control receiving the key.</short>
</element>
<element name="TApplication.DoTabKey.Key">
<short>The virtual key; becomes VK_UNKNOWN when handled.</short>
</element>
<element name="TApplication.DoTabKey.Shift">
<short>Shift, Ctrl or Alt modifier for the virtual key.</short>
</element>
<element name="TApplication.DoEscapeKey">
<short>Interprets Esc as Cancel action, if applicable.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.DoEscapeKey.AControl">
<short>The control receiving the key.</short>
</element>
<element name="TApplication.DoEscapeKey.Key">
<short>The virtual key; becomes VK_UNKNOWN when handled.</short>
</element>
<element name="TApplication.DoEscapeKey.Shift">
<short>The active modifier keys.</short>
</element>
<element name="TApplication.DoReturnKey">
<short>Interprets Enter as the default action, if applicable.</short>
<descr/>
<seealso/>
</element>
<element name="TApplication.DoReturnKey.AControl">
<short>The control receiving the key.</short>
</element>
<element name="TApplication.DoReturnKey.Key">
<short>The virtual key; becomes VK_UNKNOWN when handled.</short>
</element>
<element name="TApplication.DoReturnKey.Shift">
<short>The active modifier keys.</short>
</element>
<element name="TApplication.Active">
<short><b>True</b> if the application is focused.</short>
<descr>
<p>
<var>Active</var> is a read-only <var>Boolean</var> property which indicates
if the application is focused. Returns <b>True</b> if the
<var>AppActive</var> flag has been included in the <var>Flags</var> for the
application.
</p>
<p>
The value in Active (and Flags) is updated when the private
<var>Activate</var> or <var>Deactivate</var> methods are called.
</p>
</descr>
<seealso>
<link id="TApplication.Flags"/>
<link id="TApplicationFlags"/>
<link id="TApplicationFlag"/>
</seealso>
</element>
<element name="TApplication.ApplicationType">
<short>
The type of the application (i.e. the sort of device for which it is
intended).
</short>
<descr>
<p>The type of the application:</p>
<p>Default, Desktop, Handheld, PDA, Smartphone</p>
</descr>
<seealso/>
</element>
<element name="TApplication.BidiMode">
<short>The bidirectional mode to use.</short>
</element>
<element name="TApplication.CaptureExceptions">
<short>Enables exception handling in the Application.</short>
<descr>
<p>
<var>CaptureExceptions</var> is a <var>Boolean</var> property which enables or
disables exception handling for errors which occur when messages are handled
in the application. The default value for CaptureExceptions is set to
<b>True</b> in the Create constructor. CaptureExceptions is set to
<b>False</b> in the Destroy destructor.
</p>
<p>
Changing the value for the property causes the routine in the RTL ExceptProc
constant to be updated. When set to <b>True</b>, the constant is set to the
ExceptionOccurred routine in the implementation section for the
<file>forms.pp</file> unit. When set to <b>False</b>, the previous exception
handler routine is restored.
</p>
<p>
CaptureExceptions is used in the message processing loop for the TApplication
instance. When enabled, the HandleMessage method is called in a
<b>TRY..EXCEPT</b> block, and HandleException is called if an exception is
raised. When disabled, HandleMessage is called without the benefit of
exception handling.
</p>
</descr>
<seealso>
<link id="TApplication.HandleMessage"/>
<link id="TApplication.HandleException"/>
<link id="TApplication.Create"/>
<link id="TApplication.Destroy"/>
<link id="#rtl.system.ExceptProc">ExceptProc</link>
</seealso>
</element>
<element name="TApplication.DoubleBuffered">
<short>Indicates if the application uses double buffering.</short>
<descr>
<p>
Double buffering is a technique used to reduce screen flickering when form
and controls are (re)drawn. When enabled, an off-screen buffer is used to
accelerate drawing operations.
</p>
<p>
The default value for the property is adbDefault and indicates that the
application uses the default capabilities provided by the widgetset.
</p>
<remark>
DoubleBuffered is a platform-specific property. Only the Windows platform
implements double buffering (at the widgetset level) in the current LCL
version. Changing the value for the property to <b>True</b> has no effect if
double buffering is not implemented for the widgetset used in the Application.
</remark>
</descr>
<seealso/>
</element>
<element name="TApplication.ExtendedKeysSupport">
<short>
Controls whether extended key codes are available in key down and key up
messages.
</short>
<descr>
<p>
When enabled, ExtendedKeysSupport causes Shift, Ctrl, and Alt (Menu) (Options
or Mac OS) to generate distinct values for the left and right keys. The
values can then be handled in OnKeyDown and OnKeyUp event handlers, or in
overridden KeyDown and KeyUp methods.
</p>
<p>
See VK_LSHIFT in LCLType for more details.
</p>
</descr>
<seealso>
<link id="#lcl.lcltype.VK_LSHIFT">VK_LSHIFT</link>
</seealso>
</element>
<element name="TApplication.ExceptionDialog">
<short>
Indicates the dialog type used for an exception in the application.
</short>
<descr>
<p>
<var>ExceptionDialog</var> is a <var>TApplicationExceptionDlg</var> property
which indicates the dialog type displayed for an exception handled by the
application instance. The default value for the property is
<var>aedOkCancelDialog</var>, as assigned in the <var>Create</var>
constructor.
</p>
<p>
See TApplicationExceptionDlg for more information about values in the
enumeration and their meanings.
</p>
</descr>
<seealso>
<link id="TApplicationExceptionDlg"/>
<link id="TApplication.Create"/>
<link id="TApplicationProperties.ExceptionDialog"/>
</seealso>
</element>
<element name="TApplication.FindGlobalComponentEnabled">
<short>Enables searching for global components by name.</short>
<descr>
<p>
This property is used by TReader to auto rename forms in the application to
unique names.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.Flags">
<short>Contains state flags for the application.</short>
<descr>
<p>
<var>Flags</var> is a <var>TApplicationFlags</var> property which contains
flag values currently enabled for the application. It is a set type, and may
contain zero or more values from the <var>TApplicationFlag</var> enumeration.
</p>
<p>
Values in Flags are updated when methods are executed in the class instance.
A value may be transient in nature, and exist only while a particular method
is running. They may also be more permanent, and indicate actions which have
been performed and/or completed.
</p>
<p>
Values are added to and removed from Flags in methods like:
</p>
<ul>
<li>Create</li>
<li>Destroy</li>
<li>Initialize</li>
<li>Activate</li>
<li>Deactivate</li>
<li>Idle</li>
<li>ShowException</li>
</ul>
</descr>
<seealso>
<link id="TApplicationFlags"/>
<link id="TApplicationFlag"/>
</seealso>
</element>
<element name="TApplication.Handle">
<short>
Provides access to the handle for the application instance.
</short>
<descr>
<p>
<var>Handle</var> is a <var>TLCLHandle</var> property which provides access to
the handle used for the application instance. Reading the value for the
property is redirected to the AppHandle allocated in the widgetset class.
Setting the value for the property causes the AppHandle in the widgetset class
to be updated with the new value.
</p>
<p>
Handle is used to send and receive window messages and state change
notifications for the application instance using the <b>LCL</b> interface.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type.
</version>
<seealso>
<link id="#lcl.lcltype.TLCLHandle">TLCLHandle</link>
<link id="#lcl.interfacebase.TWidgetSet.AppHandle">TWidgetSet.AppHandle</link>
</seealso>
</element>
<element name="TApplication.Hint">
<short>The current Hint text.</short>
<descr>
<p>
A hint is a pop-up message that appears briefly while the mouse hovers over a
control. It usually displays useful information about how to use the UI
element, or the type of data that should be entered, etc.
</p>
<p>
Other properties can be used to customize the delay before a Hint is shown,
after the mouse is moved away from the control or form, and how long it will
remain visible.
</p>
</descr>
<seealso>
<link id="TApplication.HintPause"/>
<link id="TApplication.HintHidePause"/>
<link id="TApplication.HintHidePausePerChar"/>
</seealso>
</element>
<element name="TApplication.HintColor">
<short>The background color for a Hint window.</short>
<descr>
<p>
<var>HintColor</var> is a <var>TColor</var> property with the color for the
background in a <var>Hint</var> window.
</p>
<p>
The default value for the property is defined in the <var>DefHintColor</var>
constant and assigned in the constructor for the application instance.
Changing the value for the property causes the color in the internal
<var>THintWindow</var> instance to be updated with the new property value.
</p>
<p>
HintColor is used in the <var>ShowHintWindow</var> method to configure the
hint information displayed using a CM_HINTSHOW control message. It may be
updated in the same method to use the value returned when the message is
handled for the application.
</p>
</descr>
<seealso>
<link id="TApplication.Hint"/>
<link id="TApplication.ShowHint"/>
<link id="TApplication.ShowHintWindow"/>
<link id="THintWindow"/>
</seealso>
</element>
<element name="TApplication.HintHidePause">
<short>
Indicates how long a Hint remains visible after the mouse pointer is moved.
</short>
<descr>
<p>
<var>HintHidePause</var> is an <var>Integer</var> property with the number of
milliseconds (or ticks) that a Hint display remains visible after the mouse
pointer leaves the control or form. The default value is defined in the
DefHintHidePause constant and assigned to the property in the constructor for
the application instance.
</p>
<p>
HintHidePause is used in the ShowHintWindow method to configure the hint
information displayed using a CM_HINTSHOW control message.
</p>
</descr>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.HintHidePausePerChar">
<short>
Indicates how long a keystroke extends the time a Hint remains visible (added
to HintHidePause).
</short>
<descr/>
<seealso>
<link id="TApplication.HintHidePause"/>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.HintPause">
<short>The delay before a Hint is shown for a form or control.</short>
<descr>
<p>
HintPause is an Integer property with the number of milliseconds to wait
before a Hint window is displayed for a form or control.
</p>
<p>
The default value is defined in the DefHintPause constant and assigned to the
property in the constructor for the application instance.
</p>
<p>
HintPause is used in the ActivateHint method, and provides the interval for
the internal timer instance used for hints in the application.
</p>
</descr>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.HintShortCuts">
<short>
Enables or disables display of keyboard shortcuts (e. g. on menu items).
</short>
<descr>
<p>
HintShortCuts is a Boolean property controls display of shortcut characters
for action-enabled items in the application. This applies to controls which
utilize the TControlActionLink class. The default value for the property is
<b>True</b>, and enables display of keyboard shortcuts or accelerators.
</p>
</descr>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.HintShortPause">
<short>The pause before a different Hint is displayed.</short>
<descr/>
<seealso>
<link id="TApplication.Hint"/>
</seealso>
</element>
<element name="TApplication.Icon">
<short>The icon associated with this application.</short>
<descr>
<p>
Icon is TIcon property with the image used to represent the application on
the desktop, task bar, and system menus.
</p>
<p>
The image can be assigned to TIcon at design-time using the Lazarus object
inspector, or by setting values in the Project options dialog. The image can
also be assigned at run-time using properties and methods in the TIcon
instance.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.LayoutAdjustmentPolicy">
<short>
Indicates the layout and sizing policy used for forms and controls in the
application.
</short>
<descr/>
<seealso>
<link id="TLayoutAdjustmentPolicy"/>
</seealso>
</element>
<element name="TApplication.Navigation">
<short>Allows switching between controls using keyboard navigation.</short>
<descr>
<p>
By default, the following keys can be used for keyboard navigation in an LCL
application:
</p>
<dl>
<dt>Tab, Shift+Tab</dt>
<dd>Moves the Focus to the next (or previous) control in TabOrder.</dd>
<dt>Enter</dt>
<dd>Triggers the default action for the form or control.</dd>
<dt>Escape</dt>
<dd>Triggers the Cancel action for the form or control.</dd>
<dt>F1</dt>
<dd>Displays context sensitive help (when available).</dd>
<dt>Cursor or arrow keys</dt>
<dd>Moves the focus or cursor.</dd>
</dl>
</descr>
<seealso>
<link id="TApplicationNavigationOptions"/>
</seealso>
</element>
<element name="TApplication.MainForm">
<short>Contains the main form for the application.</short>
<descr>
<p>
<var>MainForm</var> is a read-only <var>TForm</var> property which contains
the form that is the main or primary form for the application.
</p>
<p>
The value in MainForm is assigned when the first form is created using the
<var>CreateForm</var> method and the <var>FormStyle</var> for the form
contains a value other than <var>fsSplash</var>.
</p>
<p>
The form instance in MainForm is displayed when the <var>Run</var> method is
called to start the message processing loop for the application.
</p>
<p>
The application is terminated when this form is closed.
</p>
</descr>
<seealso>
<link id="TApplication.CreateForm"/>
<link id="TApplication.Run"/>
<link id="TCustomForm.FormStyle"/>
<link id="TForm"/>
</seealso>
</element>
<element name="TApplication.MainFormHandle">
<short>Window handle for the MainForm in the application.</short>
<descr>
<p>
<var>MainFormHandle</var> is a read-only <var>HWND</var> property which
contains the handle for the form instance used as the main form in the
application.
</p>
<p>
The value for the property is derived using the
<var>OnGetMainFormHandle</var> event handler (when assigned) or a
<var>TGetHandleEvent</var> handler assigned in the application. When neither
of these mechanisms provides a value other than zero (0), the window handle
assigned in the <var>MainForm</var> property is used.
</p>
<p>
MainFormHandle is used in the implementation of methods in WidgetSet classes,
primarily for the Windows platform, and in custom-drawn controls.
</p>
</descr>
<seealso>
<link id="TApplication.MainForm"/>
<link id="TApplication.OnGetMainFormHandle"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.MainFormOnTaskBar">
<short>
Controls whether a button is displayed on the task bar for the main form in
the application.
</short>
<descr>
<p>
<var>MainFormOnTaskBar</var> is a <var>Boolean</var> property which
determines whether the icon for the main form in the application is displayed
on the task bar. When MainFormOnTaskBar is set to <b>True</b>, a button
representing the main form is displayed on the task bar area in the window
manager. When set to <b>False</b>, the button is not displayed in the task
bar area.
</p>
<p>
Changing the value in the property causes the Widgetset class to be notified
of the new property value.
</p>
<p>
MainFormOnTaskBar is a platform-dependent property. It may not be implemented
for all platforms supported for the Lazarus application. In addition, some
platforms which display task bar thumbnails (like Windows Vista) may require
the property to be set to <b>True</b>.
</p>
<p>
The default value for the property is normally set in the Lazarus project
file (<b>.lpr</b>) used to compile the application.
</p>
</descr>
<seealso>
<link id="TApplication.MainForm"/>
<link id="TApplication.Icon"/>
<link id="TApplication.Title"/>
</seealso>
</element>
<element name="TApplication.ModalLevel">
<short>The number of modal forms shown.</short>
<descr>
<p>
<var>ModalLevel</var> is a read-only <var>Integer</var> property with the
number of forms displayed modally in the application.
</p>
<p>
The value in ModalLevel is incremented in the <var>ModalStarted</var> method.
It causes the <var>OnModalBegin</var> event handler and application handlers
for the <var>ahtModalBegin</var> handler type to be signalled (when assigned)
when its value is <b>1</b> following the increment.
</p>
<p>
The value in ModalLevel is decremented in the <var>ModalFinished</var>
method. It causes the <var>OnModalEnd</var> event handler and application
handlers for the <var>ahtModalEnd</var> handler type to be signalled (when
assigned) when its value is <b>0</b> following the decrement.
</p>
</descr>
<seealso>
<link id="TApplication.ModalStarted"/>
<link id="TApplication.ModalFinished"/>
<link id="TApplication.OnModalBegin"/>
<link id="TApplication.OnModalEnd"/>
<link id="#lazutils.lazmethodlist.TMethodList.CallNotifyEvents">
TMethodList.CallNotifyEvents</link>
</seealso>
</element>
<element name="TApplication.MoveFormFocusToChildren">
<short>
Indicates if an active control is focused when a form receives focus.
</short>
<descr>
<p>
<var>MoveFormFocusToChildren</var> is a <var>Boolean</var> property which
indicates if an active control is focused when a form receives focus in the
application.
</p>
<p>
The default value is <b>True</b>. When set to <b>False</b>, the window or
form will still receive focus, but a child control is not selected.
</p>
<p>
Used in the <var>SetActive</var> method in <var>TCustomForm</var>.
</p>
</descr>
<seealso>
<link id="TCustomForm.Active"/>
</seealso>
</element>
<element name="TApplication.MouseControl">
<short>Contains the control currently under the mouse pointer.</short>
<descr>
<p>
Used to detect when the mouse enters and leaves a control. MouseControl is
updated and used in methods like GetControlAtMouse and UpdateMouseControl.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TApplication.TaskBarBehavior">
<short>Indicates how forms are represented in the task bar.</short>
<descr>
<p>
<var>TaskBarBehavior</var> is a <var>TTaskBarBehavior</var> property which
indicates how forms in the application are represented in the task bar. The
property value is used in conjunction with the <var>ShowInTaskBar</var>
property for the TCustomForm instances in the application. For example:
</p>
<dl>
<dt>tbDefault</dt>
<dd>
Shows task bar buttons according to the default behavior for the platform.
</dd>
<dt>tbMultiButton</dt>
<dd>
Shows a task bar button for each form with stDefault in its ShowInTaskBar
property.
</dd>
<dt>tbSingleButton</dt>
<dd>
Hide buttons for Forms with stDefault in its ShowInTaskBar property.
</dd>
</dl>
<p>
When the property value is changed, the <var>UpdateShowInTaskBar</var> for
each TCustomForm instance is called when its ShowInTaskBar property is
<var>stDefault</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.UpdateFormatSettings">
<short>
Indicates if application format settings are updated when changed in a
widgetset class.
</short>
<descr>
<p>
<var>UpdateFormatSettings</var> is a platform-specific <var>Boolean</var>
property which indicates if application format settings are updated when
changed in a widgetset class. The default value for the property is
<b>True</b>, as assigned in the <var>Create</var> constructor.
</p>
<p>
The property value is used in the <var>IntfSettingsChange</var> method to
determine if the <var>GetFormatSettings</var> or
<var>GetFormatSettingsUTF8</var> method is called for the Windows platform.
GetFormatSettings is called when <b>DisableUTF8RTL</b> is defined for the
compiler. Other platforms are not affected, and do not call either method.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.OnActionExecute">
<short>Default handler for unhandled Actions.</short>
<descr>
<p>
<var>OnActionExecute</var> is a <var>TActionEvent</var> property with the
event handler signalled (when assigned) from the <var>ExecuteAction</var>
method.
</p>
<p>
The <var>AAction</var> argument contains the <var>TBasicAction</var> instance
executed in the event handler. <var>Handled</var> indicates whether the
action was executed in the event handler. Set Handled to <b>False</b> if the
action was not executed.
</p>
</descr>
<seealso>
<link id="TApplication.ExecuteAction"/>
<link id="#lcl.actnlist.TActionEvent">TActionEvent</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TApplication.OnActionUpdate">
<short>
Event handler signalled to update actions used in the application.
</short>
<descr>
<p>
<var>OnActionUpdate</var> is a <var>TActionEvent</var> property with the
event handler signalled to update actions used in the application.
OnActionUpdate is signalled from the <var>UpdateAction</var> method called
when the <var>CM_UPDATEACTIONS</var> control message is handled in the
application.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.OnActivate">
<short>
Event handler signalled when an Activate message is handled in the
application.
</short>
<descr>
<p>
<var>OnActivate</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when an <var>Activate</var> message is handled for the
application.
</p>
<p>
OnActivate is signalled from the <var>NotifyActivateHandler</var> method,
which occurs when the Activate method is called for the application. The
event handler is also signalled (via Activate) from the <var>WMActivate</var>
method in <var>TCustomForm</var> to ensure that the application is activated
before one of its forms is updated in the task bar.
</p>
<p>
Use the <var>OnDeactivate</var> event handler to perform actions needed when
the main form in an application is de-activated.
</p>
<p>
Use the <var>TApplicationProperties</var> class to assign properties and
event handlers at design-time that are applied to the application instance at
run-time.
</p>
</descr>
<seealso>
<link id="TApplication.NotifyActivateHandler"/>
<link id="TApplication.AddOnActivateHandler"/>
<link id="TApplication.RemoveOnActivateHandler"/>
<link id="TApplication.OnDeactivate"/>
<link id="TApplicationHandlerType"/>
<link id="TApplicationProperties"/>
</seealso>
</element>
<element name="TApplication.OnDeactivate">
<short>
Event handler signalled when a Deactivate message is handled in the
application.
</short>
<descr>
<p>
<var>OnDeactivate</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when a <var>Deactivate</var> message is handled in the
application.
</p>
<p>
It is signalled from the <var>NotifyDeactivateHandler</var> method, and
occurs when the Deactivate method is called for the application. The event
handler is also signalled (via Deactivate) from the <var>WMActivate</var>
method in <var>TCustomForm</var> to ensure that the application is
de-activated when its main form is de-activated.
</p>
<p>
Use the <var>OnActivate</var> event handler to perform actions needed when
the application is activated.
</p>
<p>
Use the <var>TApplicationProperties</var> class to assign properties and
event handlers at design-time that are applied to the application instance at
run-time.
</p>
</descr>
<seealso>
<link id="TApplication.NotifyDeactivateHandler"/>
<link id="TApplication.AddOnDeactivateHandler"/>
<link id="TApplication.RemoveOnDeactivateHandler"/>
<link id="TApplicationHandlerType"/>
<link id="TApplicationProperties"/>
</seealso>
</element>
<element name="TApplication.OnGetMainFormHandle">
<short>
Event handler used to provide a value for the MainFormHandle property.
</short>
<descr>
<p>
Used in the implementation of the <var>GetMainFormHandle</var> method.
Provides the first opportunity to set the value for <var>MainFormHandle</var>
before calling the other handlers added to the application.
</p>
</descr>
<seealso>
<link id="TApplication.MainFormHandle"/>
<link id="TApplication.MainForm"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnIdle">
<short>
Event handler signalled when the application enters the idle state.
</short>
<descr>
<p>
<var>OnIdle</var> is a <var>TIdleEvent</var> property with the event handler
signalled when the application enters the idle state. Assign an object
procedure to the event handler to perform actions needed when other window or
control messages are not present.
</p>
<p>
It is signalled from the <var>Idle</var> method, and occurs after released
components and asynchronous callbacks have been processed for the
application. It occurs before the <var>NotifyIdleHandler</var> method is
called to process other application handlers using the <var>ahtIdle</var>
type.
</p>
<p>
Any actions performed in the event handler should have a short duration, and
relatively low resource requirements. This will ensure that system
performance is not adversely affected, and the application is responsive.
</p>
<p>
Use <var>OnIdleEnd</var> to perform actions needed when the application
leaves the idle state.
</p>
<p>
Use the <var>TApplicationProperties</var> class to assign properties and
event handlers for an application instance at design-time that are applied at
run-time.
</p>
</descr>
<seealso>
<link id="TApplication.Idle"/>
<link id="TApplication.NotifyIdleHandler"/>
<link id="TApplication.OnIdleEnd"/>
<link id="TApplicationHandlerType"/>
<link id="TApplicationProperties"/>
</seealso>
</element>
<element name="TApplication.OnIdleEnd">
<short>
Event handler signalled when the application leaves the Idle state.
</short>
<descr>
<p>
<var>OnIdleEnd</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when the application leaves the <var>Idle</var> state.
</p>
<p>
It is signalled from the <var>DoOnIdleEnd</var> method, and occurs after the
<var>AppWaitMessage</var> method in the widgetset class has been completed.
It occurs before the <var>NotifyIdleEndHandler</var> method is called to
process other application handlers using the <var>ahtIdleEnd</var> type.
</p>
<p>
Use <var>OnIdle</var> to perform actions needed when the application enters
the idle state.
</p>
<p>
Use the <var>TApplicationProperties</var> class to assign properties and
event handlers for an application instance at design-time that are applied at
run-time.
</p>
</descr>
<seealso>
<link id="TApplication.Idle"/>
<link id="TApplication.NotifyIdleEndHandler"/>
<link id="TApplication.OnIdle"/>
<link id="TApplicationHandlerType"/>
<link id="TApplicationProperties"/>
</seealso>
</element>
<element name="TApplication.OnEndSession">
<short>
Event handler signalled when a session is ended in the application.
</short>
<descr>
<p>
<var>OnEndSession</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when a session is ended in the application. It is called
from the <var>IntfEndSession</var> method, and occurs when the
<var>WM_ENDSESSION</var> message is handled in the widget class. It is
signalled before other application handlers using the
<var>ahtEndSession</var> type.
</p>
<remark>
OnEndSession may not work reliably on all platforms supported supported for
Lazarus. Some environments / window managers do not post a WM_ENDSESSION
message when the process is killed.
</remark>
</descr>
<seealso>
<link id="TApplication.IntfEndSession"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnQueryEndSession">
<short>
Event handler signalled to determine if the current session be be ended, and
the application can be closed.
</short>
<descr/>
<seealso>
<link id="TApplication.IntfQueryEndSession"/>
<link id="TQueryEndSessionEvent"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnMinimize">
<short>Event handler signalled when the application is minimized.</short>
<descr>
<p>
<var>OnMinimize</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when the application has been minimized (iconified in GTK
terminology). The application is minimized when its main form is also
minimized.
</p>
<p>
OnMinimize is signalled when the <var>IntfAppMinimize</var> method is called
by the widgetset class, and occurs before other application handlers using
the <var>ahtMinimize</var> type are notified.
</p>
<p>
Use <var>OnRestore</var> to perform actions when the main form is restored
from its minimized state.
</p>
</descr>
<seealso>
<link id="TApplication.IntfAppMinimize"/>
<link id="TApplication.OnRestore"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnMessageDialogFinished">
<short>
Event handler signalled when a message dialog in the application has been
completed.
</short>
<descr>
<p>
Used in the CustomDraw interface.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.OnModalBegin">
<short>
Event handler signalled when a form in the application is displayed as a
modal form.
</short>
<descr>
<p>
<var>OnModalBegin</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when a form in the application is displayed as a modal form.
</p>
<p>
OnModalBegin is signalled from the <var>ModalStarted</var> method, which is
called when the form instance calls its <var>ShowModal</var> method. It
occurs only once - when the first modal form is displayed. Subsequent events
are ignored in ModalStarted when a modal form is already active.
</p>
<p>
Use <var>OnModalEnd</var> to perform actions needed when the number of modal
forms for the application reaches <b>0</b> (<b>zero</b>).
</p>
</descr>
<seealso>
<link id="TApplication.ModalStarted"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnModalEnd">
<short>
Event handler signalled when the last modal form for the application has been
exited.
</short>
<descr>
<p>
<var>OnModalEnd</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when the last modal form or dialog in the application has
been exited.
</p>
<p>
It is signalled from the <var>ModalFinished</var> method if the number of
modal forms in the application is <b>0</b> (<b>zero</b>). It is signalled
prior to other application handlers using the <var>ahtModalEnd</var> handler
type.
</p>
<p>
Use <var>OnModalBegin</var> to perform actions needed when the first modal
form is displayed for the application.
</p>
</descr>
<seealso>
<link id="TApplication.ModalFinished"/>
<link id="TCustomForm.ShowModal"/>
<link id="#lcl.dialogs.TCommonDialog.Execute">TCommonDialog.Execute</link>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnRestore">
<short>
Event handler signalled when the application is restored from a minimized /
maximized state.
</short>
<descr>
<p>
<var>OnRestore</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when the application is restored from a minimized /
maximized state. It is signalled from the <var>IntfAppRestore</var> method,
and occurs before other application handlers using the <var>ahtRestore</var>
type are notified.
</p>
<p>
Use OnMinimize to respond to the notification when the application is
minimized.
</p>
</descr>
<seealso>
<link id="TApplication.IntfAppRestore"/>
<link id="TApplication.AddOnRestoreHandler"/>
<link id="TApplication.RemoveOnRestoreHandler"/>
<link id="TApplication.OnMinimize"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnDropFiles">
<short>
Event handler signalled when file(s) are dropped into the application.
</short>
<descr>
<p>
<var>OnDropFiles</var> is a <var>TDropFilesEvent</var> property with the
event handler signalled when one or more files are dropped onto a form in the
application. It is signalled from the <var>IntfDropFiles</var> method, and
occurs after the corresponding method for the form that is the drop target
has been notified from the window processing loop.
</p>
<remark>
For the macOS Carbon widgetset, the OnDropFiles event is fired when a file is
dropped on the Application dock icon or opened via Finder (when associated).
The event must be enabled in the Application Bundle.
</remark>
</descr>
<seealso>
<link id="TApplication.IntfDropFiles"/>
<link id="TCustomForm.IntfDropFiles"/>
<link id="TCustomForm.AllowDropFiles"/>
</seealso>
</element>
<element name="TApplication.OnHelp">
<short>
Event handler signalled when help is requested in the application.
</short>
<descr>
<p>
<var>OnHelp</var> is a <var>THelpEvent</var> property with the event handler
signalled (if assigned) when help is requested in the application. It is
signalled from the <var>DoOnHelp</var> method when the <var>ActiveForm</var>
does not have an assigned <var>OnHelp</var> event handler or does not respond
the specified help command. It occurs before other application handlers using
the <var>ahtHelp</var> handler type are notified.
</p>
</descr>
<seealso>
<link id="TApplication.DoOnHelp"/>
<link id="TApplication.HelpContext"/>
<link id="TApplication.HelpKeyword"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnHint">
<short>
Event handler signalled when a hint is requested in the application.
</short>
<descr>
<p>
<var>OnHint</var> is a <var>TNotifyEvent</var> property with the event
handler signalled when the value for the <var>Hint</var> property has been
changed in the application. It is signalled (when assigned) from the
<var>SetHint</var> method, and occurs before other application handlers using
the <var>ahtHint</var> handler type are notified.
</p>
</descr>
<seealso>
<link id="TApplication.Hint"/>
<link id="TApplication.AddOnHintHandler"/>
<link id="TApplication.RemoveOnHintHandler"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnShortcut">
<short>
Event handler signalled to determine if a keystroke message is a shortcut key
in the application.
</short>
<descr>
<p>
<var>OnShortcut</var> is a <var>TShortcutEvent</var> property with the event
handler signalled to determine if a keystroke message is a shortcut (or
accelerator) key in the application. It is signalled (when assigned) from the
<var>IsShortcut</var> method, and occurs before the OnShortcut event handlers
for other forms are checked.
</p>
<p>
This event handler can interpret keystrokes as shortcuts, before the normal
target handles the key. The event handler can set its <var>Handled</var>
argument to <b>True</b> when the <var>Msg</var> argument contains a shortcut
keystroke specific to the application. This prevents the OnShortcut event
handlers in the application forms from being notified.
</p>
</descr>
<seealso>
<link id="TApplication.IsShortcut"/>
<link id="TShortCutEvent"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnShowHint">
<short>
Event handler signalled prior to displaying a hint window.
</short>
<descr>
<p>
<var>OnShowHint</var> is a <var>TShowHintEvent</var> property with the event
handler signalled prior to displaying a hint window for the application.
</p>
<p>
It is signalled (when assigned) from the <var>ShowHintWindow</var> method
when <var>ShowHint</var> has been enabled in the application. It occurs after
<var>HintControl</var> has been assigned to the hint window, and the position
for the hint window relative to HintControl has been calculated. It occurs
before other application handlers using the ahtShowHint type are notified,
and the hint window is made visible and activated.
</p>
</descr>
<seealso>
<link id="TApplication.ShowHintWindow"/>
<link id="TApplication.AddOnShowHintHandler"/>
<link id="TApplication.RemoveOnShowHintHandler"/>
<link id="TShowHintEvent"/>
<link id="TApplicationHandlerType"/>
</seealso>
</element>
<element name="TApplication.OnUserInput">
<short>
Event handler signalled to handle user input messages.
</short>
<descr>
<p>
<var>OnUserInput</var> is a <var>TOnUserInputEvent</var> property with the
event handler signalled when an input message is available in the processing
loop for the widgetset class. It is signalled (when assigned) from the
<var>NotifyUserInputHandler</var> method, and occurs before other application
handlers using the <var>ahtUserInput</var> type are notified.
</p>
</descr>
<seealso>
<link id="TApplicationHandlerType"/>
<link id="TApplication.NotifyUserInputHandler"/>
<link id="TOnUserInputEvent"/>
</seealso>
</element>
<element name="TApplication.OnDestroy">
<short>Event handler signalled when the application is freed.</short>
<descr>
<p>
<var>OnDestroy</var> is signalled from the <var>Destroy</var> destructor
prior to freeing resources allocated in the application class instance. It
provides the first opportunity to respond to application shutdown after
<var>Flags</var> has been updated to include the <var>AppDestroying</var>
enumeration value.
</p>
</descr>
<seealso>
<link id="TApplication.Destroy"/>
<link id="TApplication.Flags"/>
<link id="TApplicationFlags"/>
</seealso>
</element>
<element name="TApplication.OnCircularException">
<short>
Event handler signalled when a circular exception occurs before the
application is halted.
</short>
<descr>
<p>
<var>OnCircularException</var> is a <var>TExceptionEvent</var> property with
the event handler signalled when a circular exception occurs in an
application. It is signalled from the <var>HandleException</var> method when
another Exception occurs within the exception handler.
</p>
</descr>
<seealso>
<link id="TApplication.HandleException"/>
<link id="TExceptionEvent"/>
</seealso>
</element>
<element name="TApplication.ShowButtonGlyphs">
<short>
Allows the platform defaults for glyphs on buttons to be overridden.
</short>
<descr>
<p>
Some platforms always show glyphs on buttons, while others do not.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TApplication.ShowMenuGlyphs">
<short>
Sets the default policy for showing or hiding glyph images in menus.
</short>
<descr/>
<seealso>
<link id="#lcl.menus.TGlyphShowMode">TGlyphShowMode</link>
</seealso>
</element>
<element name="TApplication.ShowHint">
<short>Indicates if Hints are displayed for the application.</short>
<descr>
<p>
<var>ShowHint</var> is a <var>Boolean</var> property which indicates if
<var>Hints</var> are displayed for the application. It is used when tracking
the position of the mouse cursor over controls and forms, and determines if
the items require a hint display.
</p>
<p>
Setting the value in <var>ShowHints</var> to <b>False</b> causes an existing
<var>THintWindow</var> instance in the application to be freed.
</p>
</descr>
<seealso>
<link id="TApplicationProperties.ShowHint"/>
<link id="TForm.ShowHint"/>
<link id="TControl.ParentShowHint"/>
<link id="THintWindow"/>
</seealso>
</element>
<element name="TApplication.ShowMainForm">
<short>
Allows the main form to be shown or hidden when an application is started.
</short>
<descr>
<p>
Allows the main form to be shown or hidden when an application is started.
The default value for the property is <b>True</b> as assigned in the
<var>Create</var> constructor.
</p>
<p>
The property value is updated at run-time when a new value is assigned to the
<var>ShowMainForm</var> property in <var>TApplicationProperties</var>.
</p>
<p>
ShowMainForm is used in the <var>Run</var> method to determine if the
<var>Show</var> method is called for an assigned <var>MainForm</var>
instance. The form is displayed prior to calling the <var>AppRun</var> method
in the widgetset class.
</p>
</descr>
<seealso/>
</element>
<element name="TApplication.Title">
<short>Contains the title for the application.</short>
<descr>
<p>
The read and write access specifiers for the property are overridden in
<var>TApplication</var>. Read access ensures that an empty title defaults to
the file name (without path information) for the application executable file.
Write access ensures that a new value for the property is applied to the
widgetset class using its <var>AppSetTitle</var> method.
</p>
<remark>
For the macOS Carbon widgetset, Title cannot be changed at run-time. It must
be changed in the Application Bundle.
</remark>
</descr>
<seealso>
<link id="#fcl.CustApp.TCustomApplication.Title">TCustomApplication.Title</link>
</seealso>
</element>
<element name="TApplication.Scaled">
<short>
Indicates if forms and controls in the application can be scaled to different
display densities (Pixels per Inch).
</short>
<descr>
<p>
<var>Scaled</var> is a <var>Boolean</var> property which indicates if the
application can be scaled between differing display densities (Pixels per
Inch) at run-time. The default value for the property is normally set in the
project file used to compile the application and its forms and controls.
</p>
<p>
When Scaled is set to <b>True</b>, the application allows the design-time
PixelsPerInch value to be adjusted to reflect the run-time value. Forms,
frames, image lists, and other controls also have a Scaled property which
determines if the feature is enabled for that particular class type. If
Scaled is set to <b>False</b> in TApplication, the feature is disabled for
all of the other class types. Scaled (at the application-level) is normally
checked before the component- or control-level setting.
</p>
</descr>
<seealso/>
</element>
<element name="DefaultApplicationBiDiMode">
<short>
Contains the default BiDiMode value used for the current LCL version.
</short>
<descr>
<p>
The default value is <var>bdLeftToRight</var>.
</p>
</descr>
<seealso/>
</element>
<element name="DefHintColor">
<short>The default hint window background color.</short>
<descr/>
<seealso/>
</element>
<element name="DefHintPause">
<short>
The default pause before the hint window is displayed (in milliseconds).
</short>
<descr/>
<seealso/>
</element>
<element name="DefHintShortPause">
<short>
The default pause (in milliseconds) before a Hint is re-displayed.
</short>
<descr/>
<seealso/>
</element>
<element name="DefHintHidePause">
<short>
The default pause (in milliseconds) before a hint is hidden.
</short>
<descr/>
<seealso/>
</element>
<element name="DefHintHidePausePerChar">
<short>
The default pause (in milliseconds) added to DefHintHidePause.
</short>
<descr/>
<seealso/>
</element>
<element name="TApplicationProperties">
<short>
A component that provides access to the properties for the current
application.
</short>
<descr>
<p>
<var>TApplicationProperties</var> is a non-visual component used to provide
design-time settings that are applied at run-time to an application,
including:
</p>
<ul>
<li>CaptureExceptions</li>
<li>HelpFile</li>
<li>Hint</li>
<li>HintColor</li>
<li>HintHidePause</li>
<li>HintPause</li>
<li>HintShortCuts</li>
<li>HintShortPause</li>
<li>ShowButtonGlyphs</li>
<li>ShowMenuGlyphs</li>
<li>ShowHint</li>
<li>ShowMainForm</li>
<li>Title</li>
<li>OnException</li>
<li>OnGetMainFormHandle</li>
<li>OnIdle</li>
<li>OnIdleEnd</li>
<li>OnEndSession</li>
<li>OnQueryEndSession</li>
<li>OnMinimize</li>
<li>OnModalBegin</li>
<li>OnModalEnd</li>
<li>OnRestore</li>
<li>OnDropFiles</li>
<li>OnHelp</li>
<li>OnHint</li>
<li>OnShowHint</li>
<li>OnUserInput</li>
</ul>
<p>
Values for the properties are assigned in the constructor using the currently
assigned values in the <var>Application</var> singleton. The assignments can
be maintained at design-time.
</p>
<p>
At run-time, changes to the properties are also assigned to the
<var>Application</var> singleton. For event handler properties, the previous
routine is removed as a handler and the new handler is added to the
<var>Application</var> singleton. When the component is freed, the event
handlers are removed from the <var>Application</var> singleton. The changed
properties are not assigned to the <var>Application</var> singleton at
design-time.
</p>
<p>
<var>TApplicationProperties</var> is available on the <b>Additional</b> tab
in the Lazarus IDE Component Palette. <var>TApplicationProperties</var> is
similar to the TApplicationEvents class in Delphi.
</p>
</descr>
<seealso>
<link id="TApplicationProperties.Create"/>
<link id="TApplication"/>
<link id="Application"/>
</seealso>
</element>
<element name="TApplicationProperties.FCaptureExceptions" link="#lcl.forms.TApplicationProperties.CaptureExceptions"/>
<element name="TApplicationProperties.FExceptionDialogType"/>
<element name="TApplicationProperties.FHelpFile" link="#lcl.forms.TApplicationProperties.HelpFile"/>
<element name="TApplicationProperties.FHint" link="#lcl.forms.TApplicationProperties.Hint"/>
<element name="TApplicationProperties.FHintColor" link="#lcl.forms.TApplicationProperties.HintColor"/>
<element name="TApplicationProperties.FHintHidePause" link="#lcl.forms.TApplicationProperties.HintHidePause"/>
<element name="TApplicationProperties.FHintPause" link="#lcl.forms.TApplicationProperties.HintPause"/>
<element name="TApplicationProperties.FHintShortCuts" link="#lcl.forms.TApplicationProperties.HintShortCuts"/>
<element name="TApplicationProperties.FHintShortPause" link="#lcl.forms.TApplicationProperties.HintShortPause"/>
<element name="TApplicationProperties.FOnActivate"/>
<element name="TApplicationProperties.FOnDeactivate"/>
<element name="TApplicationProperties.FOnDropFiles" link="#lcl.forms.TApplicationProperties.OnDropFiles"/>
<element name="TApplicationProperties.FOnGetMainFormHandle" link="#lcl.forms.TApplicationProperties.OnGetMainFormHandle"/>
<element name="TApplicationProperties.FOnModalBegin" link="#lcl.forms.TApplicationProperties.OnModalBegin"/>
<element name="TApplicationProperties.FOnModalEnd" link="#lcl.forms.TApplicationProperties.OnModalEnd"/>
<element name="TApplicationProperties.FShowButtonGlyphs" link="#lcl.forms.TApplicationProperties.ShowButtonGlyphs"/>
<element name="TApplicationProperties.FShowHint" link="#lcl.forms.TApplicationProperties.ShowHint"/>
<element name="TApplicationProperties.FShowMainForm" link="#lcl.forms.TApplicationProperties.ShowMainForm"/>
<element name="TApplicationProperties.FShowMenuGlyphs" link="#lcl.forms.TApplicationProperties.ShowMenuGlyphs"/>
<element name="TApplicationProperties.FTitle" link="#lcl.forms.TApplicationProperties.Title"/>
<element name="TApplicationProperties.FOnException" link="#lcl.forms.TApplicationProperties.OnException"/>
<element name="TApplicationProperties.FOnIdle" link="#lcl.forms.TApplicationProperties.OnIdle"/>
<element name="TApplicationProperties.FOnIdleEnd" link="#lcl.forms.TApplicationProperties.OnIdleEnd"/>
<element name="TApplicationProperties.FOnHelp" link="#lcl.forms.TApplicationProperties.OnHelp"/>
<element name="TApplicationProperties.FOnHint" link="#lcl.forms.TApplicationProperties.OnHint"/>
<element name="TApplicationProperties.FOnShowHint" link="#lcl.forms.TApplicationProperties.OnShowHint"/>
<element name="TApplicationProperties.FOnUserInput" link="#lcl.forms.TApplicationProperties.OnUserInput"/>
<element name="TApplicationProperties.FOnEndSession" link="#lcl.forms.TApplicationProperties.OnEndSession"/>
<element name="TApplicationProperties.FOnQueryEndSession" link="#lcl.forms.TApplicationProperties.OnQueryEndSession"/>
<element name="TApplicationProperties.FOnMinimize" link="#lcl.forms.TApplicationProperties.OnMinimize"/>
<element name="TApplicationProperties.FOnRestore" link="#lcl.forms.TApplicationProperties.OnRestore"/>
<element name="TApplicationProperties.FOnActionExecute"/>
<element name="TApplicationProperties.FOnActionUpdate"/>
<element name="TApplicationProperties.SetExceptionDialog">
<short>Sets the value for the ExceptionDialog property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.ExceptionDialog"/>
</seealso>
</element>
<element name="TApplicationProperties.SetExceptionDialog.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetCaptureExceptions">
<short>Sets the value for the CaptureExceptions property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.CaptureExceptions"/>
</seealso>
</element>
<element name="TApplicationProperties.SetCaptureExceptions.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetHelpFile">
<short>Sets the value for the HelpFile property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.HelpFile"/>
</seealso>
</element>
<element name="TApplicationProperties.SetHelpFile.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetHint">
<short>Sets the value for the Hint property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.Hint"/>
</seealso>
</element>
<element name="TApplicationProperties.SetHint.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetHintColor">
<short>Sets the value for the HintColor property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.HintColor"/>
</seealso>
</element>
<element name="TApplicationProperties.SetHintColor.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetHintHidePause">
<short>Sets the value for the HintHidePause property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.HintHidePause"/>
</seealso>
</element>
<element name="TApplicationProperties.SetHintHidePause.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetHintPause">
<short>Sets the value for the HintPause property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.HintPause"/>
</seealso>
</element>
<element name="TApplicationProperties.SetHintPause.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetHintShortCuts">
<short>Sets the value for the HintShortCuts property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.HintShortCuts"/>
</seealso>
</element>
<element name="TApplicationProperties.SetHintShortCuts.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetHintShortPause">
<short>Sets the value for the HintShortPause property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.HintShortPause"/>
</seealso>
</element>
<element name="TApplicationProperties.SetHintShortPause.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetShowButtonGlyphs">
<short>Sets the value for the ShowButtonGlyphs property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.ShowButtonGlyphs"/>
</seealso>
</element>
<element name="TApplicationProperties.SetShowButtonGlyphs.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetShowMenuGlyphs">
<short>Sets the value for the ShowMenuGlyphs property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.ShowMenuGlyphs"/>
</seealso>
</element>
<element name="TApplicationProperties.SetShowMenuGlyphs.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetShowHint">
<short>Sets the value for the ShowHint property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.ShowHint"/>
</seealso>
</element>
<element name="TApplicationProperties.SetShowHint.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetShowMainForm">
<short>Sets the value for the ShowMainForm property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.ShowMainForm"/>
</seealso>
</element>
<element name="TApplicationProperties.SetShowMainForm.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetTitle">
<short>Sets the value for the Title property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.Title"/>
</seealso>
</element>
<element name="TApplicationProperties.SetTitle.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnActivate">
<short>Sets the value for the OnActivate property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnActivate"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnActivate.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnDeactivate">
<short>Sets the value for the OnDeactivate property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnDeactivate"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnDeactivate.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnException">
<short>Sets the value for the OnException property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnException"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnException.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnGetMainFormHandle">
<short>Sets the value for the OnGetMainFormHandle property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnGetMainFormHandle"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnGetMainFormHandle.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnIdle">
<short>Sets the value for the OnIdle property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnIdle"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnIdle.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnIdleEnd">
<short>Sets the value for the OnIdleEnd property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnIdleEnd"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnIdleEnd.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnEndSession">
<short>Sets the value for the OnEndSession property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnEndSession"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnEndSession.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnQueryEndSession">
<short>Sets the value for the OnQueryEndSession property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnQueryEndSession"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnQueryEndSession.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnMinimize">
<short>Sets the value for the OnMinimize property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnMinimize"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnMinimize.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnModalBegin">
<short>Sets the value for the OnModalBegin property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnModalBegin"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnModalBegin.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnModalEnd">
<short>Sets the value for the OnModalEnd property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnModalEnd"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnModalEnd.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnRestore">
<short>Sets the value for the OnRestore property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnRestore"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnRestore.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnDropFiles">
<short>Sets the value for the OnDropFiles property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnDropFiles"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnDropFiles.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnHelp">
<short>Sets the value for the OnHelp property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnHelp"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnHelp.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnHint">
<short>Sets the value for the OnHint property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnHint"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnHint.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnShowHint">
<short>Sets the value for the OnShowHint property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnShowHint"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnShowHint.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnUserInput">
<short>Sets the value for the OnUserInput property.</short>
<descr/>
<seealso>
<link id="TApplicationProperties.OnUserInput"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnUserInput.AValue">
<short>New value for the property.</short>
</element>
<element name="TApplicationProperties.SetOnActionExecute">
<short>
Sets the value for the OnActionExecute property.
</short>
<descr/>
<seealso>
<link id="#lcl.forms.TApplicationProperties.OnActionExecute"/>
<link id="#lcl.forms.TApplication.RemoveOnActionExecuteHandler"/>
<link id="#lcl.forms.TApplication.AddOnActionExecuteHandler"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnActionExecute.AValue">
<short>
New value for the OnActionExecute property.
</short>
</element>
<element name="TApplicationProperties.SetOnActionUpdate">
<short>
Sets the value for the OnActionUpdate property.
</short>
<descr/>
<seealso>
<link id="#lcl.forms.TApplicationProperties.OnActionUpdate"/>
<link id="#lcl.forms.TApplication.RemoveOnActionUpdateHandler"/>
<link id="#lcl.forms.TApplication.AddOnActionUpdateHandler"/>
</seealso>
</element>
<element name="TApplicationProperties.SetOnActionUpdate.AValue">
<short>
New value for the OnActionUpdate property.
</short>
</element>
<element name="TApplicationProperties.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the constructor for TApplicationProperties. Create calls
the inherited <var>Create</var> method, and sets the defaults values when a
new application is being designed, or loads local values for an existing
application.
</p>
</descr>
<seealso>
<link id="#rtl.Classes.TComponent.Create">TComponent.Create</link>
</seealso>
</element>
<element name="TApplicationProperties.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TApplicationProperties.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
<var>Destroy</var> ensures that event handlers in the class instance are
removed from the handlers registered in the global <var>TApplication</var>
instance.
</p>
<remark>
Event handlers are not removed from the Application variable at design-time;
they were not added at design-time either.
</remark>
<p>
<var>Destroy</var> calls the inherited destructor prior to exiting from the
method.
</p>
</descr>
<seealso>
<link id="TApplicationProperties.OnActivate"/>
<link id="TApplicationProperties.OnDeactivate"/>
<link id="TApplicationProperties.OnException"/>
<link id="TApplicationProperties.OnGetMainFormHandle"/>
<link id="TApplicationProperties.OnIdle"/>
<link id="TApplicationProperties.OnIdleEnd"/>
<link id="TApplicationProperties.OnEndSession"/>
<link id="TApplicationProperties.OnQueryEndSession"/>
<link id="TApplicationProperties.OnMinimize"/>
<link id="TApplicationProperties.OnModalBegin"/>
<link id="TApplicationProperties.OnModalEnd"/>
<link id="TApplicationProperties.OnRestore"/>
<link id="TApplicationProperties.OnDropFiles"/>
<link id="TApplicationProperties.OnHelp"/>
<link id="TApplicationProperties.OnHint"/>
<link id="TApplicationProperties.OnShowHint"/>
<link id="TApplicationProperties.OnUserInput"/>
</seealso>
</element>
<element name="TApplicationProperties.CaptureExceptions" link="#lcl.forms.TApplication.CaptureExceptions"/>
<element name="TApplicationProperties.ExceptionDialog">
<short>Indicates the dialog type displayed for an exception.</short>
<descr>The default value is aedOkCancelDialog.</descr>
<seealso/>
</element>
<element name="TApplicationProperties.HelpFile">
<short>Contains the name for the help file in an application.</short>
<descr>
<p>
<var>HelpFile</var> is a <var>String</var> property with the name of the help
file for an application. It is read from or written to the HelpFile property
in the Application singleton. Changing the value for the property at run-time
causes the Application instance to be updated.
</p>
</descr>
<seealso>
<link id="TCustomForm.HelpFile"/>
<link id="Application"/>
</seealso>
</element>
<element name="TApplicationProperties.Hint" link="#lcl.forms.TApplication.Hint"/>
<element name="TApplicationProperties.HintColor" link="#lcl.forms.TApplication.HintColor"/>
<element name="TApplicationProperties.HintHidePause" link="#lcl.forms.TApplication.HintHidePause"/>
<element name="TApplicationProperties.HintPause" link="#lcl.forms.TApplication.HintPause"/>
<element name="TApplicationProperties.HintShortCuts" link="#lcl.forms.TApplication.HintShortCuts"/>
<element name="TApplicationProperties.HintShortPause" link="#lcl.forms.TApplication.HintShortPause"/>
<element name="TApplicationProperties.ShowButtonGlyphs" link="#lcl.forms.TApplication.ShowButtonGlyphs"/>
<element name="TApplicationProperties.ShowMenuGlyphs" link="#lcl.forms.TApplication.ShowMenuGlyphs"/>
<element name="TApplicationProperties.ShowHint" link="#lcl.forms.TApplication.ShowHint"/>
<element name="TApplicationProperties.ShowMainForm" link="#lcl.forms.TApplication.ShowMainForm"/>
<element name="TApplicationProperties.Title" link="#lcl.forms.TApplication.Title"/>
<element name="TApplicationProperties.OnActivate" link="#lcl.forms.TApplication.OnActivate"/>
<element name="TApplicationProperties.OnDeactivate" link="#lcl.forms.TApplication.OnDeactivate"/>
<element name="TApplicationProperties.OnException">
<short>
Event handler signalled to handle an exception in an application.
</short>
<descr>
<p>
OnException is a TExceptionEvent property with an event handler signalled to
handle an exception in an application. Its value is assigned to the
OnException property in the Application singleton at run-time.
</p>
<p>
Changing the value for the property at run-time causes the Application
singleton to be updated.
</p>
</descr>
<seealso>
<link id="Application"/>
<link id="TApplication.HandleException"/>
<link id="#fcl.custapp.TCustomApplication.OnException">TCustomApplication.OnException</link>
</seealso>
</element>
<element name="TApplicationProperties.OnGetMainFormHandle" link="#lcl.forms.TApplication.OnGetMainFormHandle"/>
<element name="TApplicationProperties.OnIdle" link="#lcl.forms.TApplication.OnIdle"/>
<element name="TApplicationProperties.OnIdleEnd" link="#lcl.forms.TApplication.OnIdleEnd"/>
<element name="TApplicationProperties.OnEndSession" link="#lcl.forms.TApplication.OnEndSession"/>
<element name="TApplicationProperties.OnQueryEndSession" link="#lcl.forms.TApplication.OnQueryEndSession"/>
<element name="TApplicationProperties.OnMinimize" link="#lcl.forms.TApplication.OnMinimize"/>
<element name="TApplicationProperties.OnModalBegin" link="#lcl.forms.TApplication.OnModalBegin"/>
<element name="TApplicationProperties.OnModalEnd" link="#lcl.forms.TApplication.OnModalEnd"/>
<element name="TApplicationProperties.OnRestore" link="#lcl.forms.TApplication.OnRestore"/>
<element name="TApplicationProperties.OnDropFiles" link="#lcl.forms.TApplication.OnDropFiles"/>
<element name="TApplicationProperties.OnHelp" link="#lcl.forms.TApplication.OnHelp"/>
<element name="TApplicationProperties.OnHint" link="#lcl.forms.TApplication.OnHint"/>
<element name="TApplicationProperties.OnShowHint" link="#lcl.forms.TApplication.OnShowHint"/>
<element name="TApplicationProperties.OnUserInput" link="#lcl.forms.TApplication.OnUserInput"/>
<element name="TApplicationProperties.OnActionExecute" link="#lcl.forms.TApplication.OnActionExecute"/>
<element name="TApplicationProperties.OnActionUpdate" link="#lcl.forms.TApplication.OnActionUpdate"/>
<element name="TIDesigner">
<short>The abstract base class for visual Form designers.</short>
<descr>
<p>
<var>TIDesigner</var> is a <var>TObject</var> descendant which specifies the
interface used for visual Form designers. TIDesigner is the type used for
the <var>TCustomForm.Designer</var> property.
</p>
<p>
It is used as the ancestor for <var>TComponentEditorDesigner</var>, and the
type expected in the RootDesigner for the Object Inspector and Property
editors used in the Lazarus IDE.
</p>
</descr>
<seealso>
<link id="TCustomForm.Designer"/>
<link id="FindRootDesigner"/>
</seealso>
</element>
<element name="TIDesigner.FLookupRoot">
<short>Member with the value for the LookupRoot property.</short>
</element>
<element name="TIDesigner.FDefaultFormBoundsValid">
<short>Member with the value for the DefaultFormBoundsValid property.</short>
</element>
<element name="TIDesigner.IsDesignMsg">
<short>
Checks a message received from the Sender argument, and returns <b>True</b> if
it is a design message.
</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.IsDesignMsg.Result">
<short>
<b>True</b> if the message is targeted at the designer class instance.
</short>
</element>
<element name="TIDesigner.IsDesignMsg.Sender">
<short>
Object instance (TControl) where the specified message originated.
</short>
</element>
<element name="TIDesigner.IsDesignMsg.Message">
<short>
Message examined in the method.
</short>
</element>
<element name="TIDesigner.UTF8KeyPress">
<short>
Defines the method used to handle a key press event for a UTF-8-encoded
character.
</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.UTF8KeyPress.UTF8Key">
<short>UTF-8-encoded character for the key press event.</short>
</element>
<element name="TIDesigner.Modified">
<short>Method when design is <var>Modified</var>.</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.Notification">
<short>
<var>Notification</var> that the supplied Operation has been applied to the
specified Component.
</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.Notification.AComponent">
<short>
Component affected by the notification.
</short>
</element>
<element name="TIDesigner.Notification.Operation">
<short>
Operation performed on the component.
</short>
</element>
<element name="TIDesigner.PaintGrid">
<short>
<var>PaintGrid</var> - method for painting the grid in the designer.</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.ValidateRename">
<short>
<var>ValidateRename</var> - method to validate the Rename process.</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.ValidateRename.AComponent">
<short/>
</element>
<element name="TIDesigner.ValidateRename.CurName">
<short/>
</element>
<element name="TIDesigner.ValidateRename.NewName">
<short/>
</element>
<element name="TIDesigner.GetShiftState">
<short>
Gets the value for the shift state (whether Shift, Ctrl, or Alt key).
</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.GetShiftState.Result">
<short>Shift, Ctrl, Alt modifier for the designer.</short>
</element>
<element name="TIDesigner.SelectOnlyThisComponent">
<short>
Method to select only the current component in the designer.
</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.SelectOnlyThisComponent.AComponent">
<short/>
</element>
<element name="TIDesigner.UniqueName">
<short>
Returns a Unique name for the designer, using the BaseName as a starting
point.
</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.UniqueName.Result">
<short/>
</element>
<element name="TIDesigner.UniqueName.BaseName">
<short/>
</element>
<element name="TIDesigner.PrepareFreeDesigner">
<short>Prepares the design surface and frees the root control.</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.PrepareFreeDesigner.AFreeComponent">
<short/>
</element>
<element name="TIDesigner.LookupRoot">
<short>Component that is the root control in the form design surface.</short>
<descr/>
<seealso/>
</element>
<element name="TIDesigner.DefaultFormBoundsValid">
<short>
Indicates whether the bounds are valid after moving or sizing the form on the
design surface.
</short>
<descr/>
<seealso/>
</element>
<element name="TFormPropertyStorage">
<short>
<var>TFormPropertyStorage</var> - class for storage of a Form's properties.
</short>
<descr>
<p>
<var>TFormPropertyStorage</var> is a <var>TControlPropertyStorage</var>
descendant which extends the ancestor class to read and write form values. It
provides additional methods called when a form is created, closed, or freed.
TFormPropertyStorage is the base class for descendants like
<var>TCustomIniPropStorage</var>, <var>TCustomJSONPropStorage</var>, and
<var>TCustomXMLPropStorage</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TFormPropertyStorage.FormCreate">
<short>
Handler routine used as an OnCreate handler in the Owner of the class
instance.
</short>
<descr>
Calls the Restore method.
</descr>
<seealso/>
</element>
<element name="TFormPropertyStorage.FormCreate.Sender">
<short>Form which owns the class instance.</short>
</element>
<element name="TFormPropertyStorage.FormClose">
<short>
Handler routine used as an OnClose handler in the Owner of the class instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TFormPropertyStorage.FormClose.Sender">
<short>Form which owns the class instance.</short>
</element>
<element name="TFormPropertyStorage.FormClose.CloseAction">
<short>Close action performed in the method.</short>
</element>
<element name="TFormPropertyStorage.FormDestroy">
<short>
Handler routine used as an OnDestroy handler in the Owner of the class
instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TFormPropertyStorage.FormDestroy.Sender">
<short>Form which owns the class instance.</short>
</element>
<element name="TFormPropertyStorage.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the overridden constructor for the class instance. It calls the
inherited method on entry, using the value in TheOwner as the Owner for the
class instance. Create ensures that private methods in the class instance are
assigned as event handler routines for the TCustomForm instance in TheOwner.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.Create">TComponent.Create</link>
</seealso>
</element>
<element name="TFormPropertyStorage.Create.TheOwner">
<short>TCustomForm instance which owns the class instance.</short>
</element>
<element name="TFormPropertyStorage.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is the overridden destructor for the class instance. It ensures that
event handler routines, assigned in the constructor to the form which owns
the class instance, are removed before the class instance is freed. It calls
the inherited destructor prior to exit.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.Destroy">TComponent.Destroy</link>
</seealso>
</element>
<element name="KeysToShiftState">
<short>
Converts modifier keys in the LParam for a mouse message to a TShiftState
value.
</short>
<descr>
<p>
<var>KeysToShiftState</var> returns a <var>TShiftState</var> type with the
<var>TShiftStateEnum</var> values needed to represent the mouse key states in
the <var>Keys</var> argument. KeysToShiftState <b>AND</b>s the value in Keys
with RTL mouse key constants to determine the values in the set, including:
</p>
<dl>
<dt>MK_Shift</dt>
<dd>Includes ssShift for a non-zero result.</dd>
<dt>MK_Control</dt>
<dd>Includes ssCtrl for a non-zero result.</dd>
<dt>MK_LButton</dt>
<dd>Includes ssLeft for a non-zero result.</dd>
<dt>MK_RButton</dt>
<dd>Includes ssRight for a non-zero result.</dd>
<dt>MK_MButton</dt>
<dd>Includes ssMiddle for a non-zero result.</dd>
<dt>MK_XBUTTON1</dt>
<dd>Includes ssExtra1 for a non-zero result.</dd>
<dt>MK_XBUTTON2</dt>
<dd>Includes ssExtra2 for a non-zero result.</dd>
<dt>MK_DOUBLECLICK</dt>
<dd>Includes ssDouble for a non-zero result.</dd>
<dt>MK_TRIPLECLICK</dt>
<dd>Includes ssTriple for a non-zero result.</dd>
<dt>MK_QUADCLICK</dt>
<dd>Includes ssQuad for a non-zero result.</dd>
</dl>
<p>
GetKeyState is also called, and the following virtual key codes are processed
for the return value:
</p>
<dl>
<dt>VK_MENU</dt>
<dd>Includes ssAlt when the result is a negative number.</dd>
<dt>VK_LWIN, VK_RWIN</dt>
<dd>Includes ssMeta when the result is a negative number.</dd>
</dl>
<p>
KeysToShiftState is used to translate the key values for mouse messages in
methods like DoMouseDown, DoMouseUp, and WMMouseMove in TControl.
</p>
</descr>
<seealso>
<link id="ShiftStateToKeys"/>
<link id="KeyDataToShiftState"/>
<link id="#rtl.classes.TShiftState">TShiftState</link>
<link id="#lcl.lcltype.MK_SHIFT">MK_SHIFT</link>
<link id="#lcl.lcltype.MK_CONTROL">MK_CONTROL</link>
<link id="#lcl.lcltype.MK_LBUTTON">MK_LBUTTON</link>
<link id="#lcl.lcltype.MK_RBUTTON">MK_RBUTTON</link>
<link id="#lcl.lcltype.MK_MBUTTON">MK_MBUTTON</link>
<link id="#lcl.lcltype.MK_XBUTTON1">MK_XBUTTON1</link>
<link id="#lcl.lcltype.MK_XBUTTON2">MK_XBUTTON2</link>
</seealso>
</element>
<element name="KeysToShiftState.Result">
<short>
Set type with the TShiftStateEnum values representing the specified Keys.
</short>
</element>
<element name="KeysToShiftState.Keys">
<short>
Pointer to an unsigned Integer with the mouse key states examined in the
routine.
</short>
</element>
<element name="KeyDataToShiftState">
<short>
Converts modifier keys from the LParam in a keyboard message (WM_KEYUP for
example) to a TShiftState value.
</short>
<descr>
<p>
Calls MsgKeyDataToShiftState in the lclintf.pas unit to get the TShiftState
return value.
</p>
</descr>
<seealso>
<link id="KeysToShiftState"/>
<link id="ShiftStateToKeys"/>
<link id="#lcl.lclintf.MsgKeyDataToShiftState">MsgKeyDataToShiftState</link>
<link id="#lcl.lcltype.MK_SHIFT">MK_SHIFT</link>
<link id="#lcl.lcltype.MK_CONTROL">MK_CONTROL</link>
<link id="#lcl.lcltype.MK_LBUTTON">MK_LBUTTON</link>
<link id="#lcl.lcltype.MK_RBUTTON">MK_RBUTTON</link>
<link id="#lcl.lcltype.MK_MBUTTON">MK_MBUTTON</link>
<link id="#lcl.lcltype.MK_XBUTTON1">MK_XBUTTON1</link>
<link id="#lcl.lcltype.MK_XBUTTON2">MK_XBUTTON2</link>
<link id="#rtl.classes.TShiftState">TShiftState</link>
</seealso>
</element>
<element name="KeyDataToShiftState.Result">
<short>
Set type with the TShiftStateEnum values representing the specified KeyData.
</short>
</element>
<element name="KeyDataToShiftState.KeyData">
<short>
PtrInt value with the address for the key data examined in the routine.
</short>
</element>
<element name="KeyboardStateToShiftState">
<short>
Converts virtual key state codes to TShiftState values.
</short>
<descr>
<p>
Calls GetKeyState to get the virtual key codes for the following:
</p>
<ul>
<li>VK_SHIFT</li>
<li>VK_CONTROL</li>
<li>VK_MENU</li>
<li>VK_LWIN</li>
<li>VK_RWIN</li>
</ul>
<p>
The return value is a set type with the TShiftState values corresponding to
the virtual key codes. It may be an empty set when none of the virtual keys
are detected.
</p>
</descr>
<seealso/>
</element>
<element name="KeyboardStateToShiftState.Result">
<short>
Set type with the TShiftStateEnum values representing the current key states.
</short>
</element>
<element name="ShiftStateToKeys">
<short>
Converts a shift state into a key state value compatible with the key state
of a Windows API LParam.
</short>
<descr>
<p>
The return value is a PtrUInt type and contains an OR'ed combination of the
following constants:
</p>
<ul>
<li>MK_Shift</li>
<li>MK_Control</li>
<li>MK_LButton</li>
<li>MK_RButton</li>
<li>MK_MButton</li>
<li>MK_XBUTTON1</li>
<li>MK_XBUTTON2</li>
</ul>
</descr>
<seealso>
<link id="#rtl.classes.TShiftState">TShiftState</link>
<link id="KeysToShiftState"/>
<link id="KeyDataToShiftState"/>
<link id="#lcl.lcltype.MK_SHIFT">MK_SHIFT</link>
<link id="#lcl.lcltype.MK_CONTROL">MK_CONTROL</link>
<link id="#lcl.lcltype.MK_LBUTTON">MK_LBUTTON</link>
<link id="#lcl.lcltype.MK_RBUTTON">MK_RBUTTON</link>
<link id="#lcl.lcltype.MK_MBUTTON">MK_MBUTTON</link>
<link id="#lcl.lcltype.MK_XBUTTON1">MK_XBUTTON1</link>
<link id="#lcl.lcltype.MK_XBUTTON2">MK_XBUTTON2</link>
</seealso>
</element>
<element name="ShiftStateToKeys.Result">
<short>
PtrUInt type with the address for the value representing the specified
ShiftState enumeration values.
</short>
</element>
<element name="ShiftStateToKeys.ShiftState">
<short>
Set type with the TShiftStateEnum values examined in the routine.
</short>
</element>
<element name="WindowStateToStr">
<short>
Converts a TWindowState enumeration value to its String representation.
</short>
<descr>
<p>
<var>WindowStateToStr</var> is a <var>String</var> function used to get the
string representation for the <var>TWindowState</var> enumeration value in
the <var>State</var> argument. Calls <var>GetEnumName</var> in
<file>lazutilities</file> to get the String representation for the value in
<var>State</var>.
</p>
</descr>
<seealso>
<link id="#rtl.typinfo.GetEnumName">GetEnumName</link>
</seealso>
</element>
<element name="WindowStateToStr.Result">
<short>String representing the specified enumeration value.</short>
</element>
<element name="WindowStateToStr.State">
<short>TWindowState enumeration value converted in the routine.</short>
</element>
<element name="StrToWindowState">
<short>Converts a string to a TWindowState enumeration value.</short>
<descr>
<p>
<var>StrToWindowState</var> is a <var>TWindowState</var> function used to get
the value from the TWindowState enumeration for the specified string.
StrToWindowState calls the <var>GetEnumValueDef</var> routine in
<file>lazutilities</file> to convert the string to its value in the
TWindowState enumeration. The return value defaults to <var>wsNormal</var>
when <var>Name</var> does not represent a value in the TWindowState
enumeration.
</p>
</descr>
<seealso>
<link id="#lazutils.lazutilities.GetEnumValueDef">GetEnumValueDef</link>
</seealso>
</element>
<element name="StrToWindowState.Result">
<short>
TWindowState value for the specified string, or wsNormal by default.
</short>
</element>
<element name="StrToWindowState.Name">
<short>String representation for the window state enumeration value.</short>
</element>
<element name="dbgs">
<short>
Formats debugger messages for various types by converting their values into
readable text.
</short>
<descr>
<p>
<var>dbgs</var> is overloaded in <file>forms.pp</file>. The overloads handle
creating textual information for the TWindowState, TCloseAction, and
TScrollBarKind types. The text is used in DebugLn and WriteLn messages in the
Lazarus debugger.
</p>
</descr>
<seealso/>
</element>
<element name="dbgs.Result">
<short>
The formatted text with values for the specified argument.
</short>
</element>
<element name="dbgs.State">
<short>
TWindowState instance with values included in the text.
</short>
</element>
<element name="dbgs.Action">
<short>
TCloseAction instance with values included in the text.
</short>
</element>
<element name="dbgs.Kind">
<short>
TScrollBar instance with values included in the text.
</short>
</element>
<element name="TFocusState">
<short>
Pointer to focus state information for the last active control in an
application.
</short>
<descr>
<p>
Alias for the Pointer type. Used as the return value for the SaveFocusState
function.
</p>
</descr>
<seealso>
<link id="SaveFocusState"/>
</seealso>
</element>
<element name="SaveFocusState">
<short>
Saves the last focus state (focused control) in an application.
</short>
<descr>
<p>
<var>SaveFocusState</var> returns the value from the LastFocusedControl
variable in the implementation for the unit. The type used for the return
value is <var>TFocusState</var>, and is a Pointer to the TWinControl instance
in LastFocusedControl.
</p>
<p>
SaveFocusState is used, along with RestoreFocusState, in form and dialog
methods (like SetFocusedControl, ShowModal, and Execute) and when the value in
FocusedForm is updated in TScreen.
</p>
</descr>
<seealso>
<link id="RestoreFocusState"/>
<link id="TCustomForm.ShowModal"/>
<link id="TCustomForm.SetFocusedControl"/>
<link id="TScreen.FocusedForm"/>
<link id="TFocusState"/>
<link id="#lcl.dialogs.TCommonDialog.Execute">TCommonDialog.Execute</link>
</seealso>
</element>
<element name="SaveFocusState.Result">
<short>Last control which had focus in the application.</short>
</element>
<element name="RestoreFocusState">
<short>
Restores the previous focus state for an application to the specified value.
</short>
<descr/>
<seealso>
<link id="SaveFocusState"/>
<link id="TCustomForm.ShowModal"/>
<link id="TCustomForm.SetFocusedControl"/>
</seealso>
</element>
<element name="RestoreFocusState.FocusState">
<short>
Control set as the focused control in the routine.
</short>
</element>
<element name="TGetDesignerFormEvent">
<short>
Specifies an event handler signalled to get the form with the designer for a
persistent object.
</short>
<descr>
<p>
<var>TGetDesignerFormEvent</var> is an object function type which specifies
an event handler signalled to get the form instance with the designer object
for <var>APersistent</var>. The return value contains the
<var>TCustomForm</var> instance which contains the designer object for the
persistent object, and may be unassigned (<b>Nil</b>) if a form hosting
APersistent cannot be located.
</p>
<p>
TGetDesignerFormEvent is the type used for the <var>OnGetDesignerForm</var>
variable in the <file>forms</file> unit.
</p>
</descr>
<seealso>
<link id="OnGetDesignerForm"/>
<link id="GetDesignerForm"/>
</seealso>
</element>
<element name="TGetDesignerFormEvent.Result">
<short>
TCustomForm instance with the designer object for the specified persistent
object.
</short>
</element>
<element name="TGetDesignerFormEvent.APersistent">
<short>
TPersistent instance for the event notification.
</short>
</element>
<element name="TIsFormDesignFunction">
<short>
Specifies a Boolean function type used to implement the routine assigned to
the IsFormDesign variable.
</short>
<descr>
TIsFormDesignFunction is a Boolean function type used in the IsFormDesign
variable.
</descr>
<seealso>
<link id="IsFormDesign"/>
</seealso>
</element>
<element name="TIsFormDesignFunction.Result">
<short>
Returns <b>True</b> when the form has csDesignInstance in its component state.
</short>
</element>
<element name="TIsFormDesignFunction.AForm">
<short/>
</element>
<element name="OnGetDesignerForm">
<short>
Event handler signalled to get the designer form for the specified form or
control.
</short>
<descr>
<p>
OnGetDesignerForm is a TGetDesignerFormEvent variable that contains the event
handler signalled to get a form with a design surface for the specified form
or control.
</p>
</descr>
<seealso/>
</element>
<element name="IsFormDesign">
<short>
Address of the function used to determine if a specified control is a form
designer.
</short>
<descr/>
<seealso/>
</element>
<element name="GetParentForm">
<short>Gets the form instance for the specified Control.</short>
<descr>
<p>
<var>GetParentForm</var> is a <var>TCustomForm</var> function used to the
form instance for the control specified in the <var>Control</var> argument.
</p>
<p>
Control is the <var>TControl</var> instance examined in the method. The
<var>Parent</var> property is used to navigate to preceding parent controls
until a <var>TCustomForm</var> instance is found.
</p>
<p>
<var>TopForm</var> indicates if the top-most form instance in the hierarchy
is needed. When set to <b>False</b>, the first TCustomForm instance found in
the control hierarchy is used. Otherwise, all Parent controls in the
hierarchy are examined until a Parent control has not been assigned.
</p>
<p>
The return value can contain the value in Control if it is a TCustomForm
descendant and no other form instances are used in the control hierarchy.
This is Delphi compatible.
</p>
</descr>
<seealso/>
</element>
<element name="GetParentForm.Result">
<short>
Form instance that is the parent for the specified control.
</short>
</element>
<element name="GetParentForm.Control">
<short>
Control used to locate the parent form in the control hierarchy.
</short>
</element>
<element name="GetParentForm.TopForm">
<short>
<b>True</b> if the top-most form instance in the control hierarchy is needed.
</short>
</element>
<element name="GetDesignerForm">
<short>
Gets the Form with the designer object for the specified control or
persistent object.
</short>
<descr>
<p>
GetDesignerForm is a TCustomForm function used to get the form instance with
the designer object for the specified control or persistent object instance.
The function is overloaded to allow use of a TControl or a TPersistent
instance to locate the form.
</p>
<p>
The return value contains the top-most TCustomForm instance with a TIDesigner
instance for the value in Control or APersistent. The return value is Nil
when a form is not found which hosts the specified argument.
</p>
</descr>
<seealso/>
</element>
<element name="GetDesignerForm.Result">
<short>Form instance with the designer for the specified argument.</short>
</element>
<element name="GetDesignerForm.Control">
<short>TControl instance used to locate the owner form.</short>
</element>
<element name="GetDesignerForm.APersistent">
<short>TPersistent instance used to locate the owner form.</short>
</element>
<element name="GetFirstParentForm">
<short>
Performs a recursive search for the first Parent of type TCustomForm.
</short>
<descr>
<p>
<var>GetFirstParentForm</var> is a <var>TCustomForm</var> function used to
find the first form instance in the Parents for the specified
<var>Control</var>. GetFirstParentForm calls the <var>GetParentForm</var>
routine to get the form instance used as the return value. The return value
is <b>Nil</b> when Control has not been assigned, or a form is not found in
GetParentForm.
</p>
<p>
GetFirstParentForm is called from the <var>IntfGetDropFilesTarget</var>
method in <var>TWinControl</var>, and from routines which handle accelerator
keys for widgetset classes.
</p>
</descr>
<seealso>
<link id="GetParentForm"/>
</seealso>
</element>
<element name="GetFirstParentForm.Result">
<short>
The first custom form instance found by ascending the control hierarchy.
</short>
</element>
<element name="GetFirstParentForm.Control">
<short>
TControl instance where the search for a parent form is started.
</short>
</element>
<element name="GetTopFormSkipNonDocked">
<short>
Gets the top-most form which hosts the specified control docksite form
instances.
</short>
<descr/>
<seealso/>
</element>
<element name="GetTopFormSkipNonDocked.Result">
<short/>
</element>
<element name="GetTopFormSkipNonDocked.Control">
<short/>
</element>
<element name="ValidParentForm">
<short>Gets a valid parent form for the specified control.</short>
<descr>
<p>
<var>ValidParentForm</var> is a <var>TCustomForm</var> function used to get a
valid parent form for the control specified in the <var>Control</var>
argument. <var>TopForm</var> indicates if the return value should contain the
absolute root ancestor in the ancestry tree. ValidParentForm calls
<var>GetParentForm</var> to get the return value for the routine.
</p>
<p>
ValidParentForm raises an <var>EInvalidOperation</var> exception with the
message in <var>sParentRequired</var> when a valid parent form is not found
for the specified control.
</p>
</descr>
<errors>
Raises an EInvalidOperation exception with the message in sParentRequired
when a valid parent form is not found for the specified control.
</errors>
<seealso/>
</element>
<element name="ValidParentForm.Result">
<short>Form instance that is the parent form for the control.</short>
</element>
<element name="ValidParentForm.Control">
<short>Control examined in the routine.</short>
</element>
<element name="ValidParentForm.TopForm">
<short><b>True</b> if all parent forms are located in the routine.</short>
</element>
<element name="FindRootDesigner">
<short>
Gets the designer object for the specified persistent object (or its parent).
</short>
<descr>
<p>
<var>FindRootDesigner</var> is a <var>TIDesigner</var> function used to get
the root designer object for the specified persistent object instance. The
TIDesigner instance is found on the Form where the object (or its parent) is
hosted in the Lazarus IDE. The return value is <b>Nil</b> when a parent form
for <var>APersistent</var> is not found.
</p>
</descr>
<seealso/>
</element>
<element name="FindRootDesigner.Result">
<short>
TIDesigner instance for the object, or Nil when a parent form is not found.
</short>
</element>
<element name="FindRootDesigner.APersistent">
<short>
Persistent object examined for a designer instance in the routine.
</short>
</element>
<element name="GetParentDesignControl">
<short>
Gets the control which is the top-most TCustomDesignControl instance for the
specified control, or Nil when not a TCustomDesignControl instance.
</short>
<descr/>
<seealso/>
</element>
<element name="GetParentDesignControl.Result">
<short/>
</element>
<element name="GetParentDesignControl.Control">
<short/>
</element>
<element name="NeedParentDesignControl">
<short>
Ensures that a TCustomDesignControl instance is found for the specified
control.
</short>
<descr>
<p>
Calls <var>GetParentDesignControl</var> to get the return value for the
function. Raises an <var>EInvalidOperation</var> exception if a
<var>TCustomDesignControl</var> instance is not found for the specified
control.
</p>
<p>
Used in methods which perform scaling operations for <var>TCustomForm</var>
or <var>TControl</var> instances.
</p>
</descr>
<seealso/>
</element>
<element name="NeedParentDesignControl.Result">
<short/>
</element>
<element name="NeedParentDesignControl.Control">
<short/>
</element>
<element name="IsAccel">
<short>
Determines whether the specified virtual key is used as an accelerator (short
cut) in the given caption string.
</short>
<descr>
<p>
An accelerator consists of an ampersand followed by the accelerator key.
Duplicate ampersands are ignored; they denote a literal (displayed) ampersand
character (<b>&amp;</b>).
</p>
<p>
<var>IsAccel</var> calls UTF8Pos to locate all occurrences of a single
Ampersand character in Str. The character immediately following the Ampersand
is the short cut character for the accelerator, and it is compared to the
numeric value in VK. If one of the short cut characters matches the value in
VK, the return value is set to <b>True</b> and the routine is exited. If none
of the short cut characters match VK, or an accelerator is not present in
Str, the return value is <b>False</b>.
</p>
<p>
IsAccel is called from controls which implement overridden CMDialogChar or
DialogChar methods. It is also called when widgetset classes handle menu item
selection and execution in an application.
</p>
</descr>
<seealso/>
</element>
<element name="IsAccel.Result">
<short><b>True</b> when the key is used as an accelerator.</short>
</element>
<element name="IsAccel.VK">
<short>The virtual key (uppercase ASCII) to find.</short>
</element>
<element name="IsAccel.Str">
<short>The string to scan.</short>
</element>
<element name="NotifyApplicationUserInput">
<short>
Signals all user input handlers for the application using the specified
message.
</short>
<descr>
<p>
Calls the NotifyUserInputHandler method in the Application singleton when it
has been assigned using Msg as an argument.
</p>
<p>
NotifyApplicationUserInput is used as a callback routine in widgetset
classes. It allows the widget to notify the application when a mouse or a
keyboard event is pending in the LCL interface.
</p>
</descr>
<seealso>
<link id="TApplication.NotifyUserInputHandler"/>
<link id="TApplication.OnUserInput"/>
<link id="TApplication.DoOnMouseMove"/>
<link id="TApplication.ActivateHint"/>
<link id="Application"/>
</seealso>
</element>
<element name="NotifyApplicationUserInput.Msg">
<short>The message to process.</short>
</element>
<element name="GetShortHint">
<short>Returns the short version of a Hint string.</short>
<descr>
<p>
A short Hint is separated from the long Hint by a '|' character. If the
character is not found, the whole Hint string is returned.
</p>
</descr>
<seealso>
<link id="GetLongHint"/>
<link id="TControl.Hint"/>
<link id="TControl.DialogChar"/>
</seealso>
</element>
<element name="GetShortHint.Result">
<short>The short version of the Hint text (when available).</short>
</element>
<element name="GetShortHint.Hint">
<short>
The string containing both short and long Hint text in the format: 'Short
Hint|This is the Long Hint for a control.'
</short>
</element>
<element name="GetLongHint">
<short>Returns the long version of a Hint string.</short>
<descr>
<p>
A long Hint is the part of the text which appears after a '|' character in
Str. For example:
</p>
<code>'Short Hint|This is the Long Hint for a control.'</code>
<p>
If the '|' character is not found, the value in Str is returned.
</p>
</descr>
<seealso>
<link id="GetShortHint"/>
<link id="TControl.Hint"/>
<link id="TControl.DialogChar"/>
</seealso>
</element>
<element name="GetLongHint.Result">
<short>The long variant of the specified hint text.</short>
</element>
<element name="GetLongHint.Hint">
<short>
The string containing both short and long Hint text in the format: 'Short
Hint|This is the Long Hint for a control.'
</short>
</element>
<element name="Application">
<short>The TApplication singleton.</short>
<descr>
<p>
<var>Application</var> is a unit global variable with the
<var>TApplication</var> instance representing the currently executing
application. The value for the variable is assigned in the initialization
section for the unit when the application is started. It is freed in the
finalization section when the application is terminated.
</p>
<p>
Use the <var>TApplicationProperties</var> component to provide design-time
configuration settings for properties (including event handlers) which are
automatically applied to Application at run-time.
</p>
</descr>
<seealso>
<link id="TApplication"/>
<link id="TApplicationProperties"/>
</seealso>
</element>
<element name="Screen">
<short>The TScreen singleton for the application.</short>
<descr>
<p>
<var>Screen</var> is a unit global <var>TScreen</var> variable which provides
information about the display devices attached to the system. It allows
access to the physical attributes for the monitors available in the
application, as well logical attributes for the Desktop. It can also be used
to access information about the Forms, DataModules, Fonts, and Cursor shapes
used on the displays.
</p>
<p>
See TScreen for more information about the properties, methods and events in
the class instance.
</p>
<p>
Screen is allocated in the initialization section for the
<file>forms.pp</file> unit. It is freed in the finalization section for the
unit.
</p>
</descr>
<seealso>
<link id="TScreen"/>
</seealso>
</element>
<element name="ExceptionObject">
<short>
Variable representing the current exception object in an application.
</short>
<descr>
<p>
Used in the implementation of the TApplication.HandleException method.
</p>
</descr>
<seealso>
<link id="TApplication.HandleException"/>
</seealso>
</element>
<element name="HintWindowClass">
<short>
The class type used to create hint window instances for an application.
</short>
<descr/>
<seealso/>
</element>
<element name="RequireDerivedFormResource">
<short>
When <b>True</b> every form must have a resource (e.g. a .res file). An
exception is raised if the resource is missing when creating a form.
</short>
<descr>
<p>
The form resource is the <file>.lfm</file> file compiled into the executable
of your application. For this flag, it does not matter if it was compiled via
an <file>.lrs</file> file or via <file>fpcres</file>. The resource is
automatically loaded by <var>TForm</var> and its descendants when created
using the <var>Create(Owner)</var> method.
</p>
<p>
If the resource file is missing, there is something wrong with either a
resource or the unit which contains the faulty form. If the flag is
<b>False</b>, you will see a blank form and probably search a long time what
is wrong. If you set this flag to <b>True</b>, you get an exception.
</p>
<p>
For creating forms without resources, you have 3 options:
</p>
<ul>
<li>Create a TForm class (not a descendant).</li>
<li>Construct your form using the CreateNew() constructor.</li>
<li>
It is also possible to disable the exception by setting the global
variable RequireDerivedFormResource to <b>False</b>.
</li>
</ul>
<p>
History: Before 0.9.31 there was no exception. Therefore some resource-less
forms might use the standard constructor Create(Owner) and will now get
exceptions. This change is Delphi compatible and compatible with TFrame and
TDataModule components.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TMessageBoxFunction">
<short>The type used for the MessageBox variable.</short>
<descr>
<p>
TMessageBoxFunction is an Integer function type which specifies the routine
used to perform a message box or dialog.
</p>
<p>
Arguments passed to the function identify the content for the message dialog,
including:
</p>
<ul>
<li>Text displayed in the message dialog</li>
<li>Title used on dialog form</li>
<li>Flag values that control the buttons and icon for the dialog</li>
</ul>
<p>
The return value contains the modal result returned from the message dialog.
</p>
</descr>
<seealso>
<link id="MessageBoxFunction"/>
</seealso>
</element>
<element name="TMessageBoxFunction.Result">
<short>
Modal result from the message dialog routine.
</short>
</element>
<element name="TMessageBoxFunction.Text">
<short>
Main content for the message dialog.
</short>
</element>
<element name="TMessageBoxFunction.Caption">
<short>
Title displayed on the message dialog.
</short>
</element>
<element name="TMessageBoxFunction.Flags">
<short>
Numeric flag value for the buttons and icons displayed on the message dialog.
</short>
</element>
<element name="MessageBoxFunction">
<short>
Provides the routine used to display a message dialog in widgetset
implementations.
</short>
<descr>
<p>
Normally contains a reference to the <var>DefaultMessageBox</var> function.
It may have another function reference assigned to the variable in specific
widgetset implementations (such as CustomDraw controls).
</p>
</descr>
<seealso>
<link id="#lcl.dialogs.DefaultMessageBox">DefaultMessageBox</link>
</seealso>
</element>
<element name="DefaultBorderIcons">
<short>Maps form border styles to their border icons.</short>
<descr>
<p>
<var>DefaultBorderIcons</var> is an array constant with
<var>TBorderIcons</var> values indicating the icons available for the various
form border styles. Values in the array are indexed by the enumeration values
in TFormBorderStyle. Each element in the array contains zero (0) or more
values from the TBorderIcon enumeration, and indicates that the icon is used
for the form border style.
</p>
<p>
DefaultBorderIcons contains the following values for the corresponding
TFormBorderStyle values:
</p>
<dl>
<dt>bsNone</dt>
<dd>An empty set ([])</dd>
<dt>bsSingle</dt>
<dd>[biSystemMenu, biMinimize]</dd>
<dt>bsSizeable</dt>
<dd>[biSystemMenu, biMinimize, biMaximize]</dd>
<dt>bsDialog</dt>
<dd>[biSystemMenu]</dd>
<dt>bsToolWindow</dt>
<dd>[biSystemMenu, biMinimize]</dd>
<dt>bsSizeToolWin</dt>
<dd>[biSystemMenu, biMinimize, biMaximize]</dd>
</dl>
<p>
DefaultBorderIcons is used in the implementation of the SetFormBorderStyle
method in TCustomForm.
</p>
</descr>
<seealso/>
</element>
<element name="CreateWidgetset">
<short>Creates the widgetset singleton.</short>
<descr>
<p>
<var>CreateWidgetset</var> is a procedure used to create the
<var>WidgetSet</var> singleton. CreateWidgetset executes the initialization
handlers for the LCL interface.
</p>
<p>
<var>AWidgetsetClass</var> is the <var>TWidgetsetClass</var> class type used
to create the <var>WidgetSet</var> singleton. CreateWidgetset is called from
the <file>interfaces.pp</file> unit for a specific widgetset implementation
(win32, gtk, gtk2, gtk3, qt, qt5, et. al.).
</p>
</descr>
<seealso/>
</element>
<element name="CreateWidgetset.AWidgetsetClass">
<short>
TWidgetsetClass class type for the desired widgetset implementation.
</short>
</element>
<element name="FreeWidgetSet">
<short>
Destroys singletons for the Screen, Application, and WidgetSet.
</short>
<descr>
<p>
<var>FreeWidgetSet</var> is a procedure used to free resources allocated to
the <var>Screen</var>, <var>Application</var>, <var>Clipboards</var>, and
<var>WidgetSet</var> singletons.
</p>
<p>
For Screen, allocated cursors and monitors are destroyed. Application is
freed, and set to Nil. All clipboard formats are freed as well. The WidgetSet
singleton is freed, and set to Nil.
</p>
<p>
FreeWidgetSet executes the <var>CallInterfaceFinalizationHandlers</var>
routine to perform any finalization handlers installed for the <b>LCL</b>
interface.
</p>
</descr>
<seealso>
<link id="Application"/>
<link id="Screen"/>
<link id="WidgetSet"/>
<link id="#lcl.lclproc.CallInterfaceFinalizationHandlers">CallInterfaceFinalizationHandlers</link>
</seealso>
</element>
<element name="Register">
<short>Registers components declared in this unit.</short>
<descr>
<p>
<var>Register</var> is a procedure used to register components declared in
the <file>forms.pp</file> unit for use in the Lazarus IDE. The following
components are added to the component palette in the Lazarus IDE:
</p>
<p>
<b>Standard</b> Tab
</p>
<ul>
<li>TFrame</li>
</ul>
<p>
<b>Additional</b> Tab
</p>
<ul>
<li>TScrollBox</li>
<li>TApplicationProperties</li>
</ul>
</descr>
<seealso/>
</element>
</module>
<!-- Forms -->
</package>
</fpdoc-descriptions>