<?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
https://gitlab.com/freepascal.org/lazarus/lazarus/-/blob/main/docs/cc-by-sa-4-0.txt

Copyright (c) 1997-2025, by the Lazarus Development Team.

-->
<fpdoc-descriptions>
<package name="LCL">
<!--
====================================================================
CalcForm
====================================================================
-->
<module name="CalcForm">
<short>Contains classes and types used in TCalculatorForm.</short>
<descr>
<p>
<file>calcform.pas</file> contains classes and types used in 
<var>TCalculatorForm</var>, a dialog form used to display a calculator. It is 
part of the Lazarus Component Library (<b>LCL</b>).
</p>
</descr>

<!-- used units -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="LazUtilities"/>
<element name="Forms"/>
<element name="Controls"/>
<element name="Graphics"/>
<element name="StdCtrls"/>
<element name="ExtCtrls"/>
<element name="Buttons"/>
<element name="Menus"/>
<element name="Clipbrd"/>
<element name="WSExtDlgs"/>
<element name="LCLStrConsts"/>

<element name="CalcDefPrecision">
<short>
Defines the default number of digits of precision used for values in 
TCalculatorForm.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorCalcKeyEvent">
<short>
Specifies an event handler signalled for Key events occurring in 
TCalculatorForm.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorCalcKeyEvent.Key">
<short>Key value examined in the event handler.</short>
</element>

<element name="TCalculatorDispChangeEvent">
<short>
Specifies an event handler signalled when the display in TCalculatorForm is 
changed.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorState">
<short>
Represents status values used in TCalculatorPanel.
</short>
<descr>
<p>
<var>TCalculatorState</var> is an enumerated type with values that represent 
the status for keys/operations in the calculator. TCalculatorState is the 
type used to implement the <var>Status</var> property in 
<var>TCalculatorPanel</var>.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.Status"/>
</seealso>
</element>
<element name="TCalculatorState.csFirst">
<short>
Value when an initial key press or button click has not yet been detected and 
applied to a calculator panel.
</short>
</element>
<element name="TCalculatorState.csValid">
<short>
Value after an operation for a key press or mouse click has been successfully 
applied.
</short>
</element>
<element name="TCalculatorState.csError">
<short>
Value when an operation results in an error condition for a calculator panel.
</short>
</element>

<element name="TCalculatorLayout">
<short>
Represents layouts used for panels on a TCalculatorForm instance. 
</short>
<descr>
<p>
<var>TCalculatorLayout</var> is an enumerated type with values that represent 
the layout for keys and panels on a calculator form. TCalculatorLayout is 
passed as an argument to the <var>CreateCalculatorForm</var> routine, and to 
methods in <var>TCalculatorForm</var> and <var>TCalculatorPanel</var>.
</p>
</descr>
<seealso>
<link id="TCalculatorForm.Create"/>
<link id="TCalculatorForm.InitForm"/>
<link id="TCalculatorPanel.CreateLayout"/>
</seealso>
</element>
<element name="TCalculatorLayout.clNormal">
<short>
The default layout with larger button sizes, more whitespace, and buttons for 
common calculator operations like Back, Clear, Ok and Cancel.
</short>
</element>
<element name="TCalculatorLayout.clSimple">
<short>
The compact layout with smaller buttons using equally sized sizes. Some buttons 
like Back, Clear, Ok and Cancel are omitted in the simple layout.
</short>
</element>

<element name="TCalculatorPanel">
<short>
Implements a panel used for buttons and the value display in a calculator 
form.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.FText"/>
<element name="TCalculatorPanel.FStatus"/>
<element name="TCalculatorPanel.FOperator"/>
<element name="TCalculatorPanel.FOperand"/>
<element name="TCalculatorPanel.FMemory"/>
<element name="TCalculatorPanel.FPrecision"/>
<element name="TCalculatorPanel.FBeepOnError"/>
<element name="TCalculatorPanel.FMemoryPanel"/>
<element name="TCalculatorPanel.FMemoryLabel"/>
<element name="TCalculatorPanel.FOnError"/>
<element name="TCalculatorPanel.FOnOk"/>
<element name="TCalculatorPanel.FOnCancel"/>
<element name="TCalculatorPanel.FOnResult"/>
<element name="TCalculatorPanel.FOnTextChange"/>
<element name="TCalculatorPanel.FOnCalcKey"/>
<element name="TCalculatorPanel.FOnDisplayChange"/>
<element name="TCalculatorPanel.FControl"/>

<element name="TCalculatorPanel.SetCalcText">
<short>Sets the value for the text property.</short>
<descr/>
<seealso>
<link id="TCalculatorPanel.Text"/>
</seealso>
</element>
<element name="TCalculatorPanel.SetCalcText.Value">
<short>New value for the property.</short>
</element>

<element name="TCalculatorPanel.CheckFirst">
<short>
Ensures that Text is updated and displayed when Status is csFirst.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.CalcKey">
<short>
Performs actions for a key press notification in the calculator panel.
</short>
<descr/>
<seealso>
<link id="TCalculatorPanel.CalcKeyPress"/>
<link id="TCalculatorForm.OnKeyPress"/>
<link id="TCalculatorCalcKeyEvent"/>
</seealso>
</element>
<element name="TCalculatorPanel.CalcKey.Key">
<short>
Character value for the key pressed.
</short>
</element>

<element name="TCalculatorPanel.Clear">
<short>Clears the display and operator in the calculator panel.</short>
<descr>
<p>
Called when the Clear button on the panel is clicked, or when the 'C' key is 
pressed. Sets the display text to '0/0' and causes the OnDisplayChange event 
handler to be notified. Resets the OperatorChar property to '='.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.OnDisplayChange"/>
<link id="TCalculatorPanel.OperatorChar"/>
<link id="TCalculatorPanel.CalcKeyPress"/>
</seealso>
</element>

<element name="TCalculatorPanel.Error">
<short>
Updates the calculator panel to reflect an error condition and signals the 
OnError event handler.
</short>
<descr>
<p>
Changes the text displayed on the panel to the value in the rsError resource 
string and updates the Status property to csError. Calls ErrorBeep to produce 
an error beep when enabled in BeepOnError. Signals the OnError event handler 
(when assigned).
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.Status"/>
<link id="TCalculatorPanel.ErrorBeep"/>
<link id="TCalculatorPanel.BeepOnError"/>
<link id="TCalculatorPanel.OnError"/>
</seealso>
</element>

<element name="TCalculatorPanel.SetDisplay">
<short>
Sets the Text in the calculator panel to the specified value, and signals 
OnDisplayChange.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorPanel.SetDisplay.R">
<short>Double value formatted and assigned to the Text property.</short>
</element>

<element name="TCalculatorPanel.GetDisplay">
<short>Gets the Double value represented in the Text property.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorPanel.GetDisplay.Result">
<short>
Textual representation for DisplayValue using the Precision for the panel.
</short>
</element>

<element name="TCalculatorPanel.FindButton">
<short>
Finds the calculator button which handles the specified key character.
</short>
<descr>
<p>
<var>Key</var> contains a character value to locate in the button captions on 
the panel. Keys which are not represented by buttons, like <b>Enter</b> (#13) 
and <b>Escape</b> (#27), are translated to the value used for the target 
button. In addition, when ',' is used as the decimal separator on the system, 
it is translated into the '.' decimal notation.
</p>
<p>
FindButton iterates through the <var>Controls</var> on the panel to locate 
the button using the associated Key. The return value is <b>Nil</b> when a 
button is not located for the value in Key.
</p>
</descr>
<seealso/>
</element>
<element name="TCalculatorPanel.FindButton.Result">
<short>
Button which handles the Key, or Nil when no button is available for Key.
</short>
</element>
<element name="TCalculatorPanel.FindButton.Key">
<short>
Key character to locate in the buttons for the calculator panel.
</short>
</element>

<element name="TCalculatorPanel.BtnClick">
<short>
Translates a mouse click on a button to the character key used in CalcKey.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorPanel.BtnClick.Sender">
<short>Calculator button for the button click notification.</short>
</element>

<element name="TCalculatorPanel.ErrorBeep">
<short>
Produces an error tone when enabled using the BeepOnError property.
</short>
<descr>
<p>
ErrorBeep has an empty implementation in the current LCL version. No error tone 
is produced.
</p>
</descr>
<seealso/>
</element>

<element name="TCalculatorPanel.TextChange">
<short>
Sets the display text for the calculator panel and signals OnTextChange.
</short>
<descr/>
<seealso>
<link id="TCalculatorPanel.OnTextChange"/>
</seealso>
</element>

<element name="TCalculatorPanel.CreateLayout">
<short>
Initializes and configures the calculator panel using the specified layout.
</short>
<descr>
<p>
<var>CreateLayout</var> is a constructor for the class instance. It calls the 
inherited Create constructor on entry, and sets the default values for 
properties.
</p>
<p>
<var>AOwner</var> is the component which owns the class instance (the 
TCalculatorForm instance).
</p>
<p>
<var>ALayout</var> specifies both the position and size for the buttons on the 
panel. It affects the Width and Height for the panel as well.
</p>
<p>
CreateLayout creates the calculator buttons and positions them on the panel for 
the specified layout. When clNormal is used in ALayout, buttons are created for 
Back, Clear, Ok and Cancel. clNormal also causes a panel used for Memory 
display to be created and positioned.
</p>
<p>
CreateLayout is called from the InitForm method in TCalculatorForm.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.Memory"/>
<link id="TCalculatorForm.InitForm"/>
<link id="TCalculatorLayout"/>
<link id="#lcl.extctrls.TCustomPanel.Create">TCustomPanel.Create</link>
</seealso>
</element>
<element name="TCalculatorPanel.CreateLayout.AOwner">
<short>
Component which owns the class instance.
</short>
</element>
<element name="TCalculatorPanel.CreateLayout.ALayout">
<short>
Layout applied to the panel and its buttons.
</short>
</element>

<element name="TCalculatorPanel.CalcKeyPress">
<short>
Applies a key or button press to the calculator panel.
</short>
<descr>
<p>
CalcKeyPress is a method used to implement the OnKeyPress event handler for the 
TCalculatorForm instance where the panel is displayed. 
</p>
<p>
<var>Sender</var> is the object instance (TCalculatorForm) for the event 
notification.
</p>
<p>
<var>Key</var> is the character value for the key (or button) for the 
notification. If Key is the caption for one of the buttons on the panel, its 
Click method is called. Otherwise, the private CalcKey method is called to 
apply the Key value.
</p>
<p>
CalcKeyPress is called by a TCalculatorForm instance when its OnKeyPress event 
handler is executed.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.OnCalcKey"/>
<link id="TCalculatorForm.InitForm"/>
<link id="#lcl.forms.TForm.OnKeyPress">TForm.OnKeyPress</link>
<link id="#lcl.buttons.TCustomSpeedButton.Click">TCustomSpeedButton.Click</link>
</seealso>
</element>
<element name="TCalculatorPanel.CalcKeyPress.Sender">
<short>Object for the KeyPress event.</short>
</element>
<element name="TCalculatorPanel.CalcKeyPress.Key">
<short>Key value captured in the panel.</short>
</element>

<element name="TCalculatorPanel.Copy">
<short>Loads the value in Text into the Clipboard as plain text.</short>
<descr>
<p>
Called when the Copy context menu item for a TCalculatorForm instance is 
clicked.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.Paste"/>
</seealso>
</element>

<element name="TCalculatorPanel.Paste">
<short>
Pastes text from the Clipboard into the text display for the calculator panel.
</short>
<descr>
<p>
Called when the Paste context menu item for a TCalculatorForm instance is 
clicked.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.DisplayValue"/>
<link id="TCalculatorPanel.Copy"/>
</seealso>
</element>

<element name="TCalculatorPanel.WorkingPrecision">
<short>
Gets the minimum number of precision digits allowed for the DisplayValue on 
the panel. 
</short>
<descr>
<p>
<var>WorkingPrecision</var> is an <var>Integer</var> function used to get the 
number of decimal digits used to format the DisplayValue on the panel. The 
minimum precision used for the floating point value is 2, but can be increased 
by setting the value for the Precision property.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.Precision"/>
<link id="TCalculatorPanel.DisplayValue"/>
</seealso>
</element>
<element name="TCalculatorPanel.WorkingPrecision.Result">
<short>
Number of decimal digits displayed for the floating point DisplayValue.
</short>
</element>

<element name="TCalculatorPanel.UpdateMemoryLabel">
<short>
Updates the Memory indicator to reflect a non-zero value present in the Memory 
property.
</short>
<descr>
<p>
Causes the character 'M' to be displayed when Memory has a non-zero value. 
Otherwise, the Memory indicator is cleared.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.Memory"/>
</seealso>

</element>

<element name="TCalculatorPanel.DisplayValue">
<short>
Contains the Double value representing the result (and Text) displayed on the 
calculator panel.
</short>
<descr>
<p>
<var>DisplayValue</var> is a <var>Double</var> property which contains the 
result for a value entered or calculated using the calculator panel. The 
property value is determined by calling StrToDouble to convert the value in 
Text to a floating point value. The property value is 0.0 if Status contains 
csError.
</p>
<p>
Changing the value for the property causes Text to be updated. The Double value 
is formatted using the Precision needed for the panel, and the OnDisplayChange 
event handler is signalled (when assigned).
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.Text"/>
<link id="TCalculatorPanel.Precision"/>
<link id="TCalculatorPanel.WorkingPrecision"/>
<link id="TCalculatorPanel.Status"/>
</seealso>
</element>

<element name="TCalculatorPanel.Memory">
<short>
Contains the Double value stored as the memory for the calculator panel.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.Precision">
<short>
Number of digits used after the decimal for the Double value in the calculator 
panel.
</short>
<descr/>
<seealso>
<link id="TCalculatorPanel.WorkingPrecision"/>
</seealso>
</element>

<element name="TCalculatorPanel.BeepOnError">
<short>
Indicates whether a beep occurs when an error condition is detected in the 
calculator panel.
</short>
<descr/>
<seealso>
<link id="TCalculatorPanel.Status"/>
<link id="TCalculatorPanel.ErrorBeep"/>
</seealso>
</element>

<element name="TCalculatorPanel.Status">
<short>
Contains the status or state for the calculator panel.
</short>
<descr>
<p>
<var>Status</var> is a <var>TCalculatorState</var> property which indicate the 
state for the calculator panel. Values from the TCalculatorState enumeration 
are applied to the property when the panel is updated for key presses or mouse 
clicks.
</p>
<p>
<var>csError</var> indicates an error condition was detected, and causes 0.0 to 
be returned in the DisplayValue for the panel.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.CalcKeyPress"/>
<link id="TCalculatorPanel.DisplayValue"/>
<link id="TCalculatorPanel.BeepOnError"/>
<link id="TCalculatorPanel.ErrorBeep"/>
<link id="TCalculatorState"/>
</seealso>
</element>

<element name="TCalculatorPanel.OperatorChar">
<short>
Character representing the last operator entered using the calculator panel.
</short>
<descr/>
<seealso>
<link id="TCalculatorPanel.CalcKeyPress"/>
</seealso>
</element>

<element name="TCalculatorPanel.Text">
<short>
Text representation for the Double display value on the calculator panel.
</short>
<descr>
<p>
<var>Text</var> is a read-only <var>String</var> property in 
<var>TCalculatorPanel</var> with the textual representation for the 
DisplayValue on the panel. It contains the text formatted using the Precision 
needed for the DisplayValue. Text is updated when a new value is assigned to 
DisplayValue, when CalcKeyPress is executed for the panel, or when methods for 
Error or Clear buttons are called.
</p>
</descr>
<seealso>
<link id="TCalculatorPanel.DisplayValue"/>
<link id="TCalculatorPanel.CalcKeyPress"/>
</seealso>
</element>

<element name="TCalculatorPanel.OnOkClick">
<short>
Event handler signalled when the OK button on the calculator panel has been 
clicked.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.OnCancelClick">
<short>
Event handler signalled when the Cancel button on the calculator form has been 
clicked, or the form is closed using the Close window decoration or an 
accelerator key.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.OnResultClick">
<short>
Event handler signalled when the Enter key, = or % operators are clicked on the 
panel.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.OnError">
<short>
Event handler signalled when the Error method is called for the calculator 
panel.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.OnTextChange">
<short>
Event handler signalled when a new value has been assigned to the Text for the 
panel.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.OnCalcKey">
<short>
Event handler signalled when a key press is applied to the calculator panel.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.OnDisplayChange">
<short>
Event handler signalled following a change to the DisplayValue for the 
calculator panel.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorPanel.Color">
<short>
Background color for the calculator panel.
</short>
<descr>
<p>
<var>Color</var> is a <var>TColor</var> property with the background color used 
for the calculator panel. It is redefined in TCalculatorPanel to use clBtnFace 
as the default value for the property. Please note to ParentColor is ultimately 
set to <b>True</b> for the panels on a TCalculatorForm instance.
</p>
</descr>
<seealso/>
</element>

<element name="TCalculatorForm">
<short>
Implements the form used to display a calculator for a TCalculatorDialog 
instance.
</short>
<descr>
<p>
<var>TCalculatorForm</var> is a <var>TForm</var> descendant which implements 
the form used to display a calculator. It extends the ancestor class with 
properties, methods, and events needed to configure and display the form 
instance with UI elements needed for either a simple (compact) or a normal 
calculator layout. Use the Create constructor to control the layout for the 
calculator form instance.
</p>
<p>
Use the Value property to set or get the value displayed on the calculator.
</p>
<p>
Use the OnCalcKey and OnDisplayChange event handlers to perform actions needed 
when keys are pressed or the display value is changed on the form instance.
</p>
</descr>
<seealso>
<link id="TCalculatorForm.Create"/>
<link id="TCalculatorForm.Value"/>
<link id="TCalculatorPanel"/>
<link id="#lcl.forms.TForm">TForm</link>
</seealso>
</element>

<element name="TCalculatorForm.FMainPanel"/>
<element name="TCalculatorForm.FCalcPanel"/>
<element name="TCalculatorForm.FDisplayPanel"/>
<element name="TCalculatorForm.FDisplayLabel"/>
<element name="TCalculatorForm.FOnCalcKey"/>
<element name="TCalculatorForm.FOnDisplayChange"/>
<element name="TCalculatorForm.FMenu"/>

<element name="TCalculatorForm.FormKeyPress">
<short>
Performs actions needed to handle OnKeyPress events in the calculator form.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.FormKeyPress.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TCalculatorForm.FormKeyPress.Key">
<short>Key handled in the event handler.</short>
</element>

<element name="TCalculatorForm.CopyItemClick">
<short>Implements a copy menu item in the pop-up menu for the form.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.CopyItemClick.Sender">
<short>Object for the event notification.</short>
</element>

<element name="TCalculatorForm.GetValue">
<short>Gets the value for the Value property.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.GetValue.Result">
<short>Value for the property.</short>
</element>

<element name="TCalculatorForm.PasteItemClick">
<short>Implements a paste menu item in the pop-up menu for the form.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.PasteItemClick.Sender">
<short>
Object instance for the click notification.
</short>
</element>

<element name="TCalculatorForm.SetValue">
<short>Sets the value for the Value property.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.SetValue.AValue">
<short>New value for the property.</short>
</element>

<element name="TCalculatorForm.OkClick">
<short>Performs actions needed when the OK button is clicked.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.OkClick.Sender">
<short>
Object instance for the click notification.
</short>
</element>

<element name="TCalculatorForm.CancelClick">
<short>Performs actions needed when the Cancel button is clicked.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.CancelClick.Sender">
<short>Object for the event notification.</short>
</element>

<element name="TCalculatorForm.CalcKey">
<short>
Performs actions needed for a key received in the calculator form.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.CalcKey.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TCalculatorForm.CalcKey.Key">
<short>Key examined in the method.</short>
</element>

<element name="TCalculatorForm.DisplayChange">
<short>Performs actions needed when the calculator display is changed.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.DisplayChange.Sender">
<short>Object for the event notification.</short>
</element>

<element name="TCalculatorForm.InitForm">
<short>Initializes the calculator form using the specified layout.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.InitForm.ALayout">
<short>Layout applied to the calculator form instance.</short>
</element>

<element name="TCalculatorForm.Create">
<short>Constructor for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TCalculatorForm.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TCalculatorForm.Create.ALayout">
<short>TCalculatorLayout used for the form instance.</short>
</element>

<element name="TCalculatorForm.Value">
<short>Value displayed or returned from the calculator.</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorForm.MainPanel">
<short>
TPanel instance used as a container for the display and button panels on the 
calculator form.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorForm.CalcPanel">
<short>
Panel with the calculator keys, operators,memory buttons, et. al.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorForm.DisplayPanel">
<short>Panel for the display area on the calculator form.</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorForm.DisplayLabel">
<short>Label used to display the value in the panel.</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorForm.OnCalcKey">
<short>
Event handler signalled to handle keys press on the calculator form.
</short>
<descr/>
<seealso/>
</element>

<element name="TCalculatorForm.OnDisplayChange">
<short>
Event handler signalled when the calculator display has been changed.
</short>
<descr/>
<seealso/>
</element>

<element name="CreateCalculatorForm">
<short>
Creates, configures, and returns a new TCalculatorForm instance.
</short>
<descr>
<p>
<var>CreateCalculatorForm</var> is a <var>TCalculatorForm</var> function used 
to create and configure a new calculator form instance using the arguments 
passed to the routine.
</p>
<p>
<var>ALayout</var> determines the number, type, position, and size for buttons 
on the calculator form. It is passed as argument to the TCalculatorForm.Create 
constructor used to instantiate the return value. See 
<link id="TCalculatorLayout">TCalculatorLayout</link> for more information on 
the layout values.
</p>
<p>
AHelpContext contains the help context identifier assigned to the HelpContext 
property in the form instance.
</p>
<p>
CreateCalculatorForm ensures that the form instance is scaled to the PPI 
setting for the Screen, and updates Left and Top to center the form on the 
Screen display area. If an exception occurs during this operation the form 
instance is freed, and the return value is <b>Nil</b>. The exception is 
re-raised to perform exception handling enabled in the application.
</p>
<p>
CreateCalculatorForm is called from methods in TCalcEdit and TCalculatorDialog 
when the form instance is created for the controls.
</p>
</descr>
<seealso>
<link id="TCalculatorForm"/>
<link id="TCalculatorLayout"/>
<link id="#lcl.editbtn.TCalcEdit.RunDialog">TCalcEdit.RunDialog</link>
<link id="#lcl.extdlgs.TCalculatorDialog.Execute">TCalculatorDialog.Execute</link>
</seealso>
</element>
<element name="CreateCalculatorForm.Result">
<short>Form instance created in the method.</short>
</element>
<element name="CreateCalculatorForm.AOwner">
<short>Owner for the new form instance.</short>
</element>
<element name="CreateCalculatorForm.ALayout">
<short>Layout for the calculator panel in the form instance.</short>
</element>
<element name="CreateCalculatorForm.AHelpContext">
<short>
Help context for the newly created form instance in the return value.
</short>
</element>

<element name="cColorBtnDigits">
<short>Color for the numeric digit buttons in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cColorBtnMemory">
<short>Color for the Memory button in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cColorBtnClear">
<short>Color for the Clear button in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cColorBtnOk">
<short>Color for the OK button in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cColorBtnCancel">
<short>Color for the Cancel button in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cColorBtnOthers">
<short>Color for miscellaneous "other" buttons in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cColorDisplayText">
<short>Color for text on the display area for a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cColorDisplayBack">
<short>Color for the background of the display area in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cCalculatorFontName">
<short>Font name used for buttons and text displays in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cCalculatorFontSize">
<short>Font size used for buttons and text displays in a calculator.</short>
<descr/>
<seealso/>
</element>

<element name="cCalculatorFontStyle">
<short>Font style used for buttons and text displays in a calculator.</short>
<descr/>
<seealso/>
</element>

</module>
<!-- CalcForm -->
</package>
</fpdoc-descriptions>
