Docs: Updates for LCL and LazUtils. Issue #38671, patch from Don Siders.

git-svn-id: trunk@64878 -
This commit is contained in:
juha 2021-03-28 08:50:36 +00:00
parent 8c6c10dd8b
commit b13c6706db
11 changed files with 2191 additions and 1604 deletions

View File

@ -9,7 +9,12 @@
<module name="lazCollections">
<short>Contains classes used to implement thread-safe collections</short>
<descr>
<file>lazCollections.pas</file> contains classes used to implement thread-safe collections.
<p>
<file>lazCollections.pas</file> contains classes used to implement thread-safe collections.
</p>
<p>
This file is part of the <file>LazUtils</file> package.
</p>
</descr>
<!-- unresolved external references -->
@ -154,8 +159,23 @@
</element>
<element name="TLazFifoQueue">
<short/>
<descr/>
<short>
Implements a First-In-First-Out queue for entries using a generic item type
</short>
<descr>
<p>
<var>TLazFifoQueue</var> implements a FIFO queue using a generic type for the items in the queue. A FIFO queue processes the oldest (first) entry, or head of the queue, before any subsequent items added to the buffer.
</p>
<p>
TLazFifoQueue uses an internal array to store the queue items with the type used in the specialization. The queue size (or depth) can be specified when the class instance is created, and adjusted using the <var>Grow</var> method.
</p>
<p>
Use the <var>PushItem</var> and <var>PopItem</var> methods to add or remove entries in the queue.
</p>
<p>
Elements in the internal array are reused when the entry is popped off of the head of the queue. The head is moved to the next element in the internal array.
</p>
</descr>
<seealso/>
</element>
@ -165,93 +185,210 @@
<element name="TLazFifoQueue.FTotalItemsPushed"/>
<element name="TLazFifoQueue.GetIsEmpty">
<short/>
<short>Gets the value for the IsEmpty property</short>
<descr/>
<seealso/>
<seealso>
<link id="TLazFifoQueue.IsEmpty"/>
</seealso>
</element>
<element name="TLazFifoQueue.GetIsEmpty.Result">
<short/>
<short>
True if the number of items pushed onto and popped off of the queue are the same
</short>
</element>
<element name="TLazFifoQueue.GetIsFull">
<short/>
<short>Gets the value for the IsFull property</short>
<descr/>
<seealso/>
<seealso>
<link id="TLazFifoQueue.IsFull"/>
</seealso>
</element>
<element name="TLazFifoQueue.GetIsFull.Result">
<short/>
<short>
True when the number of items remaining in the queue is the same as the QueueSize
</short>
</element>
<element name="TLazFifoQueue.Create">
<short/>
<descr/>
<seealso/>
<short>Constructor for the class instance</short>
<descr>
<var>Create</var> is the constructor for the class instance, and calls <var>Grow</var> using the value in <var>AQueueDepth</var> as an argument. This sets the initial size for the internal queue storage to the specified number of entries.
</descr>
<seealso>
<link id="TLazFifoQueue.Grow"/>
</seealso>
</element>
<element name="TLazFifoQueue.Create.AQueueDepth">
<short/>
<short>Number of items allocated in the internal storage for the queue</short>
</element>
<element name="TLazFifoQueue.Grow">
<short/>
<descr/>
<seealso/>
<short>Resizes the internal storage for the queue by the specified Delta value</short>
<descr>
<p>
<var>Grow</var> is a method used to resize the internal storage for the queue by the specified Delta value.
</p>
<p>
When <var>ADelta</var> is a position Integer value, the size for the internal array is enlarged by the value specified number of entries. When ADelta is a negative Integer value, the internal storage is shrunk by the specified number of entries.
</p>
<p>
Grow reallocates the internal array used to store the item types for the specialization. Exisitng items in the queue are moved to the new array, and the internal storage is updated.
</p>
<p>
The value in the <var>QueueSize</var> property is set to the new length for the internal array.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.QueueSize"/>
</seealso>
</element>
<element name="TLazFifoQueue.Grow.ADelta">
<short/>
<short>Number of entries to add to (or remove from) the queue size</short>
</element>
<element name="TLazFifoQueue.PushItem">
<short/>
<descr/>
<seealso/>
<short>Pushes an item of the specified type onto the tail of the queue</short>
<descr>
<p>
<var>Pushitem</var> is a <var>Boolean</var> function used to add the value in <var>AItem</var> to the tail of the queue. The return value is <b>True</b> if the queue was not full when the method was called. No actions are performed in the method when a slot is not available in the internal storage for the queue.
</p>
<p>
PushItem stores the value in AItem at the next element in the internal array, and increments the value in the <var>TotalItemsPushed</var> property.
</p>
<p>
Use <var>PopItem</var> to remove the item at the head of the queue.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.IsFull"/>
<link id="TLazFifoQueue.QueueSize"/>
<link id="TLazFifoQueue.TotalItemsPushed"/>
<link id="TLazFifoQueue.TotalItemsPopped"/>
<link id="TLazFifoQueue.PopItem"/>
</seealso>
</element>
<element name="TLazFifoQueue.PushItem.Result">
<short/>
<short>
True if the specified item was added to the queue, or False when the queue is full
</short>
</element>
<element name="TLazFifoQueue.PushItem.AItem">
<short/>
<short>Item added to the tail of the queue</short>
</element>
<element name="TLazFifoQueue.PopItem">
<short/>
<descr/>
<seealso/>
<short>Pops an item of the specified type off of the head of the queue</short>
<descr>
<p>
<var>PopItem</var> is a <var>Boolean</var> function used to get the value in AItem from the head of the queue. The return value is <b>True</b> if the queue was not empty when the method was called. No actions are performed in the method when items have not been stored in the internal storage for the queue.
</p>
<p>
PopItem retrieves the value in AItem from the storage slot at TotalItemsPopped mod QueueSize, and increments the value in the <var>TotalItemsPopped</var> property.
</p>
<p>
Use <var>PushItem</var> to add an item to the tail of the queue.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.IsEmpty"/>
<link id="TLazFifoQueue.QueueSize"/>
<link id="TLazFifoQueue.PushItem"/>
</seealso>
</element>
<element name="TLazFifoQueue.PopItem.Result">
<short/>
<short>
True if the item was retrieved from the queue storage, False if the queue is empty
</short>
</element>
<element name="TLazFifoQueue.PopItem.AItem">
<short/>
<short>Item retrieved from the head of the queue</short>
</element>
<element name="TLazFifoQueue.QueueSize">
<short/>
<descr/>
<seealso/>
<short>Size (or depth) for the queue</short>
<descr>
<p>
Indicates the number of storage slots available in the internal storage for the queue.
</p>
<p>
Use TotalItemsPushed and TotalItemsPopped to determine the utilization level for the queue. Use IsFull or IsEmpty to determine if all or none of the storage slots have been filled in the queue. Use Grow to increase (or decrease) the queue depth.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.TotalItemsPopped"/>
<link id="TLazFifoQueue.TotalItemsPushed"/>
<link id="TLazFifoQueue.IsFull"/>
<link id="TLazFifoQueue.IsEmpty"/>
<link id="TLazFifoQueue.Grow"/>
</seealso>
</element>
<element name="TLazFifoQueue.TotalItemsPopped">
<short/>
<descr/>
<seealso/>
<short>Total number of entries that have been popped off of the queue</short>
<descr>
<p>
Used with <var>QueueSize</var> to determine the next position (head) for the queue. (TotalItemsPopped mod QueueSize). Used with <var>TotalItemsPushed</var> to determine if the queue is empty or full. The value for the property is incremented in the <var>PopItem</var> method after the item at the head of the queue has been retrieved from the internal storage.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.TotalItemsPushed"/>
<link id="TLazFifoQueue.QueueSize"/>
<link id="TLazFifoQueue.PopItem"/>
</seealso>
</element>
<element name="TLazFifoQueue.TotalItemsPushed">
<short/>
<descr/>
<seealso/>
<short>Total number of entries that have been pushed onto the queue</short>
<descr>
<p>
Used with <var>QueueSize</var> to determine the last position (tail) for the queue. (TotalItemsPushed mod QueueSize). Used with <var>TotalItemsPopped</var> to determine if the queue is empty or full. The value for the property is incremented in the <var>PushItem</var> method after the item has been stored in the internal storage at the tail for the queue.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.TotalItemsPopped"/>
<link id="TLazFifoQueue.QueueSize"/>
<link id="TLazFifoQueue.PushItem"/>
</seealso>
</element>
<element name="TLazFifoQueue.IsEmpty">
<short/>
<descr/>
<seealso/>
<short>
Indicates if none of the internal storage slots have been used in the queue storage
</short>
<descr>
<p>
<var>IsEmpty</var> is a read-only <var>Boolean</var> property which indicates if none of the storage slots are used in the internal storage for the queue. The value is <b>True</b> when <var>TotalItemsPushed</var> and <var>TotalItemsPopped</var> have the same value.
</p>
<p>
Use <var>IsFull</var> to determine if all available storage slots are in use in the internal storage for the queue.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.TotalItemsPopped"/>
<link id="TLazFifoQueue.TotalItemsPushed"/>
<link id="TLazFifoQueue.IsFull"/>
</seealso>
</element>
<element name="TLazFifoQueue.IsFull">
<short/>
<descr/>
<seealso/>
<short>
Indicates if all of the internal storage slots have been used in the queue storage
</short>
<descr>
<p>
<var>IsFull</var> is a read-only <var>Boolean</var> property which indicates if all of the storage slots are used in the internal storage for the queue. The value is <b>True</b> when <var>TotalItemsPushed</var> - <var>TotalItemsPopped</var> = <var>QueueSize</var>.
</p>
<p>
Use <var>IsEmpty</var> to determine if none of the available storage slots are in use in the internal storage for the queue.
</p>
</descr>
<seealso>
<link id="TLazFifoQueue.TotalItemsPopped"/>
<link id="TLazFifoQueue.TotalItemsPushed"/>
<link id="TLazFifoQueue.QueueSize"/>
<link id="TLazFifoQueue.IsEmpty"/>
</seealso>
</element>
<element name="TLazThreadedQueue">
@ -262,11 +399,11 @@
<p>
<var>TLazThreadedQueue</var> is generic class which implements a thread-safe FIFO queue using a generic type for its items. The class requires specialization to specify the type stored in the items for the queue. For example:
</p>
<code>
TLazThreadedQueueString = specialize TLazThreadedQueue&lt;String&gt;;
TLazThreadedQueueInt = specialize TLazThreadedQueue&lt;Integer&gt;;
TLazThreadedQueueRect = specialize TLazThreadedQueue&lt;TRectangle&gt;;
</code>
<code>
TLazThreadedQueueString = specialize TLazThreadedQueue&lt;String&gt;;
TLazThreadedQueueInt = specialize TLazThreadedQueue&lt;Integer&gt;;
TLazThreadedQueueRect = specialize TLazThreadedQueue&lt;TRectangle&gt;;
</code>
<p>
<var>TLazThreadedQueue</var> uses an internal <var>TLazMonitor</var> member to synchronize access to resources in the queue between executing threads. Methods in the class which require thread-safe access use the monitor to enable/disable resource protection. Items in the queue are maintained using the <var>PushItem</var>, <var>PopItem</var>, and <var>PopItemTimeout</var> methods. Properties are provided to determine the size of the queue, and the number of items added or removed.
</p>
@ -274,13 +411,16 @@
TLazThreadedQueue specializations are used in the implementation of the <var>fpdserver</var> component, and its integration into the Lazarus IDE.
</p>
</descr>
<notes><note>TODO: Discuss the RTL events and their usage.</note></notes>
<seealso>
<link id="TLazMonitor"/>
</seealso>
</element>
<element name="TLazThreadedQueue.TLazTypedFifoQueue">
<short/>
<short>
Type used to the specialize the internal TLazFifoQueue instance for the class
</short>
<descr/>
<seealso/>
</element>
@ -295,30 +435,34 @@
<element name="TLazThreadedQueue.FShutDown"/>
<element name="TLazThreadedQueue.GetQueueSize">
<short/>
<short>Gets the value for the QueueSize property</short>
<descr/>
<seealso/>
<seealso>
<link id="TLazThreadedQueue.QueueSize"/>
</seealso>
</element>
<element name="TLazThreadedQueue.GetQueueSize.Result">
<short/>
<short>Value for the property</short>
</element>
<element name="TLazThreadedQueue.GetTotalItemsPopped">
<short/>
<short>Gets the value for the TotalItemsPopped property</short>
<descr/>
<seealso/>
</element>
<element name="TLazThreadedQueue.GetTotalItemsPopped.Result">
<short/>
<short>Value for the property</short>
</element>
<element name="TLazThreadedQueue.GetTotalItemsPushed">
<short/>
<short>Gets the value for the TotalItemsPushed property</short>
<descr/>
<seealso/>
<seealso>
<link id="TLazThreadedQueue.TotalItemsPushed"/>
</seealso>
</element>
<element name="TLazThreadedQueue.GetTotalItemsPushed.Result">
<short/>
<short>Value for the property</short>
</element>
<element name="TLazThreadedQueue.TryPushItem">
@ -379,31 +523,39 @@
</element>
<element name="TLazThreadedQueue.Lock">
<short/>
<short>Enters the Monitor used for resource protection</short>
<descr/>
<seealso/>
<seealso>
<link id="TLazThreadedQueue.Unlock"/>
</seealso>
</element>
<element name="TLazThreadedQueue.Unlock">
<short/>
<short>Leaves the Monitor used for resource protection</short>
<descr/>
<seealso/>
<seealso>
<link id="TLazThreadedQueue.Lock"/>
</seealso>
</element>
<element name="TLazThreadedQueue.CreateFifoQueue">
<short/>
<short>Creates the TLazTypedFifoQueue instance used in the class</short>
<descr/>
<seealso/>
<seealso>
<link id="TLazThreadedQueue.TLazTypedFifoQueue"/>
</seealso>
</element>
<element name="TLazThreadedQueue.CreateFifoQueue.Result">
<short/>
<short>TLazTypedFifoQueue instance used in the class</short>
</element>
<element name="TLazThreadedQueue.CreateFifoQueue.AQueueDepth">
<short/>
<short>Initial setting for the queue depth (or size)</short>
</element>
<element name="TLazThreadedQueue.FifoQueue">
<short/>
<short>
Provides access to the TLazTypedFifoQueue instance used in the class
</short>
<descr/>
<seealso/>
</element>
@ -464,14 +616,33 @@
</element>
<element name="TLazThreadedQueue.Grow">
<short>Increases the allocated storage for the queue by the specified size</short>
<short>
Expands (or shrinks) the allocated storage for the queue by the specified size
</short>
<descr>
<p>
<var>Grow</var> is a procedure which increases the storage allocated for items in the queue by the specified value in <var>ADelta</var>. The internal queue size is incremented by the value in <var>ADelta</var>. The length of the internal storage for the queue is increased to match the new queue size.
<var>Grow</var> is a method used to resize the internal storage for the queue by the specified Delta value.
</p>
<p>
When <var>ADelta</var> is a position Integer value, the size for the internal array is enlarged by the value specified number of entries. When ADelta is a negative Integer value, the internal storage is shrunk by the specified number of entries.
</p>
<p>
Grow reallocates the internal array used to store the item types for the specialization. Exisitng items in the queue are moved to the new array, and the internal storage is updated.
</p>
<p>
The value in the <var>QueueSize</var> property is set to the new length for the internal array.
</p>
<p>
Grows uses resource protection when calling the Grow method in the internal TLazFifoQueue instance in the class.
</p>
</descr>
<seealso/>
<notes><note>Update needed. Internal storage is now re-allocated.</note></notes>
<seealso>
<link id="TLazThreadedQueue.Lock"/>
<link id="TLazThreadedQueue.Unlock"/>
<link id="TLazThreadedQueue.TLazTypedFifoQueue"/>
<link id="TLazFifoQueue.Grow"/>
<link id="TLazMonitor"/>
</seealso>
</element>
<element name="TLazThreadedQueue.Grow.ADelta">
<short>Value used to increase the size of the queue</short>

View File

@ -238,7 +238,7 @@
</short>
<descr>
<p>
ModalResultStr is array of ShortString values that contains the string representations for values in TModalResult. ModalResultStr values can be accessed using the corresponding numeric modal result value. For example:
ModalResultStr is an array of ShortString values that contains the string representations for the values in TModalResult. ModalResultStr values can be accessed using the corresponding numeric modal result value. For example:
</p>
<code>
sResult := ModalResultStr[mrNone]; // returns 'mrNone'

File diff suppressed because it is too large Load Diff

View File

@ -3922,19 +3922,25 @@ end;
</element>
<element name="InputQuery">
<short>Use InputQuery to show a dialog box to get some input from the user</short>
<short>Use InputQuery to show a dialog box to get input from the user</short>
<descr>
<p>
Two versions of this function which displays a prompt and expects user input of textual data.
</p>
<p>
The first includes a MaskInput boolean argument which determines whether the user input is masked out by asterisks in the text-input box (like during entry of a password), the second omits this property.
The first includes a <var>MaskInput</var> boolean argument which determines whether the user input is masked out by asterisks in the text-input box (like during entry of a password). The second variant omits this argument. Omitting the MaskInput argument is equivalent to setting it to <b>False</b>.
</p>
<p>
The text entered by the user is returned in the variable argument 'Value'. The function result is a boolean which returns TRUE if the OK button was pressed, or FALSE if the box was closed by any other mechanism (such as clicking the 'Close' icon on the top title bar).
<var>Value</var> contains the initial text displayed in the edit control for the dialog. The text entered by the user is also returned in the variable argument Value.
</p>
<p>
Omitting the MaskInput argument is equivalent to setting it FALSE.
The function result is a boolean which returns <b>True</b> if the OK button was pressed, or <var>False</var> if the box was closed by any other mechanism (such as clicking the 'Close' icon on the top title bar).
</p>
<p>
Another overloaded variant allows Arrays with String values to be passed in the APrompts and AValues arguments. They are used to create labels and edit controls on the dialog form, where the user can supply multiple values. The number of labels and edit controls on the dialog is determined by the length of the AValues array. An exception is raised when the APrompts and AValues arrays do not have the same length.
</p>
<p>
An event handler routine can be provided in the ACloseEvent argument to validate the input values, and determine if the dialog can be closed. It is signalled when the input dialog is closed by clicking the Cancel button or the Close icon on the dialog form. The handler returns an Array of String values input using the dialog.
</p>
</descr>
<seealso>
@ -3948,7 +3954,7 @@ end;
Returns True of OK button was pressed, False if Cancel was pressed or abnormal exit
</short>
<descr>
Result is True if the user pressed OK or hit RETURN in the dialog box. If the user pressed Cancel or the dialog was closed without pressing a button the result will be false.
Result is <b>True</b> if the user pressed OK or hit RETURN in the dialog box. If the user pressed Cancel or the dialog was closed without pressing a button the result will be <b>False</b>.
</descr>
</element>
<element name="InputQuery.ACaption">
@ -3967,10 +3973,16 @@ end;
<short>The value the user entered</short>
<descr>
<p>
When the DialogBox is shown the text in the Editbox will be Value. This string can be altered or amended by the user. When ENTER is pressed or OK clicked, Value will be the (possibly amended) text from the Editbox.
When the DialogBox is shown the text in the edit control will be Value. This string can be altered or amended by the user. When ENTER is pressed or OK clicked, Value will contain the edited text from the dialog.
</p>
</descr>
</element>
<element name="InputQuery.APrompts">
<short>Array with strings values used as labels on the input dialog</short>
</element>
<element name="InputQuery.AValues">
<short>Arrays with string values used in edit controls for the associated labels</short>
</element>
<element name="DefaultInputDialog">
<short>Widgetset-independent implementation</short>
@ -4096,9 +4108,35 @@ end;
<element name="Register">
<short>
Register the components used in the current application, so that they can be recognized
Registers components for use in the Lazarus IDE
</short>
<descr/>
<descr>
<p>
Register is the procedure used to register components for use in the Lazarus IDE.
</p>
<p>
The following components are added to the Component Palette in the Lazarus IDE:
</p>
<p>
<b>Dialogs</b> Tab
</p>
<ul>
<li>TOpenDialog</li>
<li>TSaveDialog</li>
<li>TSelectDirectoryDialog</li>
<li>TColorDialog</li>
<li>TFontDialog</li>
<li>TFindDialog</li>
<li>TReplaceDialog</li>
<li>TTaskDialog</li>
</ul>
<p>
<b>Misc</b> Tab
</p>
<ul>
<li>TColorButton</li>
</ul>
</descr>
<seealso>
<link id="#rtl.classes.RegisterComponents">RegisterComponents</link>
</seealso>

View File

@ -1505,6 +1505,29 @@
<element name="TCustomFrame.SetParent.AParent">
<short>Value assigned to the Parent property</short>
</element>
<element name="TCustomFrame.SetParentBackground">
<short>Sets the value for the ParentBackground property</short>
<descr/>
<seealso>
<link id="TCustomFrame.ParentBackground"/>
</seealso>
</element>
<element name="TCustomFrame.SetParentBackground.AParentBackground">
<short>New value for the property</short>
</element>
<element name="TCustomFrame.CMParentColorChanged">
<short>Handles the CM_PARENTCOLORCHANGED message for the control</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.CMParentColorChanged">TControl.CMParentColorChanged</link>
</seealso>
</element>
<element name="TCustomFrame.CMParentColorChanged.Message">
<short>Control message handled in the method</short>
</element>
<element name="TCustomFrame.DefineProperties" link="#rtl.classes.TComponent.DefineProperties"/>
<element name="TCustomFrame.DefineProperties.Filer">
<short/>
@ -1555,6 +1578,22 @@
<element name="TCustomFrame.GetControlClassDefaultSize.Result">
<short/>
</element>
<element name="TCustomFrame.ParentBackground" link="#lcl.controls.TWinControl.ParentBackground">
<short>Indicates if the control uses the background from the parent</short>
<descr>
<p>
The write access specifier is overridden in TCustomFrame, and calls the <var>UpdateOpaque</var> method.
</p>
<p>
The default value for the property is <b>True</b>.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.ParentBackground">TWinControl.ParentBackground</link>
</seealso>
</element>
<!-- "class of" type Visibility: default -->
<element name="TCustomFrameClass" link="#lcl.forms.TCustomFrame"/>
<!-- object Visibility: default -->

View File

@ -13133,7 +13133,6 @@
<element name="TJPEGImage.InitializeReader.AReader">
<short>FCL-compatible image reader class updated in the method</short>
</element>
<!-- WIP -->
<element name="TJPEGImage.InitialWriter">
<short>Initializes the FCL-compatible Image Writer for the image type</short>
<descr/>
@ -13528,7 +13527,6 @@
<element name="TGIFImage.FTransparent"/>
<element name="TGIFImage.FInterlaced"/>
<element name="TGIFImage.FBitsPerPixel"/>
<!-- WIP -->
<element link="#lcl.graphics.TFPImageBitmap.InitializeReader" name="TGIFImage.InitializeReader">
<short/>
<descr/>

View File

@ -2614,17 +2614,23 @@
</element>
<element name="TGridColumnTitle.FixDesignFontsPPI">
<short/>
<short>Corrects the design-time PPI for the column title</short>
<descr>
<p>
<var>FixDesignFontsPPI</var> is a procedure used to...
<var>FixDesignFontsPPI</var> is a procedure used to correct the design-time Pixels Per Inch setting for the component. Pixels Per Inch for Fonts is not saved in LFM files, and the design-time setting may differ from the run-time setting on a target machine. This adversely affects font scaling.
</p>
<p>
FixDesignFontsPPI calls the DoFixDesignFontPPI method in the Grid control for the column to adjust the font PPI to the value specified in ADesignTimePPI.
</p>
</descr>
<seealso/>
<notes><note>TODO</note></notes>
<seealso>
<link id="TGridColumnTitle.Font"/>
<link id="TGridColumn.Grid"/>
<link id="#lcl.controls.TControl.DoFixDesignFontPPI">TControl.DoFixDesignFontPPI</link>
</seealso>
</element>
<element name="TGridColumnTitle.FixDesignFontsPPI.ADesignTime">
<short/>
<short>Design-time display density applied in the method</short>
</element>
<element name="TGridColumnTitle.ScaleFontsPPI">
@ -2645,12 +2651,33 @@
</element>
<element name="TGridColumnTitle.IsDefault">
<short>Returns True if the column title uses a default value</short>
<descr/>
<seealso/>
<short>Returns True if the column title uses the default property values</short>
<descr>
<p>
<var>IsDefault</var> is a <var>Boolean</var> function used to determine if the column title uses the default values assigned when the class instance was created. The return value is <b>True</b> when <b>all</b> of the following conditions are met:
</p>
<ul>
<li>Alignment is Nil (unassigned).</li>
<li>Caption is Nil (unassigned).</li>
<li>Color is Nil (unassigned).</li>
<li>Layout is Nil (unassigned).</li>
<li>ImageIndex is 0 (zero).</li>
<li>ImageLayout is blGlyphRight.</li>
<li>IsDefaultFont returns True.</li>
</ul>
<p>
IsDefault is when the coloumns for the parent grid are streamed using the LCL component streaming mechanism. Columns which contain defauilt values (including the title) are not written during component streaming.
</p>
</descr>
<seealso>
<link id="TGridColumn.IsDefault"/>
<link id="TGridColumn.Title"/>
<link id="TGridColumns"/>
<link id="TGrid.Columns"/>
</seealso>
</element>
<element name="TGridColumnTitle.IsDefault.Result">
<short/>
<short>True if the column title uses the default property values</short>
</element>
<element name="TGridColumnTitle.Column">
@ -2660,7 +2687,9 @@
</element>
<element name="TGridColumnTitle.Alignment">
<short>The <var>Alignment</var> (whether justified or centered) for the column title</short>
<short>
The <var>Alignment</var> (whether justified or centered) for the column title
</short>
<descr/>
<seealso/>
</element>
@ -3419,17 +3448,23 @@
</element>
<element name="TGridColumn.FixDesignFontsPPI">
<short/>
<short>Corrects the design-time PPI for the column title</short>
<descr>
<p>
<var>FixDesignFontsPPI</var> is a procedure used to...
<var>FixDesignFontsPPI</var> is a procedure used to correct the design-time Pixels Per Inch setting for the component. Pixels Per Inch for Fonts is not saved in LFM files, and the design-time setting may differ from the run-time setting on a target machine. This adversely affects font scaling.
</p>
<p>
FixDesignFontsPPI calls the DoFixDesignFontPPI method in the Grid control to adjust the font PPI to the value specified in ADesignTimePPI.
</p>
</descr>
<seealso/>
<notes><note>TODO</note></notes>
<seealso>
<link id="TGridColumn.Font"/>
<link id="TGridColumn.Grid"/>
<link id="#lcl.controls.TControl.DoFixDesignFontPPI">TControl.DoFixDesignFontPPI</link>
</seealso>
</element>
<element name="TGridColumn.FixDesignFontsPPI.ADesignTime">
<short/>
<short>Design-time display density applied in the method</short>
</element>
<element name="TGridColumn.ScaleFontsPPI">
@ -8450,7 +8485,7 @@
<descr>
GetSmoothScroll determines whether the smooth scroll setting (goSmoothScroll) has been included in the Options for the grid control.
</descr>
<notes><note>?</note></notes>
<notes><note>Needs an explanation of what "smooth scroll" really means.</note></notes>
<seealso/>
</element>
<element name="TCustomGrid.GetSmoothScroll.Result">
@ -9946,7 +9981,6 @@
<var>Sort</var> is a method used to sort items in the grid. When <var>ColSorting</var> is <b>True</b>, it sorts the items in a column. Otherwise, it sorts a row. The three index values specify the items to be sorted.
</p>
</descr>
<notes><note>TODO: Describe sort algorithm and argument usage</note></notes>
<seealso/>
</element>
<element name="TCustomGrid.Sort.ColSorting">
@ -13087,11 +13121,16 @@
<short>Column or row number deleted in the method</short>
</element>
<!-- WIP -->
<element name="TCustomDrawGrid.DeleteCol">
<short>Deletes the column at the specified position</short>
<descr/>
<seealso/>
<descr>
<p>
Calls <var>DeleteColRow</var> to delete the column number specified in <var>Index</var>.
</p>
</descr>
<seealso>
<link id="TCustomDrawGrid.DeleteColRow"/>
</seealso>
</element>
<element name="TCustomDrawGrid.DeleteCol.Index">
<short>Position for the column removed in the method</short>
@ -13099,8 +13138,14 @@
<element name="TCustomDrawGrid.DeleteRow">
<short>Deletes the row at the specified position</short>
<descr/>
<seealso/>
<descr>
<p>
Calls <var>DeleteColRow</var> to delete the row number specified in <var>Index</var>.
</p>
</descr>
<seealso>
<link id="TCustomDrawGrid.DeleteColRow"/>
</seealso>
</element>
<element name="TCustomDrawGrid.DeleteRow.Index">
<short>Position for the row removed in the method</short>
@ -13134,8 +13179,35 @@
</element>
<element name="TCustomDrawGrid.MoveColRow">
<short>Moves a column or a row from a specified position to a new position in the grid</short>
<descr/>
<short>
Moves a column or a row from a specified position to a new position in the grid
</short>
<descr>
<p>
Implemented using the DoOPMoveColRow method.
</p>
<p>
Values in FromIndex and ToIndex must be valid column or row numbers for the control. An EGridException is raised if either value is not valid.
</p>
<p>
No actions are performed in the method if FromIndex and ToIndex have the same value.
</p>
<p>
No actions are performed in the method if IsColumn is <b>True</b> and columns are locked using the GridFlags. This occurs when a column index is being updated in the control.
</p>
<p>
Calls ColRowMoved to perform a notification when the column or row has been moved.
</p>
<p>
Calls VisualChange if the Columns collection has not been enabled in the control, or when IsColumn is <b>False</b>.
</p>
<p>
Updates the bounds for the cell editor when it is located in a column or row affected in the method.
</p>
<p>
Updates the value in SortColumn if it is affected in the method.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomDrawGrid.MoveColRow.IsColumn">
@ -13149,7 +13221,7 @@
</element>
<element name="TCustomDrawGrid.SortColRow">
<short>Sorts the data in the specified column or row using the specified positions</short>
<short>Sorts the data in a column or row using the specified positions</short>
<descr/>
<seealso/>
</element>
@ -14187,23 +14259,32 @@
<short>Checkbox state derived for the specified cell</short>
</element>
<!-- WIP -->
<element name="TCustomStringGrid.GetEditText">
<short>Gets the text displayed in the Editor for the specified cell</short>
<descr/>
<descr>
<p>
<var>GetEditText</var> is an overridden method used to get the text displayed in the Editor for the cell with the specified column and row numbers. GetEditText re-implements the method defined in the ancestor class.
</p>
<p>
The return value contains the string stored in <var>Cells</var> at the specified column and row numbers.
</p>
<p>
GetEditText signals the <var>OnGetEditText</var> event handler (when assigned) to validate or modify the return value for the method.
</p>
</descr>
<seealso>
<link id="TCustomGrid.GetEditText"/>
<link id="TCustomDrawGrid.GetEditText"/>
</seealso>
</element>
<element name="TCustomStringGrid.GetEditText.Result">
<short/>
<short>Textual content for the cell at the specified column and row number</short>
</element>
<element name="TCustomStringGrid.GetEditText.aCol">
<short/>
<short>Column number for the cell value</short>
</element>
<element name="TCustomStringGrid.GetEditText.aRow">
<short/>
<short>Row number for the cell value</short>
</element>
<element name="TCustomStringGrid.LoadContent">
@ -14324,8 +14405,14 @@
</element>
<element name="TCustomStringGrid.OnCellProcess">
<short>Event handler signalled when copying or pasting content for Cells in the grid</short>
<descr/>
<short>
Event handler signalled when copying or pasting content for Cells in the grid
</short>
<descr>
<p>
Allows the textual value for the clipboard operation (not the HTML interchange data) to be changed before it is applied. Signalled from the DoCellProcess method when assigned.
</p>
</descr>
<seealso/>
</element>
@ -15180,9 +15267,9 @@
<notes>
<note>
ToDo:
Samples of what can be made and what to leave for OnDrawCell?
OnDrawCell examples
Discuss OnEditingDone.
Examples for editing a pick list.
Editing a pick list example
</note>
</notes>
</topic>

View File

@ -9,486 +9,416 @@
-->
<module name="ImageListCache">
<short/>
<short>
Implements a caching mechanism for TCustomImageList (TImageList) instances
</short>
<descr>
<p>
<file>imagelistcache.pas</file> contains classes, types, and routines used to
implement a cache for <var>TCustomImageList</var> instances. It is used mainly
to cache image lists with the glyphs used on button controls.
</p>
<p>
This file is part of the Lazarus Component Library (<b>LCL</b>).
</p>
</descr>
<!-- unresolved type reference Visibility: default -->
<element name="Classes">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- unresolved type reference Visibility: default -->
<element name="SysUtils">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- unresolved type reference Visibility: default -->
<element name="Graphics">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- unresolved type reference Visibility: default -->
<element name="ImgList">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- unresolved type reference Visibility: default -->
<element name="LCLProc">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- unresolved type references -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="Graphics"/>
<element name="ImgList"/>
<element name="LCLProc"/>
<element name="Forms"/>
<!-- object Visibility: default -->
<element name="IImageCacheListener">
<short/>
<descr>
</descr>
<errors>
</errors>
<short>
Interface that cache user should have to listen for cache changes
</short>
<descr/>
<seealso>
<link id="TImageCacheItem"/>
<link id="TImageListCache.RegisterListener"/>
<link id="TImageListCache.UnregisterListener"/>
<link id="TImageListCache.RegisterBitmap"/>
</seealso>
</element>
<!-- procedure Visibility: default -->
<element name="IImageCacheListener.CacheSetImageList">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<short>Sets the image list for the cache listener</short>
<descr/>
<seealso/>
</element>
<!-- argument Visibility: default -->
<element name="IImageCacheListener.CacheSetImageList.AImageList">
<short/>
<short>TCustomImageList instance for the listener</short>
</element>
<!-- procedure Visibility: default -->
<element name="IImageCacheListener.CacheSetImageIndex">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<short>Sets the new image index for an image in the list</short>
<descr/>
<seealso/>
</element>
<!-- argument Visibility: default -->
<element name="IImageCacheListener.CacheSetImageIndex.AIndex">
<short/>
<short>Old image index in the listener</short>
</element>
<!-- argument Visibility: default -->
<element name="IImageCacheListener.CacheSetImageIndex.AImageIndex">
<short/>
<short>New image index in the listener</short>
</element>
<!-- record type Visibility: default -->
<element name="TImageCacheItem">
<short/>
<descr>
</descr>
<short>Represents an item in the cache</short>
<descr/>
<seealso>
<link id="TImageCacheItems"/>
<link id="TImageListCache"/>
</seealso>
</element>
<!-- variable Visibility: default -->
<element name="TImageCacheItem.FImageList">
<short/>
<descr>
</descr>
<seealso>
</seealso>
<short>Reference to the image list</short>
</element>
<!-- variable Visibility: default -->
<element name="TImageCacheItem.FListener">
<short/>
<descr>
</descr>
<seealso>
</seealso>
<short>Reference to the listener interface</short>
</element>
<!-- variable Visibility: default -->
<element name="TImageCacheItem.FImageIndexes">
<short/>
<descr>
</descr>
<seealso>
</seealso>
<short>Indices in the image list that the listener has reserved</short>
</element>
<!-- pointer type Visibility: default -->
<element name="PImageCacheItem">
<short/>
<descr>
</descr>
<seealso>
</seealso>
<short>Pointer to a TImageCacheItem type</short>
</element>
<!-- object Visibility: default -->
<element name="TImageCacheItems">
<short/>
<short>Implements a container for cached image lists</short>
<descr>
<p>
<var>TImageCacheItems</var> is a <var>TList</var> descendant which implements
a container for cached image lists. It allows indexed access to the image lists
in the container by their ordinal position. It also provides a method used to
create the image list references stored in the container.
</p>
<p>
TImageCacheItems is used in the implementation of the
<var>TImageListCache</var> class.
</p>
</descr>
<errors>
</errors>
<seealso>
<link id="TImageListCache"/>
</seealso>
</element>
<!-- function Visibility: private -->
<element name="TImageCacheItems.GetItem">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- private -->
<element name="TImageCacheItems.GetItem"/>
<element name="TImageCacheItems.GetItem.Result"/>
<element name="TImageCacheItems.GetItem.AIndex"/>
<element name="TImageCacheItems.GetItemForListener"/>
<element name="TImageCacheItems.GetItemForListener.Result"/>
<element name="TImageCacheItems.GetItemForListener.AListener"/>
<element name="TImageCacheItems.SetItem"/>
<element name="TImageCacheItems.SetItem.AIndex"/>
<element name="TImageCacheItems.SetItem.AValue"/>
<!-- function result Visibility: default -->
<element name="TImageCacheItems.GetItem.Result">
<short/>
</element>
<!-- argument Visibility: default -->
<element name="TImageCacheItems.GetItem.AIndex">
<short/>
</element>
<!-- function Visibility: private -->
<element name="TImageCacheItems.GetItemForListener">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- function result Visibility: default -->
<element name="TImageCacheItems.GetItemForListener.Result">
<short/>
</element>
<!-- argument Visibility: default -->
<element name="TImageCacheItems.GetItemForListener.AListener">
<short/>
</element>
<!-- procedure Visibility: private -->
<element name="TImageCacheItems.SetItem">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
</element>
<!-- argument Visibility: default -->
<element name="TImageCacheItems.SetItem.AIndex">
<short/>
</element>
<!-- argument Visibility: default -->
<element name="TImageCacheItems.SetItem.AValue">
<short/>
</element>
<!-- procedure Visibility: protected -->
<element name="TImageCacheItems.Notify">
<short/>
<descr>
</descr>
<errors>
</errors>
<short>Notifies observers when a value in the container has been changed</short>
<descr/>
<seealso>
<link id="#rtl.classes.TList"/>
</seealso>
</element>
<!-- argument Visibility: default -->
<element name="TImageCacheItems.Notify.Ptr">
<short/>
<short>Untyped Pointer to the value for the change notification</short>
</element>
<!-- argument Visibility: default -->
<element name="TImageCacheItems.Notify.Action">
<short/>
<short>Action for the notification (Add, Extract, Delete)</short>
</element>
<!-- function Visibility: public -->
<element name="TImageCacheItems.GetNew">
<short/>
<short>Allocates and stores a new image list reference in the container</short>
<descr>
<p>
<var>GetNew</var> is a <var>PImageCacheItem</var> function used to allocate and
store a new reference to an image list in the container. GetNew calls
<var>New</var> to allocate the storage needed for the return value. The
<var>Add</var> method is called to append the reference to the storage for
the container.
</p>
</descr>
<errors>
</errors>
<seealso>
<link id="#rtl.classes.TList.Add">TList.Add</link>
</seealso>
</element>
<!-- function result Visibility: default -->
<element name="TImageCacheItems.GetNew.Result">
<short/>
<short>Reference for an image list stored in the container</short>
</element>
<!-- property Visibility: public -->
<element name="TImageCacheItems.Items">
<short/>
<short>
Provides indexed access to image list references in the container
</short>
<descr>
<p>
<var>Items</var> is an indexed <var>PImageCacheItem</var> property which
provides access to an image list reference in the container by its ordinal
position. Read and write access to the property value are redirected to
methods in the ancestor.
</p>
<p>
Items is the default property for the container.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TList"/>
</seealso>
</element>
<!-- argument Visibility: default -->
<element name="TImageCacheItems.Items.AIndex">
<short/>
<short>Ordinal position in the container for the requested image list</short>
</element>
<!-- object Visibility: default -->
<element name="TImageListCache">
<short/>
<short>Implements a caching mechanism for image lists</short>
<descr>
<p>
<var>TImageListCache</var> is a class which implements a caching mechanism for
<var>TCustomImageList</var> instances. It is used primarily to cache image
lists and images used for <var>Glyphs</var> in <var>TButtonGlyph</var>.
</p>
<p>
TImageListCache contains internal members that are used for the cache storage
and cache listener interfaces. The <var>RegisterBitmap</var> method is used to
initiate actions affecting the cache storage.
</p>
</descr>
<errors>
</errors>
<seealso>
<link id="#lcl.buttons.TButtonGlyph">TButtonGlyph</link>
</seealso>
</element>
<!-- variable Visibility: private -->
<element name="TImageListCache.FItems">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- private -->
<element name="TImageListCache.FItems"/>
<element name="TImageListCache.FImages"/>
<element name="TImageListCache.FListeners"/>
<element name="TImageListCache.FObsoletedCount"/>
<!-- variable Visibility: private -->
<element name="TImageListCache.FImages">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- variable Visibility: private -->
<element name="TImageListCache.FListeners">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- variable Visibility: private -->
<element name="TImageListCache.FObsoletedCount">
<short/>
<descr>
</descr>
<seealso>
</seealso>
</element>
<!-- procedure Visibility: private -->
<element name="TImageListCache.CheckRebuildNeed">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<short>
Determines if the cache storage needs to be rebuilt when the change
threshold is exceeded
</short>
</element>
<!-- function Visibility: private -->
<element name="TImageListCache.GetImageListFor">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<short>
Gets a TCustomImageList instance with the specified image size
</short>
</element>
<!-- function result Visibility: default -->
<element name="TImageListCache.GetImageListFor.Result">
<short/>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.GetImageListFor.AWidth">
<short/>
<short>Width for the images in the image list</short>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.GetImageListFor.AHeight">
<short/>
<short>Height for the images in the image list</short>
</element>
<!-- procedure Visibility: private -->
<element name="TImageListCache.UnregisterBitmaps">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<short>
Marks an image list and its images as unused for the specified cache listener
</short>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.UnregisterBitmaps.AListener">
<short/>
<short>Cache listener removed in the method</short>
</element>
<!-- constructor Visibility: public -->
<element name="TImageListCache.Create">
<short/>
<short>Constructor for the class instance</short>
<descr>
<p>
Allocates resources needed for internal members in the class instance.
</p>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<seealso/>
</element>
<!-- destructor Visibility: public -->
<element name="TImageListCache.Destroy">
<short/>
<short>Destructor for the class instance</short>
<descr>
<p>
Frees resources allocated to internal members in the class instance,
including any stored images requested by cache listeners.
</p>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<seealso/>
</element>
<!-- function Visibility: public -->
<element name="TImageListCache.RegisterListener">
<short/>
<short>
Adds a listener for an image list stored in the cache
</short>
<descr>
<p>
<var>RegisterListener</var> is a method used to add the specified cache
listener in <var>AListener</var> to the internal list of listener
interfaces. If AListener does not already exist in the list, it is added.
</p>
<p>
RegisterListener is called from the <var>RegisterBitmap</var> method.
</p>
</descr>
<errors>
</errors>
<seealso>
<link id="IImageCacheListener"/>
<link id="#rtl.classes.TInterfaceList">TInterfaceList</link>
</seealso>
</element>
<!-- function result Visibility: default -->
<element name="TImageListCache.RegisterListener.Result">
<short/>
<short>
Position where the specified listener was stored in the internal list
</short>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.RegisterListener.AListener">
<short/>
<short>
Listener interface added to the internal list
</short>
</element>
<!-- procedure Visibility: public -->
<element name="TImageListCache.UnregisterListener">
<short/>
<short>
Removes the specified cache listener from the internal list
</short>
<descr>
<p>
<var>UnregisterListener</var> is a method used to remove the specified cache
listener from the internal list in the class instance. If <var>AListener</var>
exists in the interface list, the <var>UnregisterBitmaps</var> method is called
and the listener is removed from the list.
</p>
<p>
When the number of listeners in the list reaches <b>0</b>, the TImageListCache
singleton used for the image list cache is set to <b>Nil</b>.
</p>
</descr>
<errors>
</errors>
<seealso>
<link id="IImageCacheListener"/>
<link id="#rtl.classes.TInterfaceList">TInterfaceList</link>
</seealso>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.UnregisterListener.AListener">
<short/>
<short>Cache listener removed from the list</short>
</element>
<!-- procedure Visibility: public -->
<element name="TImageListCache.RegisterBitmap">
<short/>
<short>
Adds the specified bitmap to the image list for a cache listener
</short>
<descr>
<p>
<var>RegisterBitmap</var> is a method used to register use the image in
<var>ABitmap</var> for the cache listener specified in <var>AListener</var>.
RegisterBitmap ensures that the cache listener and an image list exist in the
cache. The <var>RegisterListener</var> method is called is the listener is not
found in the cache. If an image list does not already exist in the cache, a
new cache item is allocated.
</p>
<p>
<var>ABitmap</var> can contain a "sliced" image, which has multiple adjacent
images each using the height for the bitmap. The image list in the cache is
configured to use the number of images indicated in the <var>ABitmapCount</var>
argument. Each image has the same height and width.
</p>
<p>
The cache listener in AListener is notified if an action caused a change to
the index positions used in the image list.
</p>
</descr>
<errors>
</errors>
<seealso>
<link id="#lcl.buttons.TButtonGlyph.Glyph">TButtonGlyph.Glyph</link>
<link id="#lcl.buttons.TButtonGlyph.Refresh">TButtonGlyph.Refresh</link>
</seealso>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.RegisterBitmap.AListener">
<short/>
<short>Interface for the cache listener for the bitmap</short>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.RegisterBitmap.ABitmap">
<short/>
<short>Bitmap registered in the method</short>
</element>
<!-- argument Visibility: default -->
<element name="TImageListCache.RegisterBitmap.ABitmapCount">
<short/>
<short>Number of image "slices" in the bitmap</short>
</element>
<!-- procedure Visibility: public -->
<element name="TImageListCache.Rebuild">
<short/>
<short>Rebuilds the cache storage</short>
<descr>
<p>
Removes unused image lists in the cache where the cache listener is no
longer registered. Deletes any cached images no longer needed for a
given cached image list. Notifies listeners of changes to cached image
indexes.
</p>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<seealso/>
</element>
<!-- function Visibility: default -->
<element name="GetImageListCache">
<short/>
<descr>
</descr>
<errors>
</errors>
<seealso>
</seealso>
<short>
Provides access to the TImageListCache singleton in the implementation
</short>
<descr/>
<seealso/>
</element>
<!-- function result Visibility: default -->
<element name="GetImageListCache.Result">
<short/>
<short>TImageListCache instance for the implementation</short>
</element>
</module> <!-- ImageListCache -->
</module>
<!-- ImageListCache -->
</package>
</fpdoc-descriptions>

View File

@ -10,7 +10,7 @@
<short>Contains the version number constants of the LCL.</short>
<descr>
<p>
The LCLVersion unit contains the version number constants of the LCL.
<file>lclversion.pas</file> contains the version number constants of the LCL.
They can be used at runtime to determine the LCL version, so LCL application
writers and component writers can offer different functionality or workarounds
for bugs and take the LCL version into account while choosing their algorithms
@ -31,7 +31,7 @@ The lcl_fullversion constant contains all version numbers, formatted with 2
digits and concatenated (leading zeros are omitted).
</p>
<p>
For example, if the LCL version is 1.2.4.6, lcl_fullversion will be 1020406.
For example, if the LCL version is 2.0.12.6, lcl_fullversion will be 2001206.
</p>
</descr>
<seealso>lcl_version</seealso>
@ -41,8 +41,8 @@ digits and concatenated (leading zeros are omitted).
<short>LCL major version</short>
<descr>
<p>
Given a complete version string like 0.9.25, the lcl_major constant
contains the first number.
Given a complete version string like 2.0.12, the lcl_major constant
contains the first number (2).
</p>
</descr>
<seealso/>
@ -52,8 +52,8 @@ contains the first number.
<short>LCL minor version</short>
<descr>
<p>
Given a version string like 0.9.25, the lcl_minor constant
contains the second number.
Given a version string like 2.0.12, the lcl_minor constant
contains the second number (0).
</p>
</descr>
<seealso>lcl_version</seealso>
@ -63,8 +63,8 @@ contains the second number.
<short>LCL release number</short>
<descr>
<p>
Given a version string like 0.9.25, the lcl_release constant
contains the third number.
Given a version string like 2.0.12, the lcl_release constant
contains the third number (12).
</p>
</descr>
<seealso>lcl_version</seealso>
@ -74,9 +74,9 @@ contains the third number.
<short>LCL patch version</short>
<descr>
<p>
Given a complete version string like 0.9.24.1, the lcl_patch constant
contains the last number. If there is no fourth number, for example when the
version string is 0.9.25, then lcl_patch is 0.
Given a complete version string like 2.0.12.1, the lcl_patch constant
contains the last number (1). If there is no fourth number, for example when the
version string is 2.0.12, then lcl_patch is 0.
</p>
</descr>
<seealso>lcl_version</seealso>
@ -84,7 +84,7 @@ version string is 0.9.25, then lcl_patch is 0.
<element name="lcl_version">
<short>LCL version string</short>
<descr>Contains the LCL version string, e.g. 1.0.12.</descr>
<descr>Contains the LCL version string, e.g. 2.0.12.</descr>
<seealso/>
</element>

View File

@ -797,6 +797,18 @@
<short>Default size for new instances of the class</short>
</element>
<element name="TCustomGroupBox.UpdateOpaque">
<short>Updates the control style when the parent background is used</short>
<descr>
<p>
UpdateOpaque is a method used to update the control style flags when the parent background is used for the control. When the ParentBackground property is set to True, ControlStyle is updated to remove the csOpaque flag. If ParentBackground is not enabled, CornStyle is updated to include the csOpaque flag.
</p>
</descr>
<seealso>
<link id="TCustomGroupBox.ParentBackground"/>
</seealso>
</element>
<element name="TCustomGroupBox.CreateParams" link="#lcl.controls.TWinControl.CreateParams">
<short>Ensures that creation parameters are updated for the control</short>
<descr>
@ -814,6 +826,34 @@
<short>Creation parameters updated in the method</short>
</element>
<element name="TCustomGroupBox.SetParentBackground">
<short>Sets the value for the ParentBackground proprety</short>
<descr/>
<seealso>
<link id="TCustomGroupBox.SetParentBackground"/>
</seealso>
</element>
<element name="TCustomGroupBox.SetParentBackground.AParentBackground">
<short>New value for the property</short>
</element>
<element name="TCustomGroupBox.CMParentColorChanged">
<short>Handles the CM_PARENTCOLORCHANGED message for the control</short>
<descr>
<p>
Calls the inherited method on entry to update the value in the <var>Color</var> property. Calls <var>UpdateOpaque</var> to adjust the control style flags when the parent color is applied.
</p>
</descr>
<seealso>
<link id="TCustomGroupBox.ParentColor"/>
<link id="TCustomGroupBox.UpdateOpaque"/>
<link id="#lcl.controls.TControl.CMParentColorChanged">TControl.CMParentColorChanged</link>
</seealso>
</element>
<element name="TCustomGroupBox.CMParentColorChanged.Message">
<short>Control message handled in the method</short>
</element>
<element name="TCustomGroupBox.Create">
<short>Constructor for the class instance</short>
<descr>
@ -831,6 +871,22 @@
<short>Owner of the class instance</short>
</element>
<element name="TCustomGroupBox.ParentBackground">
<short>Indicates if the control uses the background from the parent</short>
<descr>
<p>
The write access specifier is overridden in TCustomGroupBox, and calls the <var>UpdateOpaque</var> method.
</p>
<p>
The default value for the property is <b>True</b>.
</p>
</descr>
<seealso>
<link id="TCustomGroupBox.UpdateOpaque"/>
<link id="#lcl.controls.TWinControl.ParentBackground">TWinControl.ParentBackground</link>
</seealso>
</element>
<element name="TGroupBox">
<short>
A container that allows a number of objects to be grouped physically and conceptually on a form
@ -867,6 +923,7 @@
<element name="TGroupBox.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element name="TGroupBox.Enabled" link="#lcl.controls.TControl.Enabled"/>
<element name="TGroupBox.Font" link="#lcl.controls.TControl.Font"/>
<element name="TGroupBox.ParentBackground" link="#lcl.stdctrls.TCustomGroupBox.ParentBackground"/>
<element name="TGroupBox.OnChangeBounds" link="#lcl.controls.TControl.OnChangeBounds"/>
<element name="TGroupBox.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TGroupBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>

View File

@ -10,7 +10,7 @@
<short>Contains forms, types, and routines used to display a pop-up for TTimeEdit</short>
<descr>
<p>
Contains the <var>TTimePopupForm</var> form and the <var>ShowTimePopup</var> routine used to create, configure, and display the pop-up form.
<file>timepopup.pas</file> contains the <var>TTimePopupForm</var> form and the <var>ShowTimePopup</var> routine used to create, configure, and display the pop-up form.
</p>
<p>
Author: Michael Fuchs