lazarus/docs/xml/lcl/graphics.xml

20477 lines
574 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">
<!--
====================================================================
Graphics
====================================================================
-->
<module name="Graphics">
<short>
Contains classes, types, and routines used in graphics applications.
</short>
<descr>
<p>
<file>graphics.pp</file> contains classes, types, and routines used to
represent graphic images in a Lazarus Component Library (<b>LCL</b>)
application. The following classes are added to the registered class list
used by the Run-time Library (<b>RTL</b>):
</p>
<ul>
<li>TBitmap</li>
<li>TPixmap</li>
<li>TPortableNetworkGraphic</li>
<li>TPortableAnyMapGraphic (when not explicitly disabled)</li>
<li>TJpegImage (when not explicitly disabled)</li>
<li>TGIFImage (when not explicitly disabled)</li>
<li>TPicture</li>
<li>TFont</li>
<li>TPen</li>
<li>TBrush</li>
<li>TRegion</li>
</ul>
<p>
<file>graphics.pp</file> is part of the Lazarus Component Library (<b>LCL</b>).
</p>
</descr>
<!-- unresolved external references -->
<element name="SysUtils"/>
<element name="Math"/>
<element name="Types"/>
<element name="Classes"/>
<element name="Contnrs"/>
<element name="Laz_AVL_Tree"/>
<element name="FPImage"/>
<element name="FPCanvas"/>
<element name="FPWriteBMP"/>
<element name="FPWritePNG"/>
<element name="PNGComn"/>
<element name="FPReadPNM"/>
<element name="FPWritePNM"/>
<element name="FPReadJpeg"/>
<element name="FPWriteJpeg"/>
<element name="FPReadTiff"/>
<element name="FPTiffCmn"/>
<element name="FPReadGif"/>
<element name="System.UITypes"/>
<element name="LCLVersion"/>
<element name="LCLStrConsts"/>
<element name="LCLType"/>
<element name="LCLProc"/>
<element name="LMessages"/>
<element name="LResources"/>
<element name="LCLResCache"/>
<element name="IntfGraphics"/>
<element name="IcnsTypes"/>
<element name="WSReferences"/>
<element name="GraphType"/>
<element name="GraphMath"/>
<element name="FPCAdds"/>
<element name="LazLoggerBase"/>
<element name="LazTracer"/>
<element name="LazUtilities"/>
<element name="PColor">
<short>Pointer to the TColor type.</short>
<descr>
<p>
The base type used for the definition is dependent on the FPC compiler
version used to build the LCL. Starting in FPC version 3.2.3, the base type
is the type defined in the System.UITypes namespace in the FPC run-time
library (RTL). For previous compiler versions, the base type is a pointer to
TColor.
</p>
<p>
This is done to prevent type conflicts when both System.UITypes and LCL units
are used.
</p>
</descr>
<seealso/>
</element>
<element name="TColor">
<short>Color type used by most LCL drawing functions.</short>
<descr>
<p>
<var>TColor</var> is an alias for the <var>TGraphicsColor</var> type in
<file>GraphType.pp</file> from the <file>LazUtils</file> package. TColor
allows hexadecimal values in the range <b>-$7FFFFFFF-1..$7FFFFFFF</b> and
represent the minimum and maximum values for the Long data type.
</p>
<p>
Bytes in the hexadecimal value are used as follows: <b>$OOBBGGRR</b>.
</p>
<dl>
<dt>OO</dt>
<dd>
Opacity values are not used for standard LCL colors. $1F is reserved for
clNone. $20 is reserved for clDefault.
</dd>
<dt>BB</dt>
<dd>Blue color level. $00 is none. $FF is full.</dd>
<dt>GG</dt>
<dd>Green color level. $00 is none. $FF is full.</dd>
<dt>RR</dt>
<dd>Red color level. $00 is none. $FF is full.</dd>
</dl>
<p>
There are predefined color constants like those in Delphi, such as:
<var>clBlack</var>, <var>clRed</var>, <var>clGreen</var>, and
<var>clBlue</var>. There are extended color constants, like:
<var>clMoneyGreen</var> and <var>clMedGray</var>. There are special color
constants like: <var>clDefault</var> and <var>clNone</var>.
</p>
<p>
Additionally, there are system color constants like: <var>clWindowText</var>
and <var>clForm</var>. These constants have a color and/or pattern depending
on the users theme, the LCL control, or the drawing tool (Pen, Brush, Font).
</p>
<p>
See <link id="ColorToRGB">ColorToRGB</link> and <link
id="RGBToColor">RGBToColor</link>.
</p>
</descr>
<seealso>
<link id="#lazutils.graphtype.TGraphicsColor">TGraphicsColor</link>
<link id="ColorToRGB"/>
<link id="RGBToColor"/>
<link id="clBlack"/>
<link id="clNone"/>
<link id="clDefault"/>
</seealso>
</element>
<!-- Modified in 43d7f203. -->
<element name="TFontPitch">
<short>
Represents pitches (or spacings) used in typefaces.
</short>
<descr>
<p>
Used to implement the Pitch member in TFontData and the Pitch property in
TFont.
</p>
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontPitch in System.UITypes for FPC
3.3.0 or higher.
</version>
<seealso>
<link id="TFontData"/>
<link id="TFont"/>
<!--
TODO: Uncomment when the topic exists in the RTL documentation.
<link id="#rtl.system.uitypes.TFontPitch">TFontPitch</link>
-->
</seealso>
</element>
<element name="TFontPitch.fpDefault">
<short>Font uses the default spacing defined for the typeface.</short>
</element>
<element name="TFontPitch.fpVariable">
<short>Font uses variable pitch (or proportional spacing).</short>
</element>
<element name="TFontPitch.fpFixed">
<short>Font uses fixed pitch (or mono-spacing).</short>
</element>
<element name="TFontName">
<short>
Alias to the String type used to represent font names.
</short>
<descr>
<p>
<var>TFontName</var> is an alias for the <var>String</var> type. Not used in
the current LCL implementation.
</p>
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontName in System.UITypes for FPC
3.3.0 or higher.
</version>
<seealso>
<link id="TFont.Name"/>
<link id="TFontData"/>
<!--
TODO: Uncomment when the topic exists in the RTL documentation.
<link id="#rtl.system.uitypes.TFontName">TFontName</link>
-->
</seealso>
</element>
<element name="TFontDataName">
<short>
Short String type used for typeface names.
</short>
<descr>
<p>
<var>TFontDataName</var> is a <var>Short String</var> type used to represent
typeface names, and is used to implement the <var>Name</var> member in
<var>TFontData</var>. TFontData is defined with a maximum length of
<b>LF_FACESIZE-1</b>.
</p>
<remark>
Be aware that the definition can result in truncation of typeface names
longer than 31 characters.
</remark>
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontDataName in System.UITypes for FPC
3.3.0 or higher.
</version>
<seealso>
<link id="TFontData"/>
<link id="#lcl.lcltype.LF_FACESIZE">LF_FACESIZE</link>
<!--
TODO: Uncomment when the topic exists in the RTL documentation.
<link id="#rtl.system.uitypes.TFontDataName">TFontDataName</link>
-->
</seealso>
</element>
<element name="TFontStyle">
<short>
Represents styles or variants for a font.
</short>
<descr>
<var>TFontStyle</var> is an enumerated type with values used to represent
styles or variants for a typeface. Value(s) from TFontStyle are stored in the
<var>TFontStyles</var> and <var>TFontStylesBase</var> set types, and used to
implement the <var>Style</var> member in <var>TFontData</var> and the Style
property in <var>TFont</var>.
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontStyle in System.UITypes for FPC
3.3.0 or higher.
</version>
<seealso>
<link id="TFont.Style"/>
<link id="TFontStyles"/>
<link id="TFontData"/>
<!--
TODO: Uncomment when the topic exists in RTL documentation.
<link id="#rtl.system.uitypes.TFontStyle">TFontStyle</link>
-->
</seealso>
</element>
<element name="TFontStyle.fsBold">
<short>Bold font style.</short>
</element>
<element name="TFontStyle.fsItalic">
<short>Italic font style.</short>
</element>
<element name="TFontStyle.fsUnderline">
<short>Underline font style.</short>
</element>
<element name="TFontStyle.fsStrikeOut">
<short>Strike-out (or strike-through) font style.</short>
</element>
<element name="TFontStyles">
<short>
Set type used to store TFontStyle value(s).
</short>
<descr>
<p>
<var>TFontStyles</var> is a set type used to store <b>0</b> (<b>zero</b>) or
more values from the <var>TFontStyle</var> enumeration.
</p>
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontStyles in System.UITypes for FPC
3.3.0 or higher.
</version>
<seealso>
<link id="TFontStylesBase"/>
<link id="TFont.Style"/>
<link id="TFontData"/>
<!--
TODO: Uncomment when the topic exists in RTL documentation.
<link id="#rtl.system.uitypes.TFontStyles">TFontStyles</link>
-->
</seealso>
</element>
<element name="TFontStylesBase">
<short>Set type used to store TFontStyle value(s).</short>
<descr>
<p>
<var>TFontStylesBase</var> is a set type used to store <b>0</b> (<b>zero</b>)
or more values from the <var>TFontStyle</var> enumeration. It is used to
implement the <var>Style</var> member in <var>TFontData</var> and
<var>TFont</var>.
</p>
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontStylesBase in System.UITypes for
FPC 3.3.0 or higher.
</version>
<seealso>
<link id="TFontStyles"/>
<link id="TFontData"/>
<link id="TFont.Style"/>
<!--
TODO: Uncomment when the topic exists in RTL documentation.
<link id="#rtl.system.uitypes.TFontStylesBase">TFontStylesBase</link>
-->
</seealso>
</element>
<element name="TFontCharSet">
<short>
Represents a font character set as a numeric value.
</short>
<descr>
<p>
<var>TFontCharSet</var> is a range type with values representing font
character sets. TFontCharSet is limited to integer values in the range
<b>0..255</b>, and correspond to the character set identifiers as used in the
Win32 GDI LogFont structure. For other platforms, or widgetsets, the values
used refer to constants defined in the widgetset interface.
</p>
<p>
<var>TFontCharSet</var> is the type used to implement the <var>CharSet</var>
member in <var>TFontData</var> and <var>TFont</var>.
</p>
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontCharSet in System.UITypes for
FPC 3.3.0 or higher.
</version>
<seealso>
<link id="TFont.CharSet"/>
<link id="TFontData"/>
<!--
TODO: Uncomment when the topic exists in RTL documentation.
<link id="#rtl.system.uitypes.TFontCharSet">TFontCharSet</link>
-->
</seealso>
</element>
<element name="TFontQuality">
<short>Font output quality, like anti-aliasing.</short>
<descr>
<p>
<var>TFontQuality</var> is an enumerated type with values that represent the
output quality for fonts. Values in the enumeration control how carefully
font attributes are applied to output using a font.
</p>
<remark>
There are situations where an enumeration value may not produce the desired
result. ClearType and ClearTypeNatural anti-aliasing algorithms are oriented
to display usage. They cannot be applied to printed output in general. They
are ignored for fonts that are not TrueType or OpenType fonts with TrueType
outlines. Postscript Type 1 fonts, and Postscript OpenType fonts without
TrueType outlines, do not use ClearType anti-aliasing. Bitmap, vector, and
device fonts cannot use ClearType anti-aliasing. Fonts which contain embedded
bitmaps, like most East Asian fonts, do not use ClearType anti-aliasing.
</remark>
<p>
<var>TFontQuality</var> is the type used to implement the <var>Quality</var>
member in <var>TFontData</var> and <var>TFont</var>.
</p>
</descr>
<version>
Modified in LCL 3.0 to be an alias to TFontQuality in System.UITypes for FPC
3.3.0 or higher.
</version>
<seealso>
<link id="TFont.Quality"/>
<link id="TFontData"/>
<!--
TODO: Uncomment when the topic exists in RTL documentation.
<link id="#rtl.system.uitypes.TFontQuality">TFontQuality</link>
-->
</seealso>
</element>
<element name="TFontQuality.fqDefault">
<short>Default font quality; used when appearance is not important.</short>
</element>
<element name="TFontQuality.fqDraft">
<short>
Prefer other font features (size, style) against output quality. Appearance of
the font is less important than when fqProof is used. Generally offers lower
quality than fqProof or fqDefault.
</short>
</element>
<element name="TFontQuality.fqProof">
<short>
Prefer output quality against other font features (size, style). Font quality
is more important exactly reproducing the size or style for the font.
</short>
</element>
<element name="TFontQuality.fqNonAntialiased">
<short>Disable font anti-aliasing.</short>
</element>
<element name="TFontQuality.fqAntialiased">
<short>
Use font anti-aliasing. The font is always anti-aliased when supported, and
the font size is not too small or too large.
</short>
</element>
<element name="TFontQuality.fqCleartype">
<short>Use ClearType font anti-aliasing when available.</short>
</element>
<element name="TFontQuality.fqCleartypeNatural">
<short>Use Clear Type Natural font anti-aliasing when available.</short>
</element>
<element name="TFontData">
<short>
Contains information about a font used in an application.
</short>
<descr>
<p>
<var>TFontData</var> is a record type used to hold information about a font
in an application. It provides access to the system handle for the font, as
well as attributes for the font. Values in the record are read from the font
file when its handle is assigned, or when the default font from the widgetset
interface is assigned.
</p>
<p>
TFontData is the type used to implement the <var>FontData</var> property in
<var>TFont</var>.
</p>
</descr>
<seealso>
<link id="TFont.FontData"/>
<link id="DefFontData"/>
</seealso>
</element>
<element name="TFontData.Handle">
<short>The Operating System <var>Handle</var> for the <var>Font</var>.
</short>
</element>
<element name="TFontData.Height">
<short>The <var>Height</var> (in pixels) for the <var>Font</var>.
</short>
</element>
<element name="TFontData.Pitch">
<short>The <var>Pitch</var> (layout style) for the <var>Font</var>.</short>
</element>
<element name="TFontData.Style">
<short>
The <var>Style</var> (or variant) for the <var>Font</var>.
</short>
<descr>
<p>
<var>Style</var> is a <var>TFontStylesBase</var> member which contains the
style or variant for the typeface in a font. See <var>TFontStyle</var> for
more information about the enumeration values and their meanings.
</p>
</descr>
<seealso>
<link id="TFontStyle"/>
<link id="TFontStylesBase"/>
</seealso>
</element>
<element name="TFontData.CharSet">
<short>
The character set for a Font as an Integer value.
</short>
<descr>
<p>
<var>CharSet</var> is a <var>TFontCharSet</var> member which stores an Integer
identifier for a font character set. Its value identifies the character set or
encoding supported in the font.
</p>
<p>
The actual value is specific to the Operating System and/or widgetset for the
application. For the Windows platform, it corresponds to the value in TLogFont
as retrieved from the <var>Win32 GDI LogFont</var> routine. Other platforms
and widgetsets rely on the mechanism native to the interface like: X-Fonts,
device contexts, or whatever API mechanism the MacOS developers currently have
in place. The native values are translated to to the value represented in the
member as an Integer.
</p>
</descr>
<seealso>
<link id="TFontCharSet"/>
</seealso>
</element>
<element name="TFontData.Quality">
<short>Output quality for the font.</short>
<descr>
<p>
<var>Quality</var> is a <var>TFontQuality</var> member which contains an
enumeration value which indicates the output quality for the font. The output
quality determines how carefully font attributes are applied to output using
the font.
</p>
<p>
See <var>TFontQuality</var> for more information about the enumeration values
and their meanings.
</p>
</descr>
<seealso>
<link id="TFontQuality"/>
</seealso>
</element>
<element name="TFontData.Name">
<short>
The <var>Name</var> (as a string) of the current <var>Font</var>.
</short>
</element>
<!-- Added in 43d7f203. -->
<element name="fpDefault">
<short>
Represents the fpDefault enumeration value in TFontPitch.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fpVariable">
<short>
Represents the fpVariable enumeration value in TFontPitch.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fpFixed">
<short>
Represents the fpFixed enumeration value in TFontPitch.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fsBold">
<short>
Represents the fsBold enumeration value in TFontStyle.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fsItalic">
<short>
Represents the fsItalic enumeration value in TFontStyle.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fsUnderline">
<short>
Represents the fsUnderline enumeration value in TFontStyle.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fsStrikeOut">
<short>
Represents the fsStrikeout enumeration value in TFontStyle.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fqDefault">
<short>
Represents the fqDefault enumeration value in TFontQuality.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fqDraft">
<short>
Represents the fqDraft enumeration value in TFontQuality.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fqProof">
<short>
Represents the fqProof enumeration value in TFontQuality.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fqNonAntialiased">
<short>
Represents the fqNonAntialiased enumeration value in TFontQuality.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fqAntialiased">
<short>
Represents the fqAntialiased enumeration value in TFontQuality.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fqCleartype">
<short>
Represents the fqCleartype enumeration value in TFontQuality.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="fqCleartypeNatural">
<short>
Represents the fqCleartypeNatural enumeration value in TFontQuality.
</short>
<descr/>
<version>
Added in LCL 3.0 as an alias to the corresponding constant in System.UITypes
for FPC 3.3.0 or higher.
</version>
<seealso/>
</element>
<element name="DefFontData">
<short>Default font data used for new TFont instances.</short>
<descr>
<p>New <var>TFont</var> instances are initialized with the values in this
structure.
</p>
<p>The default font is chosen by the interfaces depending on the context. For
example, there can be a different default font for a button and a group box.
</p>
</descr>
<seealso>
<link id="TFontData"/>
</seealso>
</element>
<element name="TTextLayout">
<short>
Represents the text layout used to render text in its rectangle.
</short>
<descr>
<p>
<var>TTextLayout</var> is an enumerated type with values that indicate the
layout used for text in its rectangle. TTextLayout is the type used to
implement the <var>Layout</var> member in <var>TTextStyle</var>.
</p>
</descr>
<seealso>
<link id="TTextStyle"/>
</seealso>
</element>
<element name="TTextLayout.tlTop">
<short>Text is aligned to the top of the text rectangle.</short>
</element>
<element name="TTextLayout.tlCenter">
<short>Text is aligned to the center of the text rectangle.</short>
</element>
<element name="TTextLayout.tlBottom">
<short>Text is aligned to the bottom of the text rectangle.</short>
</element>
<element name="TTextStyle">
<short>
The <var>Style</var> of the <var>Text</var> to be drawn in a rectangle.
</short>
<descr>TTextStyle is a packed record type which contains setting used when a
control draws text using TextOut or TextRect. It is used to save, restore and
configure values needed for the canvas which renders a control.
</descr>
</element>
<element name="TTextStyle.Alignment">
<short>Horizontal alignment in the text rectangle.</short>
<descr/>
<seealso/>
</element>
<element name="TTextStyle.Layout">
<short>Vertical alignment in the text rectangle.</short>
<descr/>
<seealso/>
</element>
<element name="TTextStyle.SingleLine">
<short>Indicates if the text is rendered as a single line.</short>
<descr>
<p>When set to <b>True</b> and <var>WordBreak</var> is <b>False</b>,
<b>CR</b> (<b>#13</b>) and <b>LF</b> (<b>#10</b>) are handled as standard
characters and do not result in line breaks.
</p>
</descr>
<seealso>
<link id="TTextStyle.WordBreak"/>
</seealso>
</element>
<element name="TTextStyle.Clipping">
<short>Causes text to be clipped to the text rectangle.</short>
<descr/>
<seealso/>
</element>
<element name="TTextStyle.ExpandTabs">
<short>Causes Tab characters to be replaced with spaces.</short>
<descr>
<p>When set to <b>True</b>, occurrences of <b>Tab</b> (<b>#9</b>) characters
are replaced with the appropriate number of space characters. The default
value is <b>8</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TTextStyle.ShowPrefix">
<short>
Draws a single Ampersand characters as an accelerator key decoration.
</short>
<descr>
<p>
When set to <b>True</b>, the first <b>Ampersand</b> (<b>&amp;</b>)
character on a line is drawn as the decoration used for an accelerator key.
The character after the Ampersand contains the key for the accelerator. When
<b>True</b>, double Ampersand (<b>&amp;&amp;</b>) characters are required to
draw an Ampersand character in the text.
</p>
</descr>
<seealso/>
</element>
<element name="TTextStyle.Wordbreak">
<short>Causes a long line of text to be word-wrapped.</short>
<descr>
<p>
When set to <b>True</b>, a line of text that is larger than the available
width in the rectangle is word-wrapped into multiple lines at word boundaries.
</p>
</descr>
<seealso/>
</element>
<element name="TTextStyle.Opaque">
<short>Causes the output to be drawn with full opacity.</short>
<descr/>
<seealso/>
</element>
<element name="TTextStyle.SystemFont">
<short>Causes the system font to be used instead of the canvas font.</short>
<descr/>
<seealso/>
</element>
<element name="TTextStyle.RightToLeft">
<short>For RightToLeft text reading (text direction).</short>
<descr/>
<seealso/>
</element>
<element name="TTextStyle.EndEllipsis">
<short>
Indicates if text is "ellipsified" when too long for its rectangle.
</short>
<descr>
<p>
If a line of text is too long to fit between left and right boundaries for
the text rectangle, the text is shortened and an <b>Ellipsis</b> (<b>...</b>)
is added to the end of the text value. Preference is given to
<var>WordBreak</var> when set.
</p>
</descr>
<seealso/>
</element>
<element name="psSolid">
<short>Represents the solid pen style.</short>
<descr>
<p>Alias for the FPCanvas.psSolid enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="psDash">
<short>Represents the dashed pen style.</short>
<descr>
<p>Alias for the FPCanvas.psDash enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="psDot">
<short>Represents the dotted pen style.</short>
<descr>
<p>Alias for the FPCanvas.psDot enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="psDashDot">
<short>Represents the dash-dot pattern pen style.</short>
<descr>
<p>Alias for the FPCanvas.psDashDot enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="psDashDotDot">
<short>Represents the dash-dot-dot pattern pen style.</short>
<descr>
<p>Alias for the FPCanvas.psDashDotDot enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="psClear">
<short>Represents the clear pen style.</short>
<descr>
<p>Alias for the FPCanvas.psClear enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="psInsideframe">
<short>Represents the pen style used for an inside frame.</short>
<descr>
<p>Alias for the FPCanvas.psInsideframe enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="psPattern">
<short>Represents a pattern pen style.</short>
<descr>
<p>Alias for the FPCanvas.psPattern enumeration value in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="pmBlack">
<short>Represents the Black pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmBlack enumeration value in the FCL.
Pixels affected by the pen are always set to black.
</p>
</descr>
</element>
<element name="pmWhite">
<short>Represents the White pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmWhite enumeration value in the FCL.
Pixels affected by the pen are always set to white.
</p>
</descr>
</element>
<element name="pmNop">
<short>Represents the No OP pen mode.</short>
<descr>
<p>
Alias for the FPCanvas.pmNop enumeration value in the FCL.
Pixels affected by the pen are unchanged.
</p>
</descr>
</element>
<element name="pmNot">
<short>Represents the NOT pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmNot enumeration value in the FCL.
Pixels affected by the pen are set to the inverse for the current color.
</p>
</descr>
</element>
<element name="pmCopy">
<short>Represents the Copy pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmCopy enumeration value in the FCL.
Pixels affected by the pen are set to the pen color.
</p>
</descr>
</element>
<element name="pmNotCopy">
<short>Represents the Not Copy pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmNotCopy enumeration value in the FCL.
Pixels affected by the pen are set to the inverse of the pen color.
</p>
</descr>
</element>
<element name="pmMergePenNot">
<short>Represents the Merge Pen Not pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmMerge enumeration value in the FCL.
Pixels affected by the pen are set to a combination of the pen color and the
inverse of the pixel color.
</p>
</descr>
</element>
<element name="pmMaskPenNot">
<short>Represents the Mask Pen Not pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmMaskPenNot enumeration value in the FCL.
Pixels affected by the pen are set to colors common to both the pen and the
inverse of the pixel color.
</p>
</descr>
</element>
<element name="pmMergeNotPen">
<short>Represents the Merge Not Pen pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmMergePenNot enumeration value in the FCL.
Pixels affected by the pen are set to a combination of the pen color and the
inverse of the pixel color.
</p>
</descr>
</element>
<element name="pmMaskNotPen">
<short>Represents the Mask Not Pen pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmMaskNotPen enumeration value in the FCL.
Pixels affected by the pen are set to a combination of the colors common to
the inverse of the pen color and the current pixel color.
</p>
</descr>
</element>
<element name="pmMerge">
<short>Represents the Merge pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmMerge enumeration value in the FCL.
Pixels affected by the pen are set to a combination of the pen color and the
current pixel color.
</p>
</descr>
</element>
<element name="pmNotMerge">
<short>Represents the Not Merge pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmNotMerge enumeration value in the FCL.
Pixels affected by the pen are set to the inverse of the color derived using
pmMerge pen mode.
</p>
</descr>
</element>
<element name="pmMask">
<short>Represents the Mask pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmMask enumeration value in the FCL.
Pixels affected by the pen are set a combination of the colors common to the
pen color and the current pixel color.
</p>
</descr>
</element>
<element name="pmNotMask">
<short>Represents the Not Mask pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmNotMask enumeration value in the FCL.
Pixels affected by the pen are set to the inverse of the color for pmMask pen
mode.
</p>
</descr>
</element>
<element name="pmXor">
<short>Represents the XOR pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmXor enumeration value in the FCL.
Pixels affected by the pen are set to a combination of the pen color and the
current pixel color, but not both.
</p>
</descr>
</element>
<element name="pmNotXor">
<short>Represents the Not XOR pen mode.</short>
<descr>
<p>Alias for the FPCanvas.pmNotXor enumeration value in the FCL.
Pixels affected by the pen are set to the inverse of the color using pmXor
pen mode.
</p>
</descr>
</element>
<element name="bsSolid">
<short>Represents the Solid brush style.</short>
<descr>
<p>Alias for the TFPBrushStyle.bsSolid enumeration value in the FCL.
Fills a shape using the color for the brush.
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsClear">
<short>Represents the Clear brush style.</short>
<descr>
<p>Alias for the TFPBrushStyle.bsClear enumeration value in the FCL.
Fills a shape with transparency (using the existing color as the fill color).
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsHorizontal">
<short>Represents the Horizontal brush style.</short>
<descr>
<p>Alias for the TFPBrushStyle.bsHorizontal enumeration value in the FCL.
Fills a shape with a pattern consisting of equidistant horizontal lines.
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsVertical">
<short>Represents the Vertical brush style.</short>
<descr>
<p>Alias for the TFPBrushStyle.bsVertical enumeration value in the FCL.
Fills a shape with a pattern consisting of equidistant vertical lines.
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsFDiagonal">
<short>Represents the FDiagonal brush style.</short>
<descr>
<p>Alias for the TFPBrushStyle.bsFDiagonal enumeration value in the FCL.
Fills a shape with a pattern consisting of equidistant lines drawn with a
45-degree downward, left-to-right hatch.
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsBDiagonal">
<short>Represents the BDiagonal brush style.</short>
<descr>
<p>Alias for the TFPBrushStyle.bsBDiagonal enumeration value in the FCL.
Fills a shape with a pattern consisting of equidistant lines drawn with a
45-degree upward, left-to-right hatch.
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsCross">
<short>Represents the Cross brush style.</short>
<descr>
<p>Alias for the TFPBrushStyle.bsCross enumeration value in the FCL.
Fills a shape with a pattern consisting of equidistant lines drawn as a
horizontal and vertical cross-hatch.
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsDiagCross">
<short>Represents the DiagCross brush style.</short>
<descr>
<p>
Alias for the TFPBrushStyle.bsDiagCross enumeration value in the FCL. Fills a
shape with a pattern consisting of equidistant lines drawn as a 45 degree
cross-hatch.
</p>
</descr>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsImage">
<short>
Represents the user-specified Image (bitmap) brush style.
</short>
<descr>
<p>
Alias for the TFPBrushStyle.bsImage enumeration value in the FCL. Fills a
shape with a user-specified image (bitmap).
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="bsPattern">
<short>
Represents the user-specified Pattern (bitmap) brush style.
</short>
<descr>
<p>
Alias for the TFPBrushStyle.bsPattern enumeration value in the FCL. Fills a
shape with a user-specified pattern (bitmap).
</p>
</descr>
<version>
Added in LCL version 3.0.
</version>
<seealso>
<link id="TBrushStyle"/>
</seealso>
</element>
<element name="pecRound">
<short>Represents the Round pen end cap.</short>
<descr/>
<version>Added in LCL version 1.2.0.</version>
</element>
<element name="pecSquare">
<short>Represents the Square pen end cap.</short>
<descr/>
<version>Added in LCL version 1.2.0.</version>
</element>
<element name="pecFlat">
<short>Represents the Flat pen end cap.</short>
<descr/>
<version>Added in LCL version 1.2.0.</version>
</element>
<element name="pjsRound">
<short>Represents the Round pen join style.</short>
<descr/>
<version>Added in LCL version 1.2.0.</version>
</element>
<element name="pjsBevel">
<short>Represents the Bevel pen join style.</short>
<descr/>
<version>Added in LCL version 1.2.0.</version>
</element>
<element name="pjsMiter">
<short>Represents the Miter pen join style.</short>
<descr/>
<version>Added in LCL version 1.2.0.</version>
</element>
<element name="TFillStyle">
<short>Alias for the TGraphicsFillStyle enumeration type in LazUtils.</short>
<descr>
<p>Alias for the TGraphicsFillStyle enumeration type in LazUtils.</p>
</descr>
<seealso>
<link id="#lazutils.graphtype.TGraphicsFillStyle">TGraphicsFillStyle</link>
</seealso>
</element>
<element name="TFillMode">
<short>Represents Fill Mode values.</short>
<descr>
<p>
Not used in the current LCL implementation. Replaced with the
<var>LazRegionFillMode</var> type in <file>lazregions.pas</file>.
</p>
</descr>
<seealso/>
</element>
<element name="TFillMode.fmAlternate">
<short/>
</element>
<element name="TFillMode.fmWinding">
<short/>
</element>
<element name="TCopyMode">
<short>Type used to represent canvas copy modes.</short>
<descr>
<p>
<var>TCopyMode</var> is an alias for the <var>LongInt</var> type. TCopyMode is
the type used to implement the <var>CopyMode</var> property in
<var>TCanvas</var>. Normally contains a value defined in the copy mode
constants:
</p>
<dl>
<dt>cmBlackness</dt>
<dd>
Fills the destination rectangle with the first color in the physical palette.
(Black for the default palette).
</dd>
<dt>cmDstInvert</dt>
<dd>
Inverts colors in the destination rectangle.
</dd>
<dt>cmMergeCopy</dt>
<dd>
Merges colors from the source rectangle with the brush color.
</dd>
<dt>cmMergePaint</dt>
<dd>
Merges inverted colors from the source rectangle with the colors in the
destination rectangle using an OR operation.
</dd>
<dt>cmNotSrcCopy</dt>
<dd>
Copies inverted colors from the source rectangle to the destination rectangle.
</dd>
<dt>cmNotSrcErase</dt>
<dd>
Combines the colors from the source and destination rectangles using an OR
operation, and inverts the result.
</dd>
<dt>cmPatCopy</dt>
<dd>
Copies the brush into the destination rectangle.
</dd>
<dt>cmPatInvert</dt>
<dd>
Combines the brush colors with the colors in the destination rectangle using
an XOR operation.
</dd>
<dt>cmPatPaint</dt>
<dd>
Combines the brush colors with the inverted colors from the source rectangle
using an OR operation, and combines the result with the colors in the
destination rectangle using an OR operation.
</dd>
<dt>cmSrcAnd</dt>
<dd>
Combines colors from the source and destination rectangles using an AND
operation.
</dd>
<dt>cmSrcCopy</dt>
<dd>
Copies the source rectangle to the destination rectangle.
</dd>
<dt>cmSrcErase</dt>
<dd>
Combines the inverted colors in the destination rectangle with the colors
from the source rectangle using an AND operation.
</dd>
<dt>cmSrcInvert</dt>
<dd>
Combines the colors in the source and destination rectangles using an XOR
operation.
</dd>
<dt>cmSrcPaint</dt>
<dd>
Combines the colors in the source and destination rectangles using an OR
operation.
</dd>
<dt>cmWhiteness</dt>
<dd>
Fills the destination rectangle using the second color in the physical
palette. (White for the default palette).
</dd>
</dl>
<p>
The default value for the propriety is <var>cmSrcCopy</var>.
</p>
<p>
Copy mode constants are omitted for the <b>CAPTUREBLT</b> and
<b>NOMIRRORBITMAP</b> values used in the Windows GDI API.
</p>
</descr>
<seealso>
<link id="TCanvas.CopyMode"/>
</seealso>
</element>
<element name="TCanvasStates">
<short>Represents states values for TCanvas.</short>
<descr>
<p>
<var>TCanvasStates</var> is an enumerated type with values that represent the
state for a <var>TCanvas</var> instance. Value(s) from the enumeration are
stored in the <var>TCanvasState</var> set type used to implement the
<var>State</var> property in <var>TCanvas</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvasStates.csHandleValid">
<short>The handle for the canvas is valid.</short>
</element>
<element name="TCanvasStates.csFontValid">
<short>
Font properties correspond to the selected Font Handle in the Device
Context (DC).
</short>
</element>
<element name="TCanvasStates.csPenvalid">
<short/>
</element>
<element name="TCanvasStates.csBrushValid">
<short/>
</element>
<element name="TCanvasStates.csRegionValid">
<short/>
</element>
<element name="TCanvasState">
<short>Set type used to store TCanvasStates values.</short>
<descr/>
<seealso/>
</element>
<element name="TCanvasOrientation">
<short>Represents orientations for a canvas.</short>
<descr>Not used in the current LCL implementation.
</descr>
<seealso/>
</element>
<element name="TCanvasOrientation.csLefttoRight">
<short/>
<notes>
<note>Needs to be changed to coLeftToRight.</note>
</notes>
</element>
<element name="TCanvasOrientation.coRighttoLeft">
<short/>
</element>
<element name="TProgressStage">
<short>
Alias for the TFPImgProgressStage type in the FCL.
</short>
<descr/>
<seealso/>
</element>
<element name="TProgressEvent">
<short>
Specifies an event handler for monitoring the progress of a drawing process.
</short>
<descr>
<p>
<var>TProgressEvent</var> is a alias for the TFPImgProgressEvent type in the
FCL. It specifies an event handler used to perform progress notifications for
computationally intensive (slow) operations such as loading, storing, or
transforming graphic image data.
</p>
<p>
The object procedure type (defined in fpimage.pp) includes the following
parameters:
</p>
<dl>
<dt>Sender</dt>
<dd>
Object instance for the notification.
</dd>
<dt>Stage</dt>
<dd>
Indicates whether the notification is to prepare for, process, or clean up
after a graphic operation. The first call for a graphic operation will be with
<var>Stage = psStarting</var>, to allow the event handler to allocate whatever
resources it needs to process subsequent progress notifications. After
<var>Stage = psStarting</var>, you are guaranteed that <var>OnProgress</var>
will be called again with <var>Stage = psEnding</var> to allow you to free
those resources, even if the graphic operation is aborted by an exception.
Zero or more calls to <var>OnProgress</var> with <var>Stage = psRunning</var>
may occur between the <var>psStarting</var> and <var>psEnding</var> calls.
</dd>
<dt>PercentDone</dt>
<dd>
The ratio of work done to work remaining, on a scale of 0 to 100. Values may
repeat or even regress (get smaller) in successive calls.
<var>PercentDone</var> is usually a guess, and the guess may be dramatically
altered as new information is discovered in decoding the image. The value of
this property could usefully be passed to a ProgressBar to show the user the
progress for the operation. Please note that the Byte type used for the
argument allows a value which can exceed 100.
</dd>
<dt>RedrawNow</dt>
<dd>
Indicates whether the graphic can or should be redrawn immediately. Useful
for showing successive approximations of an image as data is available
instead of waiting for all the data to arrive before drawing anything. Since
there is no message loop activity during graphic operations, you should call
<var>Update</var> to force a control to be redrawn immediately in the
<var>OnProgress</var> event handler. Redrawing a graphic when
<var>RedrawNow = <b>False</b></var> could corrupt the image or cause
exceptions.
</dd>
<dt>R</dt>
<dd>
TRect instance with the area on an image that has been changed and needs to be
redrawn.
</dd>
<dt>Msg</dt>
<dd>
Optional text describing in one or two words what the graphic class is
currently working on. For example: "Loading", "Storing", "Reducing colors",
etc. The <var>Msg</var> string can also be empty. <var>Msg</var> strings
should be resourced for translation, should not contain trailing periods, and
should be used only for display purposes. (Do not use the construct: if Msg =
'Loading' then...).
</dd>
<dt>Continue</dt>
<dd>
Variable Boolean argument which indicates if the current operation can be
continued. Set Continue to <b>False</b> to notifiy the calling procedure that
the operation should be aborted.
</dd>
</dl>
<p>
TProgressEvent is the type used to implement the OnProgress property in
TGraphic and TPicture.
</p>
</descr>
<seealso>
<link id="TGraphic.OnProgress"/>
<link id="TPicture.OnProgress"/>
<link id="TProgressStage"/>
</seealso>
</element>
<element name="TPixelFormat">
<short>Represents storage formats for pixels in image data.</short>
<descr>
<p>
<var>TPixelFormat</var> is an enumerated type with values that represent the
storage format for pixels in image data. In general, it indicates the number
of bits required for each pixel in an image. It also determines the color
spectrum and color depth available in image data.
</p>
<p>
TPixelFormat is the type used to implement the <var>PixelFormat</var>
property in TRasterImage, TSharedCustomBitmap, TCustomBitmap, TSharedIcon,
TIconImage, TCustomIcon, et. al.
</p>
</descr>
<seealso/>
</element>
<element name="TPixelFormat.pfDevice">
<short>Indicates that the source device determines the pixel format.</short>
</element>
<element name="TPixelFormat.pf1bit">
<short>1 bit per pixel. Monochrome.</short>
</element>
<element name="TPixelFormat.pf4bit">
<short>4 bits per pixel. 16 colors.</short>
</element>
<element name="TPixelFormat.pf8bit">
<short>8 bits per pixel. 256 colors.</short>
</element>
<element name="TPixelFormat.pf15bit">
<short>15 bits per pixel. 32,768 colors. Also called High Color.</short>
</element>
<element name="TPixelFormat.pf16bit">
<short>
16 bits per pixel. 65,536 colors. Also referred to as High Color.
</short>
</element>
<element name="TPixelFormat.pf24bit">
<short>24 bits per pixel. 16,777,216 colors. Also called TrueColor.</short>
</element>
<element name="TPixelFormat.pf32bit">
<short>
32 bits per pixel. 4,294,967,296 colors. Not a common pixel format.
</short>
</element>
<element name="TPixelFormat.pfCustom">
<short>Uses a pixel format other than the defined values.</short>
</element>
<element name="PIXELFORMAT_BPP">
<short>
Constant with the number of bits per pixel for TPixelFormat enumeration
values.
</short>
<descr>
<p>
<var>PIXELFORMAT_BPP</var> is a constant which contains an array of
<var>Byte</var> values representing the number of bits used for pixel data in
an image. Elements in the array are indexed values in the
<var>TPixelFormat</var> enumeration, and contain the number of bits per pixel
for the associated pixel format.
</p>
</descr>
<seealso>
<link id="TPixelFormat"/>
</seealso>
</element>
<element name="TTransparentMode">
<short>Represents transparency modes used in raster images.</short>
<descr/>
<seealso>
<link id="TRasterImage.TransparentMode"/>
<link id="TRasterImage.TransparentColor"/>
</seealso>
</element>
<element name="TTransparentMode.tmAuto">
<short>
Transparency is determined by examining a designated pixel in the image data.
</short>
</element>
<element name="TTransparentMode.tmFixed">
<short>Uses a designated color as the transparent color.</short>
</element>
<element name="clBlack">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clMaroon">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clGreen">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clOlive">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clNavy">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clPurple">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clTeal">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clGray">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clSilver">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clRed">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clLime">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clYellow">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clBlue">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clFuchsia">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clAqua">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="clLtGray">
<short>One of the standard colors. Delphi compatible.</short>
<descr>An alias for clSilver.</descr>
</element>
<element name="clDkGray">
<short>One of the standard colors. Delphi compatible.</short>
<descr>An alias for clGray.</descr>
</element>
<element name="clWhite">
<short>One of the standard colors. Delphi compatible.</short>
</element>
<element name="StandardColorsCount">
<short>Number of defined standard color constants.</short>
</element>
<element name="clMoneyGreen">
<short>One of the extended colors.</short>
</element>
<element name="clSkyBlue">
<short>One of the extended colors.</short>
</element>
<element name="clCream">
<short>One of the extended colors.</short>
</element>
<element name="clMedGray">
<short>One of the extended colors.</short>
</element>
<element name="ExtendedColorCount">
<short>The number of defined extended color constants.</short>
<descr/>
<seealso/>
</element>
<element name="clNone">
<short>One of the special colors.</short>
<descr/>
</element>
<element name="clDefault">
<short>The default color of a given control.
</short>
<descr>
<p>The default color for a given control. This color alone does not have any
meaning; it needs to be resolved using a control instance and one of the
methods like: TControl.GetDefaultColor, TControl.GetColorResolvingParent or
TControl.GetRGBColorResolvingParent.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.GetDefaultColor">TControl.GetDefaultColor</link>
<link id="#lcl.controls.TControl.GetColorResolvingParent">TControl.GetColorResolvingParent</link>
<link id="#lcl.controls.TControl.GetRGBColorResolvingParent">TControl.GetRGBColorResolvingParent</link>
</seealso>
</element>
<element name="clScrollBar">
<short>One of the System colors.</short>
</element>
<element name="clBackground">
<short>One of the System colors.</short>
</element>
<element name="clActiveCaption">
<short>One of the System colors.</short>
</element>
<element name="clInactiveCaption">
<short>One of the System colors.</short>
</element>
<element name="clMenu">
<short>One of the System colors.</short>
</element>
<element name="clWindow">
<short>Background color for an edit control.</short>
<descr>
<p>
The color of the background for a widget, for example a TEdit. This is usually
white. Don't confuse this with the background of a window, or form, which is
given by clForm.
</p>
</descr>
<seealso>
<link id="clForm"/>
<link id="clWindowText"/>
</seealso>
</element>
<element name="clWindowFrame">
<short>One of the System colors.</short>
</element>
<element name="clMenuText">
<short>The color of the text in menus.</short>
<descr/>
</element>
<element name="clWindowText">
<short>The color for the text in an edit control.
</short>
<descr>
<p>The color of the text in a widget, such as for example TEdit. This is
usually black. Don't confuse with the color of the window decoration caption
or of a raised control such as buttons or anything else.
</p>
</descr>
<seealso>
<link id="clWindow"/>
<link id="clBtnText"/>
</seealso>
</element>
<element name="clCaptionText">
<short>One of the System colors.</short>
</element>
<element name="clActiveBorder">
<short>One of the System colors.</short>
</element>
<element name="clInactiveBorder">
<short>One of the System colors.</short>
</element>
<element name="clAppWorkspace">
<short>One of the System colors.</short>
</element>
<element name="clHighlight">
<short>One of the System colors.</short>
</element>
<element name="clHighlightText">
<short>One of the System colors.</short>
</element>
<element name="clBtnFace">
<short>Color for a button face.
</short>
<descr>
<p>The color used for a button face. This color is also utilized in many
other places for raised areas such as a panel.
</p>
</descr>
</element>
<element name="clBtnShadow">
<short>One of the System colors.</short>
</element>
<element name="clGrayText">
<short>One of the System colors.</short>
</element>
<element name="clBtnText">
<short>The color for the text or other raised area on a button.</short>
<descr/>
</element>
<element name="clInactiveCaptionText">
<short>One of the System colors.</short>
</element>
<element name="clBtnHighlight">
<short>One of the System colors.</short>
</element>
<element name="cl3DDkShadow">
<short>One of the System colors.</short>
</element>
<element name="cl3DLight">
<short>One of the System colors.</short>
</element>
<element name="clInfoText">
<short>One of the System colors.</short>
</element>
<element name="clInfoBk">
<short>One of the System colors.</short>
</element>
<element name="clHotLight">
<short>One of the System colors.</short>
</element>
<element name="clGradientActiveCaption">
<short>One of the System colors.</short>
</element>
<element name="clGradientInactiveCaption">
<short>One of the System colors.</short>
</element>
<element name="clMenuHighlight">
<short>One of the System colors used for highlights on a menu.</short>
</element>
<element name="clMenuBar">
<short>One of the System colors used for the menu bar.</short>
</element>
<element name="clForm">
<short>Represents the color of the background for a form.</short>
<descr/>
</element>
<element name="clColorDesktop">
<short>A synonym not displayed in color lists.</short>
</element>
<element name="cl3DFace">
<short>A synonym not displayed in color lists.</short>
</element>
<element name="cl3DShadow">
<short>A synonym not displayed in color lists.</short>
</element>
<element name="cl3DHiLight">
<short>A synonym not displayed in color lists.</short>
</element>
<element name="clBtnHiLight">
<short>A synonym not displayed in color lists.</short>
</element>
<element name="clFirstSpecialColor">
<short>Alias for the clBtnHiLight constant.</short>
<descr/>
</element>
<element name="clMask">
<short>Alias for the clWhite constant.</short>
<descr/>
</element>
<element name="clDontMask">
<short>Alias for the clBlack constant.</short>
<descr/>
</element>
<element name="clForeground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clButton">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clLight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clMidlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDark">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clMid">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clBrightText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clButtonText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clBase">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clxBackground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clShadow">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clxHighlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clHighlightedText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="cloNormal">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="cloDisabled">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="cloActive">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalForeground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalButton">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalLight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalMidlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalDark">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalMid">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalBrightText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalButtonText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalBase">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalBackground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalShadow">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalHighlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clNormalHighlightedText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledForeground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledButton">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledLight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledMidlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledDark">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledMid">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledBrightText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledButtonText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledBase">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledBackground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledShadow">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledHighlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clDisabledHighlightedText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveForeground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveButton">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveLight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveMidlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveDark">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveMid">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveBrightText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveButtonText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveBase">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveBackground">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveShadow">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveHighlight">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="clActiveHighlightedText">
<short>Deprecated CLX color. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="TMappedColor">
<short>Deprecated CLX color range. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="TColorGroup">
<short>Deprecated CLX color enumeration. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="TColorGroup.cgInactive">
<short/>
</element>
<element name="TColorGroup.cgDisabled">
<short/>
</element>
<element name="TColorGroup.cgActive">
<short/>
</element>
<element name="TColorRole">
<short>Deprecated CLX color enumeration. Do not use.</short>
<descr/>
<seealso/>
</element>
<element name="TColorRole.crForeground">
<short/>
</element>
<element name="TColorRole.crButton">
<short/>
</element>
<element name="TColorRole.crLight">
<short/>
</element>
<element name="TColorRole.crMidlight">
<short/>
</element>
<element name="TColorRole.crDark">
<short/>
</element>
<element name="TColorRole.crMid">
<short/>
</element>
<element name="TColorRole.crText">
<short/>
</element>
<element name="TColorRole.crBrightText">
<short/>
</element>
<element name="TColorRole.crButtonText">
<short/>
</element>
<element name="TColorRole.crBase">
<short/>
</element>
<element name="TColorRole.crBackground">
<short/>
</element>
<element name="TColorRole.crShadow">
<short/>
</element>
<element name="TColorRole.crHighlight">
<short/>
</element>
<element name="TColorRole.crHighlightText">
<short/>
</element>
<element name="TColorRole.crNoRole">
<short/>
</element>
<!-- canvas modes (ternary raster operations) -->
<element link="#lcl.lcltype.BLACKNESS" name="cmBlackness"/>
<element link="#lcl.lcltype.DSTINVERT" name="cmDstInvert"/>
<element link="#lcl.lcltype.MERGECOPY" name="cmMergeCopy"/>
<element link="#lcl.lcltype.MERGEPAINT" name="cmMergePaint"/>
<element link="#lcl.lcltype.NOTSRCCOPY" name="cmNotSrcCopy"/>
<element link="#lcl.lcltype.NOTSRCERASE" name="cmNotSrcErase"/>
<element link="#lcl.lcltype.PATCOPY" name="cmPatCopy"/>
<element link="#lcl.lcltype.PATINVERT" name="cmPatInvert"/>
<element link="#lcl.lcltype.PATPAINT" name="cmPatPaint"/>
<element link="#lcl.lcltype.SRCAND" name="cmSrcAnd"/>
<element link="#lcl.lcltype.SRCCOPY" name="cmSrcCopy"/>
<element link="#lcl.lcltype.SRCERASE" name="cmSrcErase"/>
<element link="#lcl.lcltype.SRCINVERT" name="cmSrcInvert"/>
<element link="#lcl.lcltype.SRCPAINT" name="cmSrcPaint"/>
<element link="#lcl.lcltype.WHITENESS" name="cmWhiteness"/>
<element name="TRasterImageClass">
<short>Class reference used to create new instances of TRasterImage.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomBitmapClass">
<short>Class reference used to create new instances of TCustomBitmap.</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsObject">
<short>Primitive ancestor class, mainly for Delphi compatibility.
</short>
<descr>
<p>TGraphicsObject - In Delphi VCL this is the ancestor of TFont, TPen and
TBrush.
Since FPC 2.0 the LCL uses TFPCanvasHelper as ancestor.
</p>
</descr>
</element>
<!-- private -->
<element name="TGraphicsObject.FOnChanging"/>
<element name="TGraphicsObject.FOnChange"/>
<element name="TGraphicsObject.DoChange"/>
<element name="TGraphicsObject.DoChange.Msg"/>
<element name="TGraphicsObject.Changing">
<short>
<var>Changing</var> - software emulation of
<var>OnChanging</var> event.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsObject.Changed">
<short>
<var>Changed</var> - software emulation of
<var>OnChange</var> event.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsObject.Lock">
<short>
<var>Lock</var> - method for locking the object, making it unavailable for
changes.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsObject.UnLock">
<short>
<var>UnLock</var> - method for releasing locked object.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsObject.OnChanging">
<short>
<var>OnChanging</var> - event handler for changing object.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsObject.OnChange">
<short>
<var>OnChange</var> - event handler for changed object.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCacheDescriptor">
<short>
<var>TFontHandleCacheDescriptor</var> - descriptor for items in Font Handle
Cache.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCacheDescriptor.LogFont">
<short>Contains the logical font information for the cache descriptor.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCacheDescriptor.LongFontName">
<short>
<var>LongFontName</var> - the long name for the Font.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCache">
<short>
<var>TFontHandleCache</var> - a resource cache for font handles.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCache.RemoveItem">
<short>Removes the specified resource item from the cache.</short>
<descr/>
<seealso>
<link id="#lcl.lclrescache.TResourceCache.RemoveItem">TResourceCache.RemoveItem</link>
</seealso>
</element>
<element name="TFontHandleCache.RemoveItem.Item">
<short>Item removed from the resource cache.</short>
</element>
<element name="TFontHandleCache.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>Calls the inherited constructor on entry. Assigns
TFontHandleCacheDescriptor to the ResourceCacheDescriptorClass property used
to create new cache entries.
</p>
</descr>
<seealso>
<link id="#lcl.lclrescache.TResourceCache.Create">TResourceCache.Create</link>
<link id="TFontHandleCacheDescriptor"/>
</seealso>
</element>
<element name="TFontHandleCache.CompareDescriptors">
<short>Compares the specified logical font names and font details.</short>
<descr/>
<seealso>
<link id="#lcl.lclrescache.TResourceCache.CompareDescriptors">TResourceCache.CompareDescriptors</link>
</seealso>
</element>
<element name="TFontHandleCache.CompareDescriptors.Result">
<short/>
</element>
<element name="TFontHandleCache.CompareDescriptors.Tree">
<short/>
</element>
<element name="TFontHandleCache.CompareDescriptors.Desc1">
<short/>
</element>
<element name="TFontHandleCache.CompareDescriptors.Desc2">
<short/>
</element>
<element name="TFontHandleCache.FindFont">
<short>
<var>FindFont</var> - returns the Font specified by its handle as a cache
item from the FontHandleCache.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCache.FindFont.Result">
<short/>
</element>
<element name="TFontHandleCache.FindFont.TheFont">
<short/>
</element>
<element name="TFontHandleCache.FindFontDesc">
<short>
<var>FindFontDesc</var> - returns the descriptor for the FontHandle using its
<var>LogName</var> and its
<var>LongFontName</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCache.FindFontDesc.Result">
<short/>
</element>
<element name="TFontHandleCache.FindFontDesc.LogFont">
<short/>
</element>
<element name="TFontHandleCache.FindFontDesc.LongFontName">
<short/>
</element>
<element name="TFontHandleCache.Add">
<short>
<var>Add</var> the Font specified by its handle,
<var>LogFont</var> and
<var>LongFontName</var>, and returns a descriptor.
</short>
<descr/>
<seealso/>
</element>
<element name="TFontHandleCache.Add.Result">
<short/>
</element>
<element name="TFontHandleCache.Add.TheFont">
<short/>
</element>
<element name="TFontHandleCache.Add.LogFont">
<short/>
</element>
<element name="TFontHandleCache.Add.LongFontName">
<short/>
</element>
<element name="TFont">
<short>
Represents a font used to draw text in an application.
</short>
<descr>
<p>
<var>TFont</var> is a <var>TFPCustomFont</var> descendant, and provides
properties and methods needed to represent a font used in an LCL application.
</p>
<p>
Most of the information about the font is provided in a <var>TFontData</var>
instance used in protected methods like <var>GetData</var> and
<var>SetData</var>. Data items in the structure are exposed as properties,
and includes: <var>CharSet</var>, <var>Color</var>,
<var>Height</var>,<var>Name</var>, <var>Orientation</var>, <var>Pitch</var>,
<var>Quality</var>, <var>Size</var>, and <var>Style</var>.
</p>
<p>
The <var>Reference</var> property provides access to the font Handle in the
widgetset implementation.
</p>
</descr>
</element>
<!-- private -->
<element name="TFont.FIsMonoSpace"/>
<element name="TFont.FIsMonoSpaceValid"/>
<element name="TFont.FOrientation"/>
<element name="TFont.FPitch"/>
<element name="TFont.FQuality"/>
<element name="TFont.FStyle"/>
<element name="TFont.FCharSet"/>
<element name="TFont.FPixelsPerInch"/>
<element name="TFont.FUpdateCount"/>
<element name="TFont.FChanged"/>
<element name="TFont.FFontHandleCached"/>
<element name="TFont.FColor"/>
<element name="TFont.FHeight"/>
<element name="TFont.FReference"/>
<element name="TFont.FreeReference">
<short>Frees the widgetset font reference in the class instance.</short>
<descr>
<p>
<var>FreeReference</var> calls the inherited <var>Changing</var> method to
signal the <var>OnChanging</var> event handler (when assigned). FreeReference
ensures that a cache font handle for the font reference is removed from the
FontResourceCache. If the font handle is not cached, the handle is deleted
and the LCL handle in the font reference is set to <b>0</b> (<b>zero</b>).
</p>
<p>
FreeReference is called from methods which set the value in font properties
like: Name, Size, Pitch, Height, Style, and Orientation. It is also called
when the class instance is freed.
</p>
</descr>
<seealso>
<link id="TFont.Reference"/>
<link id="TFont.Name"/>
<link id="TFont.Height"/>
<link id="TFont.Size"/>
<link id="TFont.Pitch"/>
<link id="TFont.Style"/>
<link id="TFont.Orientation"/>
</seealso>
</element>
<element name="TFont.GetHandle">
<short>Gets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TFont.Handle"/>
</seealso>
</element>
<element name="TFont.GetHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetData">
<short>Gets the value for the FontData property.</short>
<descr/>
<seealso>
<link id="TFont.FontData"/>
</seealso>
</element>
<element name="TFont.GetData.Result">
<short>Values for the property.</short>
</element>
<element name="TFont.GetIsMonoSpace">
<short>Gets the value for the IsMonoSpace property.</short>
<descr/>
<seealso>
<link id="TFont.IsMonoSpace"/>
</seealso>
</element>
<element name="TFont.GetIsMonoSpace.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetReference">
<short>Gets the value for the Reference property.</short>
<descr/>
<seealso>
<link id="TFont.Reference"/>
</seealso>
</element>
<element name="TFont.GetReference.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.IsHeightStored">
<short>Gets the storage specifier for the Height property.</short>
<descr/>
<seealso>
<link id="TFont.Height"/>
</seealso>
</element>
<element name="TFont.IsHeightStored.Result">
<short>
<b>True</b> when Height contains a value different than the value in
DefFontData.
</short>
</element>
<element name="TFont.IsNameStored">
<short>Gets the storage specifier for the Name property.</short>
<descr/>
<seealso>
<link id="TFont.Name"/>
</seealso>
</element>
<element name="TFont.IsNameStored.Result">
<short>
<b>True</b> when Name contains a value different than the value in
DefFontData.
</short>
</element>
<element name="TFont.SetData">
<short>Sets the value for the FontData property.</short>
<descr/>
<seealso>
<link id="TFont.FontData"/>
</seealso>
</element>
<element name="TFont.SetData.FontData">
<short>New value for the property.</short>
</element>
<element name="TFont.SetHandle">
<short>Sets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TFont.Handle"/>
</seealso>
</element>
<element name="TFont.SetHandle.Value">
<short>New value for the property.</short>
</element>
<element name="TFont.ReferenceNeeded">
<short>
Ensures that Reference contains a valid logical font instance for the
widgetset.
</short>
<descr>
<p>No actions are performed in the method when the logical font in Reference
has already been allocated.
</p>
</descr>
<seealso>
<link id="TFont.Reference"/>
<link id="FontResourceCache"/>
<link id="TFontHandleCacheDescriptor"/>
</seealso>
</element>
<element name="TFont.SetPixelsPerInch">
<short>Sets the value for the PixelsPerInch property.</short>
<descr/>
<seealso>
<link id="TFont.PixelsPerInch"/>
</seealso>
</element>
<element name="TFont.SetPixelsPerInch.APixelsPerInch">
<short>New value for the property.</short>
</element>
<element name="TFont.GetCharSet">
<short>Gets the value for the CharSet property.</short>
<descr/>
<seealso>
<link id="TFont.CharSet"/>
</seealso>
</element>
<element name="TFont.GetCharSet.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetHeight">
<short>Gets the value for the Height property.</short>
<descr/>
<seealso>
<link id="TFont.Height"/>
</seealso>
</element>
<element name="TFont.GetHeight.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetName">
<short>Gets the value for the Name property.</short>
<descr/>
<seealso>
<link id="TFont.Name"/>
</seealso>
</element>
<element name="TFont.GetName.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetOrientation">
<short>Gets the value for the Orientation property.</short>
<descr/>
<seealso>
<link id="TFont.Orientation"/>
</seealso>
</element>
<element name="TFont.GetOrientation.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetPitch">
<short>Gets the value for the Pitch property.</short>
<descr/>
<seealso>
<link id="TFont.Pitch"/>
</seealso>
</element>
<element name="TFont.GetPitch.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetSize">
<short>Gets the value for the Size property.</short>
<descr/>
<seealso>
<link id="TFont.Size"/>
</seealso>
</element>
<element name="TFont.GetSize.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.GetStyle">
<short>Gets the value for the Style property.</short>
<descr>
<p>Bold, Italic, StrikeOut, Underline.
</p>
</descr>
<seealso/>
</element>
<element name="TFont.GetStyle.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.Changed">
<short>
Checks for pending updates (if there are any, returns <b>True</b>) or calls
inherited <var>Changed</var>.
</short>
<descr>
<p>
<var>Changed</var> is an overridden procedure used to maintain the internal
state for the class instance. If Changed has already been called for the font
instance, no additional actions are required or performed. Otherwise, the
inherited method is called to signal the <var>OnChanged</var> event handler
(when assigned).
</p>
<p>
Changed is called when any of the properties for the font are modified, or
when a new value is assigned to FontData or PixelsPerInch. Changed is called
from the <var>EndUpdate</var> method when the internal update count reaches
<b>0</b> (<b>zero</b>).
</p>
</descr>
<seealso>
<link id="TFont.Name"/>
<link id="TFont.CharSet"/>
<link id="TFont.Pitch"/>
<link id="TFont.Size"/>
<link id="TFont.Height"/>
<link id="TFont.Color"/>
<link id="TFont.Orientation"/>
<link id="TFont.Quality"/>
<link id="TFont.Style"/>
<link id="TFont.PixelsPerInch"/>
<link id="TFont.FontData"/>
<link id="TFont.EndUpdate"/>
</seealso>
</element>
<element name="TFont.DoAllocateResources">
<short>
<var>DoAllocateResources</var> - calls inherited method then calls
<var>GetReference</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TFont.DoCopyProps">
<short>
<var>DoCopyProps</var> - calls inherited method; if <var>From</var> argument
is another Font, copies specified properties directly.
</short>
<descr/>
<seealso/>
</element>
<element name="TFont.DoCopyProps.From">
<short/>
</element>
<element name="TFont.DoDeAllocateResources">
<short>
<var>DoDeAllocateResources</var> - frees references then calls inherited
method.
</short>
<descr/>
<seealso/>
</element>
<element name="TFont.SetCharSet">
<short>Sets the value for the CharSet property.</short>
<descr/>
<seealso>
<link id="TFont.CharSet"/>
</seealso>
</element>
<element name="TFont.SetCharSet.AValue">
<short>New value for the property.</short>
</element>
<element name="TFont.SetColor">
<short>Sets the value for the Color property.</short>
<descr>
<p>An overloaded variant of the method handles converting the TColor value to
the TFPColor values used in ancestor class.
</p>
</descr>
<seealso>
<link id="TFont.Color"/>
</seealso>
</element>
<element name="TFont.SetColor.Value">
<short>New value for the property.</short>
</element>
<element name="TFont.SetColor.NewColor">
<short>New value for the property.</short>
</element>
<element name="TFont.SetColor.NewFPColor">
<short>New property value as a TFPColor type.</short>
</element>
<element name="TFont.GetColor">
<short>Gets the value for the Color property.</short>
<descr/>
<seealso>
<link id="TFont.Color"/>
</seealso>
</element>
<element name="TFont.GetColor.Result">
<short>Value for the property.</short>
</element>
<element name="TFont.SetFlags">
<short>Sets the value for an indexed style flag.</short>
<descr>
<p>
<var>SetFlags</var> is an overridden method used to set the value for an
individual style flag by its ordinal position.
</p>
<p>
<var>Index</var> contains the position for the style flag used in the canvas
helper for the class.
</p>
<p>
<var>AValue</var> is a
<var>Boolean</var> value that indicates whether the
<var>TFontStyle</var> value is included in or excluded from the style flags.
</p>
<p>
SetFlags is called when a new value is assigned to the <var>Style</var>
property differs from the existing value.
</p>
</descr>
<seealso>
<link id="TFont.Style"/>
<link id="TFontStyle"/>
<link id="TFontStyles"/>
</seealso>
</element>
<element name="TFont.SetFlags.Index">
<short>Ordinal position for the style flag updated in the method.</short>
</element>
<element name="TFont.SetFlags.AValue">
<short>New value for the style flag at the specified position.</short>
</element>
<element name="TFont.SetFPColor">
<short>Sets the font Color to the specified TFPColor value.</short>
<descr>
<p>
<var>SetFPColor</var> is a method used to set the
<var>Color</var> for the font to the value specified in
<var>AValue</var>. AValue contains a
<var>TFPColor</var> value as defined in the FCL. SetFPColor calls
<var>FPColorToTColor</var> to convert AValue to the
<var>TColor</var> value applied to the Color property.
</p>
</descr>
<seealso>
<link id="TFont.Color"/>
<link id="FPColorToTColor"/>
</seealso>
</element>
<element name="TFont.SetFPColor.AValue">
<short>TFPColor value applied to the Color property.</short>
</element>
<element name="TFont.SetHeight">
<short>Sets the value for the Height property.</short>
<descr>
<p>Any change to Height is also converted to Points and applied to Size.
</p>
</descr>
<seealso>
<link id="TFont.Height"/>
<link id="TFont.Size"/>
</seealso>
</element>
<element name="TFont.SetHeight.value">
<short>New value for the property.</short>
</element>
<element name="TFont.SetName">
<short>Sets the value for the Name property.</short>
<descr/>
<seealso>
<link id="TFont.Name"/>
</seealso>
</element>
<element name="TFont.SetName.AValue">
<short>New value for the property.</short>
</element>
<element name="TFont.SetOrientation">
<short>Sets the value for the Orientation property.</short>
<descr/>
<seealso>
<link id="TFont.Orientation"/>
</seealso>
</element>
<element name="TFont.SetOrientation.AValue">
<short>New value for the property.</short>
</element>
<element name="TFont.SetPitch">
<short>Sets the value for the Pitch property.</short>
<descr/>
<seealso>
<link id="TFont.Pitch"/>
</seealso>
</element>
<element name="TFont.SetPitch.Value">
<short>New value for the property.</short>
</element>
<element name="TFont.SetSize">
<short>
<var>SetSize</var> - if
<var>AValue</var> is a new size, frees the old reference, calls the inherited
method, performs the appropriate rounding and sets the
<var>Changed</var> property.
</short>
<descr/>
<seealso>
<link id="TFont.Size"/>
</seealso>
</element>
<element name="TFont.SetSize.AValue">
<short/>
</element>
<element name="TFont.SetStyle">
<short>
<var>SetStyle</var> - specify which style to use.
</short>
<descr/>
<seealso/>
</element>
<element name="TFont.SetStyle.Value">
<short>New value for the property.</short>
</element>
<element name="TFont.SetQuality">
<short>
<var>SetQuality</var> - specify the quality.
</short>
<descr>Default, Draft, Proof, NonAntialiased, Antialiased
</descr>
<seealso/>
</element>
<element name="TFont.SetQuality.AValue">
<short>New value for the property.</short>
</element>
<element name="TFont.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor in
<var>TFont</var>. Create calls the inherited constructor on entry, and sets
the default values for properties including:
</p>
<dl>
<dt>Color</dt>
<dd>
Set to clDefault for platforms or widgetsets where it is enabled. Otherwise,
set to clWindowText.
</dd>
<dt>Pitch</dt>
<dd>Set to the value in DefFontData.</dd>
<dt>Charset</dt>
<dd>Set to the value in DefFontData.</dd>
<dt>Quality</dt>
<dd>Set to the value in DefFontData.</dd>
<dt>Height</dt>
<dd>Set to the value in DefFontData.</dd>
<dt>Style</dt>
<dd>Set to the value in DefFontData.</dd>
<dt>PixelsPerInch</dt>
<dd>Set to the vertical display density used in ScreenInfo.</dd>
<dt>Size</dt>
<dd>
Calculated using values in Height and PixelsPerInch. Applied by calling the
SetSize method inherited from TFPCustomFont.
</dd>
<dt>Name</dt>
<dd>
Set to the value in DefFontData, and applied by calling the SetName name
method inherited from TFPCustomFont.
</dd>
<dt>FPColor</dt>
<dd>
Calls the SetFPColor method inherited from TFPCanvasHelper to set the font
color to colBlack.
</dd>
</dl>
<p>
The DelayAllocate property from the TFPCanvasHelper ancestor is set to
<b>True</b> to defer resource allocation for the Canvas until it is used.
</p>
</descr>
<seealso>
<link id="#rtl.System.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TFont.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy calls <var>FreeReference</var> to free cached font resources for the
<var>Reference</var> class, and frees the <var>Handle</var> for the font. The
inherited destructor is called prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Destroy">TPersistent.Destroy</link>
</seealso>
</element>
<element name="TFont.Assign">
<short>Copies values from Source to the current class instance.</short>
<descr>
<p>
<var>Assign</var> is an overridden method used to copy values from the
specified Source into the current class instance. Overloaded variants are
provided that allow the source to be a <var>TPersistent</var> instance (which
is cast to <var>TFont</var>) or a <var>TLogFont</var> record instance.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
<link id="#lcl.lcltype.TLogFont">TLogFont</link>
</seealso>
</element>
<element name="TFont.Assign.Source">
<short>Persistent object with values stored in the method.</short>
</element>
<element name="TFont.Assign.ALogFont">
<short>Logical font resource with values stored in the method.</short>
</element>
<element name="TFont.BeginUpdate">
<short>Starts an update process for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TFont.EndUpdate">
<short>Finishes an update process for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TFont.FontData">
<short>Contains the data describing the font.</short>
<descr/>
<seealso/>
</element>
<element name="TFont.HandleAllocated">
<short>
<var>HandleAllocated</var> - returns <b>True</b> if a handle has been
allocated.
</short>
<descr/>
<seealso/>
</element>
<element name="TFont.HandleAllocated.Result">
<short/>
</element>
<element name="TFont.Handle">
<short>Operating system <var>Handle</var> for the Font.</short>
<descr>
<p>
Operating system <var>Handle</var> for the Font.
</p>
</descr>
<seealso/>
</element>
<element name="TFont.IsDefault">
<short>
<var>IsDefault</var> - returns <b>True</b> if this is the default Font.
</short>
<descr/>
<seealso/>
</element>
<element name="TFont.IsDefault.Result">
<short/>
</element>
<element name="TFont.IsEqual">
<short>
<var>IsEqual</var> - returns <b>True</b> if this Font is the same as the
specified Font.
</short>
<descr/>
<seealso/>
</element>
<element name="TFont.IsEqual.Result">
<short>
<b>True</b> when the font matches the one in the current class instance.
</short>
</element>
<element name="TFont.IsEqual.AFont">
<short>Font instance to compare to the current class instance.</short>
</element>
<element name="TFont.IsMonoSpace">
<short>Indicates if the font uses fixed-width characters (monospace).</short>
<descr>
<p>
<var>IsMonoSpace</var> is a read-only <var>Boolean</var> property which
indicates if the font is a monospaced font with a fixed character width. The
<var>FontIsMonoSpace</var> routine from the LCL interface is called to get the
property value, and uses the font handle in <var>Reference</var> to retrieve
the font data.
</p>
</descr>
<seealso>
<link id="TFont.Reference"/>
<link id="#lcl.lclintf.FontIsMonoSpace">FontIsMonoSpace</link>
</seealso>
</element>
<element name="TFont.SetDefault">
<short>Sets font properties to their default values.</short>
<descr>
<p>
<var>SetDefault</var> is a procedure used to set properties in the font to the
values used in the <var>DefFontData</var> variable. SetDefault calls
<var>BeginUpdate</var> to start an update process, and sets the values for the
following properties:
</p>
<ul>
<li>Name</li>
<li>Charset</li>
<li>Height</li>
<li>Pitch</li>
<li>Quality</li>
<li>Style</li>
<li>Color</li>
</ul>
<p>
Color is set to <var>clDefault</var> when the UseCLDefault compiler directive
is defined. Otherwise, the value <var>clWindowText</var> is used in the
property.
</p>
<p>
<var>EndUpdate</var> is called to finish the update process prior to exiting
from the method.
</p>
</descr>
<seealso>
<link id="DefFontData"/>
<link id="TFont.BeginUpdate"/>
<link id="TFont.EndUpdate"/>
</seealso>
</element>
<element name="TFont.PixelsPerInch">
<short>Display density for the font.</short>
<descr>
<p>
<var>PixelsPerInch</var> is an <var>Integer</var> property which indicates
the display density (or pixels per inch) for the font.
</p>
<p>
The default value for the property is set when the class instance is created,
and uses the value from the PixelsPerInchY member in ScreenInfo. It is also
updated when Assign is used to copy property values from another font
instance.
</p>
<p>
PixelsPerInch is used when values are assigned to the Height or Size
properties to convert pixel values to the Points unit of measure used in Size.
</p>
<p>
Setting a new value in PixelsPerInch causes Height to be scaled to the new
value for the property. Changed is also called to signal the OnChange event
handler (when assigned).
</p>
</descr>
<seealso/>
</element>
<element name="TFont.Reference">
<short>
<var>Reference</var> - References made to this Font.
</short>
<descr>
<p>
<var>Reference</var> is a read-only <var>TWSFontReference</var> property
which contains a reference to the widgetset class used for the font instance.
It provides access to the Handle for the font resource, and is used in
methods that need access to an existing font handle.
</p>
<p>
Resources for the property are allocated (when needed) and initialized by
calling the ReferenceNeeded method. The resources are freed in the
FreeReference method.
</p>
</descr>
<seealso/>
</element>
<element name="TFont.CharSet">
<short>Indicates the character set used in the font.</short>
<descr>
<p>
<var>CharSet</var> is a <var>TFontCharSet</var> property which contains a
numeric value representing the character set in the font instance. The
default value for the property is defined in the <var>DEFAULT_CHARSET</var>
constant, and indicates that the default character set for the operating
system or platform is used.
</p>
<p>
Setting a new value for the property causes the font <var>Reference</var>
class to be re-created, and <var>Changed</var> is called to signal the
<var>OnChange</var> event handler (when assigned).
</p>
<p>
CharSet is updated when the font data is read for the class instance, and
when <var>Assign</var> is called to copy values from another font instance.
</p>
</descr>
<seealso/>
</element>
<element name="TFont.Color">
<short>Color used to render text using the font.</short>
<descr>
<p>
<var>Color</var> is a <var>TColor</var> property which contains the color
used to render text using the font. The default value for the property is
clDefault when the UseCLDefault compiler directive is defined. Otherwise, the
default value is clWindowText.
</p>
<p>
Setting a new value for the property causes the ancestor class to be
notified, and Changed is called to signal the OnChange event handler (when
assigned).
</p>
</descr>
<seealso/>
</element>
<element name="TFont.Height">
<short>Height for the font (in pixels).</short>
<descr>
<p>
<var>Height</var> is an <var>Integer</var> property which contains the height
for the font in pixels. The property value is not stored during LCL streaming
operations when its value is the same as the value in <var>DefFontData</var>.
</p>
<p>
Setting a new value for the property causes the font handle in
<var>Reference</var> to be re-created. <var>Size</var> is also updated with
the new property value converted to Points (1/72 of an inch). The formula for
the conversion is:
</p>
<code>
Size := -MulDiv(AValue, 72, FPixelsPerInch);
</code>
<p>
<var>Changed</var> is called to signal the <var>OnChange</var> event handler
(when assigned).
</p>
<p>
When a value is assigned to Height, the value in Size is represented as a
negative number. Conversely, when a value is assigned to Size, the value in
Height is represented as a negative number.
</p>
<p>
Use Size to read or write the height for the font as a number of Points (1/72
inch).
</p>
</descr>
<seealso>
<link id="TFont.Size"/>
<link id="TFont.Reference"/>
<link id="TFont.PixelsPerInch"/>
</seealso>
</element>
<element name="TFont.Name">
<short>Name of the font.</short>
<descr>
<p>
Name is a String property which contains the name of the font in the class
instance. The initial value for the property is set when the class instance
is created, and uses the Name from the DefFontData variable. The property is
updated when Assign is called to copy values from another font instance.
</p>
<p>
Setting a new value for the property causes the font Reference to be
re-created, and the Changed method is called to signal the OnChange event
handler (when assigned).
</p>
<p>
Name is not included in LCL streaming when the property value is the same as
the Name member in DefFontData.
</p>
</descr>
<seealso/>
</element>
<element name="TFont.Orientation">
<short>Rotation for the current font in 1/10ths of a degree.</short>
<descr>
<p>
<var>Orientation</var> is an <var>Integer</var> property which contains the
rotation angle used for text in 1/10ths of a degree. The rotation angle is
determined by the relationship between the X Axis for the Canvas and the
baseline for the font, and uses the following directions:
</p>
<table>
<caption>Orientation Values and Directions</caption>
<tr>
<td>0</td>
<td>Text is drawn horizontally from left to right.</td>
</tr>
<tr>
<td>900</td>
<td>Text is drawn vertically from bottom to top.</td>
</tr>
<tr>
<td>1800</td>
<td>Text is drawn upside down from right to left.</td>
</tr>
<tr>
<td>2700</td>
<td>Text is drawn vertically from top to bottom.</td>
</tr>
</table>
<p>
Setting a new value for the property causes the font Reference to be
re-created, and calls Changes to signal the OnChange event handler (when
assigned).
</p>
<p>
The default value for the property is <b>0</b> (<b>zero</b>).
</p>
</descr>
</element>
<element name="TFont.Pitch">
<short>
<var>Pitch</var> type of the <var>Font</var>.
</short>
<descr>
<p>
<var>Pitch</var> is a <var>TFontPitch</var> property which indicates the
pitch for the font face.
</p>
<p>
Setting a new value for the property causes the font <var>Reference</var> to
be re-created, and the <var>Changed</var> method is called to signal the
<var>OnChange</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TFontPitch"/>
</seealso>
</element>
<element name="TFont.Quality">
<short>Output quality for the <var>Font</var>, such as anti-aliasing.</short>
<descr>
<p>
<var>Quality</var> is a <var>TFontQuality</var> property which contains a
value with the output quality for the font. The output quality determines how
carefully font attributes are applied to output using the font.
</p>
<p>
The default value for the property is <var>fqDefault</var>. See
<var>TFontQuality</var> for more information about the enumeration values and
their meanings.
</p>
<p>
Setting a new value for the property causes the font <var>Reference</var> to
be re-created, and <var>Changed</var> is called to signal the
<var>OnChange</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TFontQuality"/>
<link id="TFontData"/>
</seealso>
</element>
<element name="TFont.Size">
<short>Vertical size for the font in Points.</short>
<descr>
<p>
<var>Size</var> is an <var>Integer</var> property which contains the height
for the font in Points (1/72 of an inch). The value in Size is calculated
using the logical font height, and is not read or written in LCL component
streaming.
</p>
<p>
Setting a new value for the property causes the font Reference to be
re-created for the class instance. The new property value is stored by
calling <var>SetSize</var> in the ancestor class. The value is also converted
to pixels (using <var>PixelsPerInch</var>) and stored in the
<var>Height</var> property. The formula used for the conversion is:
</p>
<code>
FHeight := -MulDiv(AValue, FPixelsPerInch, 72);
</code>
<p>
When a value is assigned to Size, the value in Height is represented as a
negative number. Conversely, when a value is assigned to Height, the value in
Size is represented as a negative number.
</p>
<p>
Use the Height property to set the vertical size for the font as a number of
pixels.
</p>
</descr>
<seealso>
<link id="TFont.Height"/>
<link id="TFont.PixelsPerInch"/>
<link id="TFont.Reference"/>
</seealso>
</element>
<element name="TFont.Style">
<short>Styles applied to the font face.</short>
<descr>
<p>
<var>Style</var> is a
<var>TFontStyles</var> property which indicates the font styles applied to
the font face. The Style set contains 0 (zero ) or more values from the
<var>TFontStyle</var> enumeration, including:
</p>
<dl>
<dt>fsBold</dt>
<dd>Bold font style</dd>
<dt>fsItalic</dt>
<dd>Italic font style</dd>
<dt>fsStrikeOut</dt>
<dd>Strike-out (or strike-through) font style</dd>
<dt>fsUnderline</dt>
<dd>Underline font style</dd>
</dl>
<p>The default value for the property is an empty set (<b>[]</b>), and
indicates that no styles are applied to the font face.
</p>
<p>Setting a new value for the property causes the font Reference to be
re-created. The Change method is called to signal the OnChange event handler
(when assigned).
</p>
</descr>
<seealso>
<link id="TFontStyles"/>
<link id="TFontStyle"/>
</seealso>
</element>
<element name="TPenStyle">
<short>Represents line drawing styles used when rendering to a canvas.</short>
<descr>
<p>
TPenStyle is an alias for the TFPPenStyle type in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="TPenMode">
<short>Represents pen modes used when rendering to a canvas.</short>
<descr>
<p>TPenMode is an alias for the TFPPenMode type in the FCL.
</p>
</descr>
<seealso/>
</element>
<element name="TPenEndCap">
<short>Represents end cap styles used for a pen.</short>
<descr>
<p>
TPenEndCap is an enumerated typed with values representing geometric shapes
used as end caps for a pen. End caps are applied to the starting and ending
points in a line segment.
</p>
<p>
TPenEndCap is the type used to implement the EndCap property in TPen.
</p>
</descr>
<version>Added in LCL version 1.2.0.</version>
<seealso>
<link id="TPen.EndCap"/>
</seealso>
</element>
<element name="TPenEndCap.pecRound">
<short>Rounded end cap which extends beyond the point.</short>
</element>
<element name="TPenEndCap.pecSquare">
<short>Rectangular end cap which extends beyond the point.</short>
</element>
<element name="TPenEndCap.pecFlat">
<short>Flat (or blunt) end cap which does not extend beyond the point.</short>
</element>
<element name="TPenJoinStyle">
<short>Represents join styles used between line segments.</short>
<descr/>
<version>Added in LCL version 1.2.0.</version>
<seealso/>
</element>
<element name="TPenJoinStyle.pjsRound">
<short>Round shape used at the join points.</short>
</element>
<element name="TPenJoinStyle.pjsBevel">
<short>Bevel shape used at the join points.</short>
</element>
<element name="TPenJoinStyle.pjsMiter">
<short>Mitered angular shape used at join points.</short>
</element>
<element name="TPenPattern">
<short>Represents a pattern brush for a pen.</short>
<descr>
<p>
<var>TPenPattern</var> is an array type used to store the sequence of
<var>LongWord</var> values that make up the pen pattern. TPenPattern is
essentially a user-defined pen style.
</p>
<p>TPenPattern is the type used to implement the <var>Pattern</var> property
in <var>TPen</var>.
</p>
</descr>
<seealso>
<link id="TPen"/>
</seealso>
</element>
<element name="TPenHandleCacheDescriptor">
<short>Cache descriptor for Pen Handles.</short>
<descr/>
<seealso/>
</element>
<element name="TPenHandleCacheDescriptor.ExtPen">
<short>Extended logical pen structure for the cache entry.</short>
</element>
<element name="TPenHandleCacheDescriptor.Pattern">
<short>The <var>Pattern</var> for this pen.</short>
</element>
<element name="TPenHandleCache">
<short>
<var>TPenHandleCache</var> - Resource Cache for Pen Handles.
</short>
<descr/>
<seealso/>
</element>
<element name="TPenHandleCache.RemoveItem">
<short/>
<descr/>
<seealso>
<link id="#lcl.lclrescache.TResourceCache.RemoveItem">TResourceCache.RemoveItem</link>
</seealso>
</element>
<element name="TPenHandleCache.RemoveItem.Item">
<short/>
</element>
<element name="TPenHandleCache.Create">
<short>Constructor for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TPenHandleCache.CompareDescriptors">
<short>
Compares the specified image descriptors to determine if they have the same
pens and pattern data.
</short>
<descr/>
<seealso>
<link id="#lcl.lclrescache.TResourceCache.CompareDescriptors">TResourceCache.CompareDescriptors</link>
</seealso>
</element>
<element name="TPenHandleCache.CompareDescriptors.Result">
<short/>
</element>
<element name="TPenHandleCache.CompareDescriptors.Tree">
<short/>
</element>
<element name="TPenHandleCache.CompareDescriptors.Desc1">
<short/>
</element>
<element name="TPenHandleCache.CompareDescriptors.Desc2">
<short/>
</element>
<element name="TPenHandleCache.FindPen">
<short>
<var>FindPen</var> - returns a
<var>ResourceCacheItem</var> corresponding to the nominated Handle.
</short>
<descr/>
<seealso/>
</element>
<element name="TPenHandleCache.FindPenDesc">
<short>
<var>FindPenDesc</var> - returns a descriptor for the given pen and pattern.
</short>
</element>
<element name="TPenHandleCache.Add">
<short>
<var>Add</var> - returns a cache descriptor corresponding to the pen that has
been added to the cache.
</short>
</element>
<element name="TPenHandleCache.Add.Result">
<short/>
</element>
<element name="TPenHandleCache.Add.APen">
<short/>
</element>
<element name="TPenHandleCache.Add.AExtPen">
<short/>
</element>
<element name="TPenHandleCache.Add.APattern">
<short/>
</element>
<element name="TPen">
<short>Represents a pen used to draw on a canvas.</short>
<descr>
<p>
<var>TPen</var> is a <var>TFPCustomPen</var> descendant which contains
settings for a pen used to draw lines and shapes on a canvas. It includes
properties that define the color for the pen, the end cap and join style used
for line segments, and a pattern used for user-defined line drawing styles.
</p>
<p>
Essentially, TPen maps the types used for properties in the FCL ancestor
class to the types used in the LCL.
</p>
<p>
TPen is the type used to implement the Pen property in <var>TCanvas</var>.
</p>
</descr>
<seealso>
<link id="TCanvas.Pen"/>
</seealso>
</element>
<!-- private -->
<element name="TPen.FColor"/>
<element name="TPen.FEndCap"/>
<element name="TPen.FCosmetic"/>
<element name="TPen.FJoinStyle"/>
<element name="TPen.FPattern"/>
<element name="TPen.FPenHandleCached"/>
<element name="TPen.FReference"/>
<element name="TPen.FreeReference">
<short>
Frees the Pen class reference and optionally removes it from the Pen resource
cache.
</short>
<descr/>
<seealso/>
</element>
<element name="TPen.GetHandle">
<short>Gets the value for the Handle property.</short>
<descr/>
<seealso/>
</element>
<element name="TPen.GetHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TPen.GetReference">
<short>Gets the value for the Reference property.</short>
<descr/>
<seealso/>
</element>
<element name="TPen.GetReference.Result">
<short>Value for the property.</short>
</element>
<element name="TPen.ReferenceNeeded">
<short>Ensures that the Reference class is allocated and initialized.</short>
<descr/>
<seealso/>
</element>
<element name="TPen.SetCosmetic">
<short>Sets the value for the Cosmetic property.</short>
<descr/>
<seealso>
<link id="TPen.Cosmetic"/>
</seealso>
</element>
<element name="TPen.SetCosmetic.AValue">
<short>New value for the property.</short>
</element>
<element name="TPen.SetHandle">
<short>Sets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TPen.Handle"/>
<link id="TPen.Reference"/>
</seealso>
</element>
<element name="TPen.SetHandle.Value">
<short>New value for the property.</short>
</element>
<element name="TPen.DoAllocateResources">
<short>
Performs actions needed to allocate resources for the class instance.
</short>
<descr>
<p>
<var>DoAllocateResources</var> is an overridden method used to allocate
resources for the class instance. DoAllocateResources calls the inherited
method , and calls GetReference to initialize the <var>Reference</var>
property used in the class instance.
</p>
</descr>
<seealso>
<link id="TPen.Reference"/>
</seealso>
</element>
<element name="TPen.DoDeAllocateResources">
<short>
Performs actions to free resources allocated for the class instance.
</short>
<descr>
<p>
Overridden.
Calls FreeReference.
Calls the inherited method prior to exiting from the method.
</p>
</descr>
<seealso/>
</element>
<element name="TPen.DoCopyProps">
<short>
Copies properties from the specified source to the class instance.
</short>
<descr>
<p>Overridden.
Provides support for the TPen type in the From parameter.
Calls the inherited method.
</p>
</descr>
<seealso/>
</element>
<element name="TPen.DoCopyProps.From">
<short>Canvas helper descendant with properties copied in the method.</short>
</element>
<element name="TPen.SetColor">
<short>Sets the value for the Color property.</short>
<descr/>
<seealso>
<link id="TPen.Color"/>
</seealso>
</element>
<element name="TPen.SetColor.Value">
<short>New value for the property.</short>
</element>
<element name="TPen.SetFPColor">
<short>Sets the pen Color to the specified TFPColor value.</short>
<descr>
<p>
<var>SetFPColor</var> is a method used to set the <var>Color</var> for the
pen to the value specified in <var>AValue</var>. AValue contains a
<var>TFPColor</var> value as defined in the FCL. SetFPColor calls
<var>FPColorToTColor</var> to convert AValue to the <var>TColor</var> value
applied to the <var>Color</var> property.
</p>
</descr>
<seealso>
<link id="TPen.Color"/>
<link id="FPColorToTColor"/>
</seealso>
</element>
<element name="TPen.SetEndCap">
<short>
Specifies the type of end cap used for the pen if it is a geometric pen.
</short>
<descr>
<p>
Defined for FCL versions where the EndCap property is implemented.
</p>
</descr>
<seealso/>
</element>
<element name="TPen.SetEndCap.AValue">
<short>New value for the property.</short>
</element>
<element name="TPen.SetJoinStyle">
<short>Sets the value for the JoinStyle property.</short>
<descr>
<p>
<var>SetJoinStyle</var> specifies the style used on a geometric pen when lines
join (at corners etc).
</p>
</descr>
<seealso/>
</element>
<element name="TPen.SetJoinStyle.AValue">
<short>New value for the property.</short>
</element>
<element name="TPen.SetMode">
<short>Sets the value for the Mode property.</short>
<descr>Overridden write access specifier.
</descr>
<seealso>
<link id="TPen.Mode"/>
</seealso>
</element>
<element name="TPen.SetMode.Value">
<short>New value for the property.</short>
</element>
<element name="TPen.SetStyle">
<short>Sets the value for the Style property.</short>
<descr>
<p>
Overridden write access specifier for the Style property.
</p>
</descr>
<seealso>
<link id="TPen.Style"/>
</seealso>
</element>
<element name="TPen.SetStyle.Value">
<short>New value for the property.</short>
</element>
<element name="TPen.SetWidth">
<short>Sets the value for the Width property.</short>
<descr>
<p>
Overridden write access specifier for the Width property.
</p>
</descr>
<seealso>
<link id="TPen.Width"/>
</seealso>
</element>
<element name="TPen.SetWidth.value">
<short>New value for the property.</short>
</element>
<element name="TPen.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for TPen. It calls the
inherited Create method, and sets the default values for properties including:
</p>
<ul>
<li>DelayAllocate</li>
<li>Cosmetic</li>
<li>EndCap</li>
<li>JoinStyle</li>
<li>Width</li>
<li>Style</li>
<li>Mode</li>
<li>Color</li>
</ul>
</descr>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TPen.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the destructor for <var>TPen</var>. It frees resources
in Reference and calls the inherited Destroy method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Destroy">TPersistent.Destroy</link>
</seealso>
</element>
<element name="TPen.Assign">
<short>Copies property values from the specified persistent object.</short>
<descr>
<p>
<var>Assign</var> is an overridden method used to copy property values from
the persistent object in <var>Source</var> to the current class instance.
</p>
<p>Source is the <var>TPersistent</var> class instance with the property
values copied in the method. If Source is a <var>TPen</var> instance, the
properties introduced in TPen are copied into the current class instance.
Otherwise, the inherited method is called.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TPen.Assign.Source">
<short>Persistent object with values copied in the method.</short>
</element>
<element name="TPen.Handle">
<short>The Operating System <var>Handle</var> for the current <var>Pen</var>.
</short>
<descr>
<p>
<var>Handle</var> is a <var>HPEN</var> property with the handle allocated for
the pen by the operating system or widgetset. Setting a new value for the
property causes the pen <var>Reference</var> to be re-created. The
<var>Changed</var> method is called to signal the <var>OnChange</var> event
handler (when assigned).
</p>
<remark>
The Handle property has been marked as deprecated. Use the Reference property
to access the Handle for the pen.
</remark>
</descr>
<seealso>
<link id="TPen.Reference"/>
</seealso>
</element>
<element name="TPen.Reference">
<short>A <var>Reference</var> made to this Pen.</short>
<descr>
<p>
<var>Reference</var> is a read-only <var>TWSPenReference</var> property which
provides a reference to the class allocated for the pen by a widgetset class.
Use <var>Reference</var> to access the handle allocated for the pen resource.
</p>
</descr>
<seealso/>
</element>
<element name="TPen.GetPattern">
<short>Gets the Pattern used in the Pen.
</short>
<descr>
<p>
<var>GetPattern</var> is a <var>TPenPattern</var> function used to get Pattern
for the pen. Use SetPattern to assign the Pattern used for the pen.
</p>
<remark>
Please note that the Pattern property in the TFPCustomPen ancestor class uses
a different type (LongWord instead of TPenPattern).
</remark>
</descr>
<seealso>
<link id="TPen.SetPattern"/>
</seealso>
</element>
<element name="TPen.SetPattern">
<short>
<var>SetPattern</var> - specifies the pattern for the pen.
</short>
<descr>
<p>SetPattern is a reintroduced procedure in TPen to use the TPenPattern
type. The property in the ancestor class uses the LongWord type.
</p>
</descr>
<seealso/>
</element>
<element name="TPen.Color">
<short>The <var>Color</var> of the current <var>Pen</var>.
</short>
<descr>
<p>
<var>Color</var> is a <var>TColor</var> property which contains the color used
by the pen to draw on a canvas. The default value for the property is
<var>clBlack</var>.
</p>
</descr>
</element>
<element name="TPen.Cosmetic">
<short>
Indicates whether the Pen is <var>Cosmetic</var> (non-geometric).
</short>
<descr>
<p>
<var>Cosmetic</var> is a <var>Boolean</var> property which indicates whether
the pen is a Cosmetic one. When set to <b>False</b>, it is a Geometric pen.
</p>
<p>
A pen can be either Cosmetic or Geometric. A cosmetic pen is always 1 pixel
wide, while a geometric pen can have any width. The width of a geometric pen
is defined in world units and thus depends on transforms (scaling, rotation,
shear, reflection) applied to a canvas. Operations using a cosmetic pen are
faster.
</p>
<p>
The default value for the property is <b>True</b>.
</p>
<p>
Setting a new value for the property causes the pen <var>Reference</var> to
be re-created. The <var>Changed</var> method is called to signal the
<var>OnChange</var> event handler (when assigned).
</p>
</descr>
</element>
<element name="TPen.EndCap">
<short>The sort of <var>EndCap</var> used on the Pen.</short>
<descr>
<p>
The end cap can be Round, Square or Flat. When end caps are round, the last
points are drawn with a rounded shape. When end caps are square, the last
points are drawn with a square aspect. When end caps are flat, the last points
are not drawn at all.
</p>
</descr>
<version>Added in LCL version 1.2.0.</version>
<seealso/>
</element>
<element name="TPen.JoinStyle">
<short>
<var>JoinStyle</var> - the style of joint where two lines meet or cross.
</short>
<descr>
<p>
The join style can be: Round, Bevel or Miter. When style is Round, then
line joins use a rounded shape. When style is Bevel, then line joins are
beveled at their intersection. When style is Miter, then line joins are
mitered at their intersection.
</p>
</descr>
<version>Added in LCL version 1.2.0.</version>
<seealso/>
</element>
<element name="TPen.Mode">
<short>Pen mode for the class instance.</short>
<descr>
<p>
<var>Mode</var> is a <var>TFPPenMode</var> property which contains the pen
mode used in the class instance. A pen mode indicates the raster operation
performed to combine the pen color with existing pixels in the destination
bitmap. Mode can contain any of the values:
</p>
<dl>
<dt>pmBlack</dt>
<dd>Pixels affected by the pen are always set to black.</dd>
<dt>pmWhite</dt>
<dd>Pixels affected by the pen are always set to white.</dd>
<dt>pmNop</dt>
<dd>Pixels affected by the pen are unchanged.</dd>
<dt>pmNot</dt>
<dd>
Pixels affected by the pen are set to the inverse for the current color.
</dd>
<dt>pmCopy</dt>
<dd>Pixels affected by the pen are set to the pen color.</dd>
<dt>pmNotCopy</dt>
<dd>Pixels affected by the pen are set to the inverse of the pen color.</dd>
<dt>pmMergePenNot</dt>
<dd>
Pixels affected by the pen are set to a combination of the pen color and the
inverse of the pixel color.
</dd>
<dt>pmMaskPenNot</dt>
<dd>
Pixels affected by the pen are set to colors common to both the pen and the
inverse of the pixel color.
</dd>
<dt>pmMergeNotPen</dt>
<dd>
Pixels affected by the pen are set to a combination of the pen color and the
inverse of the pixel color.
</dd>
<dt>pmMaskNotPen</dt>
<dd>
Pixels affected by the pen are set to a combination of the colors common to
the inverse of the pen color and the current pixel color.
</dd>
<dt>pmMerge</dt>
<dd>
Pixels affected by the pen are set to a combination of the pen color and the
current pixel color.
</dd>
<dt>pmNotMerge</dt>
<dd>
Pixels affected by the pen are set to the inverse of the color derived using
pmMerge pen mode.
</dd>
<dt>pmMask</dt>
<dd>
Pixels affected by the pen are set a combination of the colors common to the
pen color and the current pixel color.
</dd>
<dt>pmNotMask</dt>
<dd>
Pixels affected by the pen are set to the inverse of the color for pmMask pen
mode.
</dd>
<dt>pmXor</dt>
<dd>
Pixels affected by the pen are set to a combination of the pen color and the
current pixel color, but not both.
</dd>
<dt>pmNotXor</dt>
<dd>
Pixels affected by the pen are set to the inverse of the color using pmXor
pen mode.
</dd>
</dl>
<p>
The default value for the property is <var>pmCopy</var>.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TPen.Style">
<short>Contains the line drawing style for the pen.</short>
<descr>
<p>
Style is a TPenStyle property with the style used to draw lines with the Pen.
It can contain one of the following constant values:
</p>
<ul>
<li>psSolid</li>
<li>psDash</li>
<li>psDot</li>
<li>psDashDot</li>
<li>psDashDotDot</li>
<li>psInsideFrame</li>
<li>psPattern</li>
<li>psClear</li>
</ul>
<p>
psDash, psDot, psDashDot, and psDashDotDot are drawn using the corresponding
TPenPattern for the Style. On the Windows platform, these styles are not
available if Width has any value other than 1.
</p>
<p>
psInsideFrame uses a solid drawing style, and a Color dithered to one of the
values in the color table for the device. The content drawn with the pen is
reduced in size so that it appears inside of a bounding rectangle including
the Width for the pen.
</p>
<p>
psClear, in general, tells the implementing class or routine that the drawing
operation is not needed.
</p>
<p>
The default value for the property is <var>psSolid</var>. Setting a new value
for the property causes the handle in Reference to be freed. The Changed
method is called to signal the OnChange event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TPen.Width"/>
<link id="TPenStyle"/>
<link id="TPenPattern"/>
</seealso>
</element>
<element name="TPen.Width">
<short>Width for lines drawn using the Pen.</short>
<descr>
<p>
<var>Width</var> is an <var>Integer</var> property which contains the width
for the pen.
</p>
<p>
Setting a new value for the property causes the pen <var>Reference</var> to
be re-created. The <var>Changed</var> method is called to signal the
<var>OnChange</var> event handler (when assigned). The default value for the
property is <b>1</b>.
</p>
<p>
Width is related to the <var>Cosmetic</var> property. A cosmetic pen has a
width of <b>1</b>. Setting Width to a value larger than <b>1</b> prevents
using it as a cosmetic pen.
</p>
</descr>
<seealso/>
</element>
<element name="TBrushStyle">
<short>Represents the pattern for a Brush.</short>
<descr>
<p>
TBrushStyle is an alias for the TFPBrushStyle type from the FCL. Brush style
constants defined in the LCL include:
</p>
<dl>
<dt>bsSolid</dt>
<dd>
Fills a shape with the color for the brush.
</dd>
<dt>bsClear</dt>
<dd>
Fills a shape with transparency (using the existing color as the fill color).
</dd>
<dt>bsHorizontal</dt>
<dd>
Fills a shape with a pattern consisting of equidistant horizontal lines.
</dd>
<dt>bsVertical</dt>
<dd>
Fills a shape with a pattern consisting of equidistant vertical lines.
</dd>
<dt>bsFDiagonal</dt>
<dd>
Fills a shape with a pattern consisting of equidistant lines drawn with a
45-degree downward, left-to-right hatch.
</dd>
<dt>bsBDiagonal</dt>
<dd>
Fills a shape with a pattern consisting of equidistant lines drawn with a
45-degree upward, left-to-right hatch.
</dd>
<dt>bsCross</dt>
<dd>
Fills a shape with a pattern consisting of equidistant lines drawn as a
horizontal and vertical cross-hatch.
</dd>
<dt>bsDiagCross</dt>
<dd>
Fills a shape with a pattern consisting of equidistant lines drawn as a 45
degree cross-hatch.
</dd>
<dt>bsImage</dt>
<dd>
Fills a shape with a user-specified image (bitmap).
</dd>
<dt>bsPattern</dt>
<dd>
Fills a shape with a user-specified pattern (bitmap).
</dd>
</dl>
<p>
The constant values are assigned to the Style property in TBrush.
</p>
</descr>
<seealso>
<link id="TBrush.Style"/>
</seealso>
</element>
<element name="TBrushHandleCache">
<short>
<var>TBrushHandleCache</var> - resource cache for Brush Handles.</short>
<descr/>
<seealso/>
</element>
<element name="TBrushHandleCache.RemoveItem">
<short>Deletes the widgetset object with the handle in Item and removes it
from the resource cache.
</short>
<descr/>
<seealso>
<link id="#lcl.lclrescache.TResourceCache.RemoveItem">TResourceCache.RemoveItem</link>
</seealso>
</element>
<element name="TBrushHandleCache.RemoveItem.Item">
<short>Item removed from the cache.</short>
</element>
<element name="TBrushHandleCache.Create">
<short>Constructor for the class instance.</short>
<descr/>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TBrush">
<short>The <var>Brush</var> to be used to <var>Paint</var> on the current
<var>Canvas</var>.
</short>
<descr>
<p>
A <var>Brush</var> is typically used to fill an enclosed area on the
<var>Canvas</var> with one particular color or colored pattern.
</p>
</descr>
<seealso/>
</element>
<element name="TBrush.FBrushHandleCached"/>
<element name="TBrush.FColor"/>
<element name="TBrush.FBitmap"/>
<element name="TBrush.FReference"/>
<element name="TBrush.FInternalUpdateIndex"/>
<element name="TBrush.FreeReference">
<short>Frees the widgetset reference for the Brush.</short>
</element>
<element name="TBrush.GetHandle">
<short>Gets the value for the Handle property.</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.GetHandle.Result">
<short/>
</element>
<element name="TBrush.GetReference">
<short>Gets the value for the Reference property.</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.GetReference.Result">
<short/>
</element>
<element name="TBrush.GetColor">
<short>Gets the value for the Color property.</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.GetColor.Result">
<short/>
</element>
<element name="TBrush.ReferenceNeeded">
<short>
Ensures that resources are allocated for the Reference property.
</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.SetHandle">
<short>Sets the value for the Handle property.</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.SetHandle.Value">
<short>New value for the property.</short>
</element>
<element name="TBrush.DoChange">
<short>Performs action needed when the Brush is changed.</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.DoChange.Msg">
<short/>
</element>
<element name="TBrush.DoAllocateResources">
<short>
Performs actions needed to allocate (or reallocate) resources for the brush
instance.
</short>
<descr/>
<seealso>
<link id="TBrush.Reference"/>
<link id="TBrush.Handle"/>
</seealso>
</element>
<element name="TBrush.DoDeAllocateResources">
<short>
Performs actions to free resources allocated for the brush instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.DoCopyProps">
<short>
Copies properties from the specified FCL brush into the current class instance.
</short>
<descr>
<p>
<var>DoCopyProps</var> is an overridden method in <var>TBrush</var> used to
copy properties from the brush instance in <var>From</var> to the current
brush instance. If From is derived from TBrush, it ensures that the Handle in
Reference is freed prior to copying values and calls the Changed method when
the operation has been completed.
</p>
<p>
DoCopyProps calls the inherited method to copy values for the Style, Image,
and Color properties.
</p>
<p>
DoCopyProps is called from the CopyBrush method in the ancestor class.
</p>
</descr>
<seealso/>
</element>
<element name="TBrush.DoCopyProps.From">
<short>
TFPCanvasHelper instance with the properties copied in the method.
</short>
</element>
<element name="TBrush.SetColor">
<short>Sets the value for the Color property.</short>
<descr>
<p>
An overloaded variant provides both <var>TColor</var> and <var>TFPColor</var>
values. It is used to set the color by calling the <var>SetFPColor</var>
method in the ancestor class. No actions are performed in the method when the
values in <var>Color</var> and <var>FPColor</var> have not been changed and
the brush <var>Style</var> contains <var>bsClear</var>.
</p>
<p>
Frees the brush handle in the <var>References</var> property, and sets the
value in <var>Bitmap</var> to <b>Nil</b>. Calls the inherited
<var>SetStyle</var> method when Style is bsClear. Calls <var>Changed</var> to
signal the <var>OnChange</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TBrush.Color"/>
<link id="TBrush.Style"/>
<link id="TBrush.Reference"/>
<link id="TBrush.Bitmap"/>
</seealso>
</element>
<element name="TBrush.SetColor.Value">
<short>New value for the property.</short>
</element>
<element name="TBrush.SetColor.NewColor">
<short>TColor value applied to the brush Color.</short>
</element>
<element name="TBrush.SetColor.NewFPColor">
<short>TFPColor value applied to the brush Color.</short>
</element>
<element name="TBrush.SetFPColor">
<short>Sets the Brush color to the specified TFPColor value.</short>
<descr>
<p>
<var>SetFPColor</var> is an overridden method used to set the color using the
<var>TFPColor</var> value in <var>AValue</var>. Calls FPColorToTColor to
convert AValue to a TColor value, and applies it to the Color property.
</p>
</descr>
<seealso>
<link id="TColor"/>
<link id="TBrush.Color"/>
<link id="TBrush.SetColor"/>
</seealso>
</element>
<element name="TBrush.SetFPColor.AValue">
<short>Color value applied to the Color property.</short>
</element>
<element name="TBrush.SetBitmap">
<short>Sets the value for the Bitmap property.</short>
<descr/>
<seealso>
<link id="TBrush.Bitmap"/>
</seealso>
</element>
<element name="TBrush.SetBitmap.Value">
<short>New value for the property.</short>
</element>
<element name="TBrush.SetStyle">
<short>Sets the value for the Style property.</short>
<descr/>
<seealso>
<link id="TBrush.Style"/>
</seealso>
</element>
<element name="TBrush.SetStyle.Value">
<short>New value for the property.</short>
</element>
<element name="TBrush.Assign">
<short>
Copies values from Source to the current brush instance.
</short>
<descr>
<p>
<var>Assign</var> is a procedure used to copy properties values from
<var>Source</var> to the current brush instance.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TBrush.Assign.Source">
<short>Brush instance with values copied in the method.</short>
</element>
<element name="TBrush.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 constructor on entry, and sets the default values
for properties including:
</p>
<dl>
<dt>Bitmap</dt>
<dd>Set to Nil.</dd>
<dt>Color</dt>
<dd>Set to clWhite. The inherited SetFPColor method is called to apply the
new value.</dd>
<dt>Style</dt>
<dd>The default value is bsSolid, and the inherited SetStyle method is called
to apply the value in ancestor classes.
</dd>
</dl>
<p>
Create sets the value in <var>DelayAllocate</var> to <b>True</b> to defer
resource allocation until the brush is used. The internal counter used to
track updates is reset.
</p>
</descr>
<seealso>
<link id="#rtl.System.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TBrush.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy frees the handle for the brush in the <var>Reference</var> property,
and calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Destroy">TPersistent.Destroy</link>
</seealso>
</element>
<element name="TBrush.EqualsBrush">
<short>Compares the specified Brush to the current class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TBrush.EqualsBrush.Result">
<short>
<b>True</b> when the properties from the specified brush match the values in
the current class instance.
</short>
</element>
<element name="TBrush.EqualsBrush.ABrush">
<short>Brush instance compared to the current class.</short>
</element>
<element name="TBrush.Bitmap">
<short>Bitmap with the pattern for the Brush.</short>
<descr>
<p>
<var>Bitmap</var> is a <var>TCustomBitmap</var> property which contains the
pattern used to draw the brush, and is generally used to fill shapes or
rectangular areas.
</p>
<p>
When assigned, the Bitmap image is used to draw the brush pattern instead of
using the <var>Style</var> for brush. Setting a value for the property causes
values in <var>Color</var> and <var>Style</var> to be reset. Color is set to
<var>clWhite</var>, and the brush Style is set to <var>bsSolid</var>. The
Handle for the brush is freed, and the <var>Changed</var> method is called to
signal the <var>OnChange</var> event handler (when assigned).
</p>
<p>
The image in Bitmap is discarded when a new value is assigned to the Style
property.
</p>
</descr>
<seealso>
<link id="TBrush.Style"/>
<link id="TBrush.Color"/>
</seealso>
</element>
<element name="TBrush.Handle">
<short>Operating System handle for the brush.</short>
<descr>
<p>
<var>Handle</var> is a <var>HBRUSH</var> property which contains the handle
allocated for the brush.
</p>
<remark>
Handle has been marked as deprecated. Use the Reference property to access the
handle for the brush.
</remark>
</descr>
<seealso>
<link id="TBrush.Reference"/>
</seealso>
</element>
<element name="TBrush.Reference">
<short>Contains a Reference to the handle allocated for the Brush.</short>
<descr>
<p>
<var>Reference</var> is a read-only <var>TWSBrushReference</var> property
which contains a reference to the widgetset class used for the brush
instance. It provides access to the Handle allocated for the brush resource,
and is used in methods that need access to an existing brush handle.
</p>
<p>
Resources for the property are allocated (when needed) and initialized by
calling the ReferenceNeeded method. The resources are freed in the
FreeReference method.
</p>
</descr>
<seealso>
<link id="TBrush.Handle"/>
</seealso>
</element>
<element name="TBrush.Color">
<short>
The <var>Color</var> of the current <var>Brush</var>.
</short>
<descr>
<p>
<var>Color</var> is a <var>TColor</var> property with the color used to draw
the brush pattern indicated in the <var>Style</var> property. It is the
background or fill color when Style contains <var>bsSolid</var>. Color is not
used when Style is set to <var>bsClear</var>; in fact, the brush style in
<var>TFPCustomBrush</var> ancestor is actually set to <var>bsSolid</var>.
</p>
<p>
Setting a new value for the property causes an existing brush handle in
<var>Reference</var> to be freed, and the pattern image in <var>Bitmap</var>
is discarded.
</p>
<p>
The default value for the property is <var>clWhite</var>. The default
property value is restored when a new value is assigned to the Bitmap
property.
</p>
</descr>
<seealso>
<link id="TBrush.Style"/>
<link id="TBrush.Bitmap"/>
<link id="TBrush.Reference"/>
<link id="TBrush.Handle"/>
</seealso>
</element>
<element name="TBrush.Style">
<short>Indicates the pattern drawn using the brush.</short>
<descr>
<p>
<var>Style</var> is a <var>TFPBrushStyle</var> property which indicates the
pattern drawn using the brush. Style contains one of the enumeration values
defined in the FCL. The enumeration values are introduced as constants in the LCL, and include:
</p>
<ul>
<li>bsSolid</li>
<li>bsClear</li>
<li>bsHorizontal</li>
<li>bsVertical</li>
<li>bsFDiagonal</li>
<li>bsBDiagonal</li>
<li>bsCross</li>
<li>bsDiagCross</li>
<li>bsImage</li>
<li>bsPattern</li>
</ul>
<p>
Setting a new value in Style causes the brush Handle in Reference to be freed.
The image in Bitmap is also discarded by setting the member to <b>Nil</b>. The
<var>Changed</var> method is called to signal the <var>OnChange</var> event
handler (when assigned).
</p>
<p>
The default value for the property is <var>bsSolid</var>. The value in Style
is automatically set to <var>bsSolid</var> when a value is assigned to the
<var>Bitmap</var> property.
</p>
</descr>
<seealso>
<link id="TBrush.Bitmap"/>
<link id="TBrushStyle"/>
<link id="bsSolid"/>
<link id="bsClear"/>
<link id="bsHorizontal"/>
<link id="bsVertical"/>
<link id="bsFDiagonal"/>
<link id="bsBDiagonal"/>
<link id="bsCross"/>
<link id="bsDiagCross"/>
<link id="bsImage"/>
<link id="bsPattern"/>
</seealso>
</element>
<element name="TRegionCombineMode">
<short>Represents combination methods used for regions.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionCombineMode.rgnAnd">
<short>
Create a region with the intersecting parts of the original regions.
</short>
</element>
<element name="TRegionCombineMode.rgnCopy">
<short>
Create a region that is a copy of the first of the two original regions.
</short>
</element>
<element name="TRegionCombineMode.rgnDiff">
<short>
Create a region with the area in the first region not found in the second
region.
</short>
</element>
<element name="TRegionCombineMode.rgnOr">
<short>Create a region that represents both of the original regions.</short>
</element>
<element name="TRegionCombineMode.rgnXOR">
<short>
Create a region with the areas from the original regions that do not overlap.
</short>
</element>
<element name="TRegionOperationType">
<short>Represents Region operators used in TRegionOperation.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperationType.rgnNewRect">
<short>Create a new bounding box for the region.</short>
</element>
<element name="TRegionOperationType.rgnCombine">
<short>Create a new region using the combine mode for an operation.</short>
</element>
<element name="TRegionOperation">
<short>Represents a region operation.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperation.ROType">
<short>Raster operation type.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperation.Source1">
<short>Index to a source region.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperation.Source2">
<short>Index to a source region.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperation.Dest">
<short>Index to the destination region.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperation.CombineMode">
<short>Region combine mode for the operation.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperation.Rect">
<short>Rectangle with the bounding box for the destination region.</short>
<descr/>
<seealso/>
</element>
<element name="TRegionOperations">
<short>Array type used to store TRegionOpertation elements.</short>
<descr/>
<seealso/>
</element>
<element name="TRegion">
<short>
A defined area on a screen or canvas used to render a graphic image or text
output.
</short>
<descr>
<p>
<var>TRegion</var> is a <var>TGraphicsObject</var> descendant which represents
shaped areas that can be drawn, filled, or examined on a screen or canvas. The
shaped areas can be one or more rectangles, and can overlap.
</p>
<p>
Use <var>AddRectangle</var> to create and combine a new rectangular area with
the existing areas in the region. Each region has a <var>Handle</var> which
identifies the construct. It is modified when a new rectangular area is added
to the region.
</p>
<p>
TRegion is the type used to implement the <var>Region</var> propriety in
<var>TCanvas</var>, and passed as an argument to the <var>SetShape</var>
method in <var>TWinControl</var>.
</p>
<remark>
Some operating systems and widgetsets allow regions to be defined with
ellipses, rounded rectangles, and polygons as the sub-regions. TRegion is
limited to the rectangle with the area that is the bounding box for a shape.
See <var>TLazRegion</var> in <file>LazRegions.pas</file> and
<var>TLazCanvas</var> in <file>LazCanvas.pas</file> for alternate
implementations that provide these capabilities.
</remark>
</descr>
<seealso/>
</element>
<element name="TRegion.FReference"/>
<element name="TRegion.AddOperation">
<short>Adds the specified operation to the region.</short>
<descr>
<p>
AddOperation is an empty implementation in the current LCL version.
</p>
</descr>
<seealso/>
</element>
<element name="TRegion.AddOperation.AOp">
<short/>
</element>
<element name="TRegion.ClearSubRegions">
<short>Clears sub-regions defined for the region.</short>
<descr>
<p>
ClearSubRegions is an empty implementation in the current LCL version.
</p>
</descr>
<seealso/>
</element>
<element name="TRegion.AddSubRegion">
<short>Adds a sub-region with the specified handle to the region .</short>
<descr>
<p>
<var>AddSubRegion</var> is an empty implementation in the current LCL version.
</p>
</descr>
<seealso/>
<seealso/>
</element>
<element name="TRegion.AddSubRegion.AHandle">
<short/>
</element>
<element name="TRegion.FreeReference">
<short>Frees the Region Reference in the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TRegion.GetReference">
<short>Gets the value for the Reference property.</short>
<descr/>
<seealso>
<link id="TRegion.Reference"/>
</seealso>
</element>
<element name="TRegion.GetReference.Result">
<short>Value for the property.</short>
</element>
<element name="TRegion.GetHandle">
<short>Gets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TRegion.Handle"/>
</seealso>
</element>
<element name="TRegion.GetHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TRegion.ReferenceNeeded">
<short>
Ensures that resources are allocated in Reference for the region.
</short>
<descr/>
<seealso/>
</element>
<element name="TRegion.SetHandle">
<short>Sets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TRegion.Handle"/>
</seealso>
</element>
<element name="TRegion.SetHandle.Value">
<short>New value for the property.</short>
</element>
<element name="TRegion.SetClipRect">
<short>Sets the value for the ClipRect property.</short>
<descr/>
<seealso>
<link id="TRegion.ClipRect"/>
</seealso>
</element>
<element name="TRegion.SetClipRect.value">
<short>New value for the property.</short>
</element>
<element name="TRegion.GetClipRect">
<short>Gets the value for the ClipRect property.</short>
<descr/>
<seealso>
<link id="TRegion.ClipRect"/>
</seealso>
</element>
<element name="TRegion.GetClipRect.Result">
<short>Value for the property.</short>
</element>
<element name="TRegion.Create">
<short>Constructor for the class instance.</short>
<descr/>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TRegion.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance. It
calls FreeReference to free resources allocated for the Reference, and calls
the inherited destructor prior to exit.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TPersistent.Destroy">TPersistent.Destroy</link>
</seealso>
</element>
<element name="TRegion.Assign">
<short>
<var>Assign</var> - if
<var>Source</var> is another
<var>TRegion</var>, copies the dimensions of the clipping rectangle.
</short>
<descr/>
<seealso>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TRegion.Assign.Source">
<short>Persistent object with properties copied in the method.</short>
</element>
<element name="TRegion.AddRectangle">
<short>Convenience routine to add a rectangle to the region.</short>
<descr>
<p>
Gets a handle for the rectangular defined by the opposing corners with the X1,
Y1, X2, and Y2 coordinates. The new region handle is OR-ed with the existing
handle for the region.
</p>
<p>
Calls ReferenceNeeded to ensure that the handle for the region has been
allocated.
</p>
<p>
Discards the new region handle by calling DeleteObject.
</p>
</descr>
<seealso/>
</element>
<element name="TRegion.AddRectangle.X1">
<short>Horizontal coordinate for one corner of the rectangular area.</short>
</element>
<element name="TRegion.AddRectangle.Y1">
<short>Vertical coordinate for one corner of the rectangular area.</short>
</element>
<element name="TRegion.AddRectangle.X2">
<short>
Horizontal coordinate for the opposing corner of the rectangular area.
</short>
</element>
<element name="TRegion.AddRectangle.Y2">
<short>
Vertical coordinate for the opposing corner of the rectangular area.
</short>
</element>
<element name="TRegion.ClipRect">
<short>The clipping rectangle for the region.</short>
<descr/>
<seealso/>
</element>
<element name="TRegion.Handle">
<short>Operating System Handle for the region.</short>
<descr/>
<seealso>
<link id="#lcl.lcltype.HRGN">HRGN</link>
<link id="#rtl.sysutils.THandle">THandle</link>
</seealso>
</element>
<element name="TRegion.Reference">
<short>A <var>Reference</var> to the current Region.</short>
<descr/>
<seealso/>
</element>
<element name="TGraphic">
<short>Abstract base class used for images in supported image formats.
</short>
<descr>
<p>
The <var>TGraphic</var> class is an <b>abstract</b> base class for graphic
images in image formats supported in the LCL. TGraphic establishes an API
that is used in the LCL to read and write image data using a file, stream,
resource, or the clipboard. Many of its methods are defined as <b>virtual</b>
and/or <b>abstract</b>, and must be implemented (or re-implemented) in
descendent classes to provide support for specific image formats.
</p>
<p>
Methods defined in TGraphic include:
</p>
<ul>
<li>LoadFromFile</li>
<li>LoadFromStream</li>
<li>LoadFromMimeStream</li>
<li>LoadFromLazarusResource</li>
<li>LoadFromResourceName</li>
<li>LoadFromResourceID</li>
<li>LoadFromClipboardFormat</li>
<li>LoadFromClipboardFormatID</li>
<li>SaveToFile</li>
<li>SaveToStream</li>
<li>SaveToClipboardFormat</li>
<li>SaveToClipboardFormatID</li>
<li>GetSupportedSourceMimeTypes</li>
<li>GetResourceType</li>
<li>GetFileExtensions</li>
<li>IsStreamFormatSupported</li>
</ul>
<p>
TGraphic does <b>not</b> contain a mechanism for displaying or rendering an
image. This capability is implemented in descendent classes which provide a
<var>TCanvas</var> suitable for the image data, such as: TRasterImage,
TBitmap, TIcon, TPixmap, TJPegImage, TGifImage, et. al.
</p>
<p>
Properties common to most image formats are defined in the class, and include:
</p>
<ul>
<li>Height</li>
<li>Width</li>
<li>Modified</li>
<li>Empty</li>
<li>MimeType</li>
<li>Palette</li>
<li>PaletteModified</li>
<li>Transparent</li>
</ul>
<p>Event handlers are provided for change and progress notifications,
including:
</p>
<ul>
<li>OnChange</li>
<li>OnProgress</li>
</ul>
<p>
TGraphic is the type used to implement the Graphic property in TPicture, and
passed as an argument to methods in TCanvas.
</p>
</descr>
<seealso>
<link id="TPicture"/>
<link id="TBitmap"/>
<link id="TIcon"/>
<link id="TJpegImage"/>
<link id="TGIFImage"/>
<link id="TPixmap"/>
<link id="TPortableNetworkGraphic"/>
<link id="TPortableAnyMapGraphic"/>
<link id="TCanvas"/>
</seealso>
</element>
<!-- private -->
<element name="TGraphic.FModified"/>
<element name="TGraphic.FTransparent"/>
<element name="TGraphic.FOnChange"/>
<element name="TGraphic.FOnProgress"/>
<element name="TGraphic.FPaletteModified"/>
<element name="TGraphic.Changed">
<short>Performs action needed when the image data has changed.
</short>
<descr>
<p>
<var>Changed</var> is a procedure used to perform actions needed when the
image data for the class instance has been changed. Changed sets the value in
<var>Modified</var> to <b>True</b>, and signals the <var>OnChange</var> event
handler (when assigned).
</p>
<p>
Changed is called when the value in Modified is changed from <b>False</b> to
<b>True</b>.
</p>
</descr>
<seealso>
<link id="TGraphic.Modified"/>
</seealso>
</element>
<element name="TGraphic.Changed.Sender">
<short>Object for the change notification.</short>
</element>
<element name="TGraphic.Equals">
<short>
Determines if the specified class instance is the same as the current class
instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphic.Equals.Result">
<short>
<b>True</b> when the specified object the same instance as the current class.
</short>
</element>
<element name="TGraphic.Equals.Graphic">
<short>TGraphics instance compared in the method.</short>
</element>
<element name="TGraphic.Equals.Obj">
<short>TObject instance compared in the method.</short>
</element>
<element name="TGraphic.DefineProperties">
<short>
<var>DefineProperties</var> finds out whether the object really is a binary
(graphic).
</short>
<descr>
<p>
Ensures that ReadData and WriteData are used to read the binary values for
image data in TGraphic instances. Calls the DefineBinaryProperty method in
Filer to set the read and write procedures for the data.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.DefineProperties.Filer">
<short>
TFiler instance used to read and write property values during component
streaming.
</short>
</element>
<element name="TGraphic.Draw">
<short>
Method used to draw the Graphic on the specified Canvas, in the specified
Rectangle.
</short>
<descr>
<p>
<var>Draw</var> is an <b>abstract virtual</b> procedure used to render data
in the graphic to the specified Canvas using the given coordinate rectangle.
Draw must be implemented in a descendent class to perform actions required
for a specific image format.
</p>
<p>
<var>Canvas</var> is the <var>TCanvas</var> instance where the graphic is
rendered.
</p>
<p>
<var>Rect</var> is a <var>TRect</var> instance with the coordinates where
graphic is drawn on the Canvas.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.Draw.ACanvas">
<short>Canvas used to render the graphic.</short>
</element>
<element name="TGraphic.Draw.Rect">
<short>Canvas coordinates where the graphic is drawn.</short>
</element>
<element name="TGraphic.GetEmpty">
<short>
Gets the value for the Empty property.
</short>
<descr>
<p>
<var>GetEmpty</var> is an <b>abstract virtual</b> <var>Boolean</var> function
used to get the value for the Empty property. The return value is <b>True</b>
when no image data exists for the graphic.
</p>
<p>
GetEmpty must be implemented in a descendent class to provide support for a
specific image format.
</p>
</descr>
<seealso>
<link id="TGraphic.Empty"/>
</seealso>
</element>
<element name="TGraphic.GetEmpty.Result">
<short><b>True</b> when no data exists in the graphic.</short>
</element>
<element name="TGraphic.GetHeight">
<short>Gets the value for the Height property.</short>
<descr/>
<seealso>
<link id="TGraphic.Height"/>
</seealso>
</element>
<element name="TGraphic.GetHeight.Result">
<short>Value for the property.</short>
</element>
<element name="TGraphic.GetMimeType">
<short>Gets the value for the MimeType property.</short>
<descr/>
<seealso>
<link id="TGraphic.MimeType"/>
</seealso>
</element>
<element name="TGraphic.GetMimeType.Result">
<short/>
</element>
<element name="TGraphic.GetPalette">
<short>Gets the value for the Palette property.</short>
<descr>
<p>Always returns 0 (representing an unassigned handle) in TGraphic.
</p>
</descr>
<seealso>
<link id="TGraphic.Palette"/>
</seealso>
</element>
<element name="TGraphic.GetPalette.Result">
<short>Value for the property.</short>
</element>
<element name="TGraphic.GetTransparent">
<short>Gets the value for the Transparent property.</short>
<descr/>
<seealso>
<link id="TGraphic.Transparent"/>
</seealso>
</element>
<element name="TGraphic.GetTransparent.Result">
<short>Value for the property.</short>
</element>
<element name="TGraphic.GetWidth">
<short>Gets the value for the Width property.</short>
<descr/>
<seealso>
<link id="TGraphic.Width"/>
</seealso>
</element>
<element name="TGraphic.GetWidth.Result">
<short>Value for the property.</short>
</element>
<element name="TGraphic.Progress">
<short>Monitor the <var>Progress</var> of the drawing.</short>
<descr>
<p>
<var>Progress</var> is an overloaded procedure used to perform actions needed
for progress notifications for the class instance. Arguments passed to the
method identify the class instance, the progress step, the completion amount,
and display options for the notification.
</p>
<p>
Progress signals the <var>OnProgress</var> event handler (when assigned)
using the parameter values as arguments. Applications must implement an
OnProgress event handler to respond to the progress notification.
</p>
<p>
Progress is a virtual method, and can be overridden in a descendent class to
preform any actions needed when reading or writing image data for a specific
image format.
</p>
<remark>
Please note the data type used for the PercentDone argument. It is declared
as a Byte type, and will accept a value that exceeds 100.
</remark>
</descr>
<seealso>
<link id="TGraphic.OnProgress"/>
<link id="TProgressEvent"/>
</seealso>
</element>
<element name="TGraphic.Progress.Sender">
<short>Object for the notification.</short>
</element>
<element name="TGraphic.Progress.Stage">
<short>Indicates whether an operation is starting, running, or ending.</short>
</element>
<element name="TGraphic.Progress.PercentDone">
<short>Completion percentage for the progress step.</short>
</element>
<element name="TGraphic.Progress.RedrawNow">
<short>Indicates if the application should redraw the image.</short>
</element>
<element name="TGraphic.Progress.R">
<short>Rectangle with the coordinates affected by the progress step.</short>
</element>
<element name="TGraphic.Progress.Msg">
<short>Message for the progress notification.</short>
</element>
<element name="TGraphic.Progress.DoContinue">
<short>Indicates if the caller should continue the current operation.</short>
</element>
<element name="TGraphic.ReadData">
<short>
<var>ReadData</var> - reads data for the Graphic from a stream.
</short>
<descr>
<p>
<var>ReadData</var> is a procedure used to read binary data for the graphic
from the specified stream. It is used by the
<var>TFiler</var> instance which loads data during component streaming.
</p>
<p>
ReadData calls <var>LoadFromStream</var> to complete the operation.
</p>
</descr>
<seealso>
<link id="TGraphic.LoadFromStream"/>
<link id="TGraphic.WriteData"/>
</seealso>
</element>
<element name="TGraphic.ReadData.Stream">
<short>TStream instance where data for the graphic is stored.</short>
</element>
<element name="TGraphic.SetHeight">
<short>Sets the value for the Height Property.</short>
<descr>
<p>
<var>SetHeight</var> is an abstract virtual method, and must be implemented
in a descendent class.
</p>
</descr>
<seealso>
<link id="TGraphic.Height"/>
</seealso>
</element>
<element name="TGraphic.SetHeight.Value">
<short>New value for the property.</short>
</element>
<element name="TGraphic.SetPalette">
<short>Sets the value for the Palette property.</short>
<descr>
<p>
SetPalette is an empty implementation in TGraphic.
</p>
</descr>
<seealso>
<link id="TGraphic.Palette"/>
</seealso>
</element>
<element name="TGraphic.SetPalette.Value">
<short>New value for the property.</short>
</element>
<element name="TGraphic.SetTransparent">
<short>Sets the value for the Transparent property.</short>
<descr>
<p>
<var>SetTransparent</var> is an <b>abstract virtual</b> method, and must be
implemented in a descendent class.
</p>
</descr>
<seealso>
<link id="TGraphic.Transparent"/>
</seealso>
</element>
<element name="TGraphic.SetTransparent.Value">
<short>New value for the property.</short>
</element>
<element name="TGraphic.SetWidth">
<short>Sets the value for the Width property.</short>
<descr>
<p>
<var>SetWidth</var> is an <b>abstract virtual</b> method, and must be
implemented in a descendent class.
</p>
</descr>
<seealso>
<link id="TGraphic.Width"/>
</seealso>
</element>
<element name="TGraphic.SetWidth.Value">
<short>New value for the property.</short>
</element>
<element name="TGraphic.SetModified">
<short>Sets the value for the Modified property.</short>
<descr/>
<seealso>
<link id="TGraphic.Modified"/>
</seealso>
</element>
<element name="TGraphic.SetModified.Value">
<short>Value for the property.</short>
</element>
<element name="TGraphic.WriteData">
<short>
Writes the data for the Graphic to a stream.
</short>
<descr>
<p>
Used by the TFiler instance for the class during LCL component streaming.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.WriteData.Stream">
<short>
TStream instance where the data for the class instance is written.
</short>
</element>
<element name="TGraphic.Assign">
<short>
Implements object persistence for the TGraphic type.
</short>
<descr>
<p>
<var>Assign</var> is an overridden method in <var>TGraphic</var>. It ensures
that the inherited Assign method is not called if the object instance in
<var>ASource</var> has not been assigned. If ASource contains <b>Nil</b>, the
Clear method is called. If ASource has an assigned value, the inherited Assign
method is called to copy property values from ASource into the current class
instance.
</p>
</descr>
<seealso>
<link id="TGraphic.Clear"/>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TGraphic.Assign.ASource">
<short>Persistent object with property values copied in the method.</short>
</element>
<element name="TGraphic.Clear">
<short>
Clear has an empty implementation in TGraphic.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphic.Create">
<short>
Constructor for the class instance.
</short>
<descr>
<p>
Create is a <b>virtual</b> method in TGraphic; it is recommended that a
constructor be supplied to <b>override</b> this method in descendent classes.
</p>
</descr>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TGraphic.LazarusResourceTypeValid">
<short>
Determines if the specified resource type is valid for the image format.
</short>
<descr>
<p>
<var>LazarusResourceTypeValid</var> is a Boolean function used to determine
if the specified resource type is valid for the image format.
</p>
<p>
LazarusResourceTypeValid always returns <b>False</b> in <var>TGraphic</var>.
The method must be overridden in descendent classes to check for resource
type(s) supported for a specific image format.
</p>
</descr>
<seealso>
<link id="TCustomBitmap.LazarusResourceTypeValid"/>
<link id="TFPImageBitmap.LazarusResourceTypeValid"/>
<link id="TCustomIcon.LazarusResourceTypeValid"/>
<link id="TIcnsIcon.LazarusResourceTypeValid"/>
<link id="TCursorImage.LazarusResourceTypeValid"/>
</seealso>
</element>
<element name="TGraphic.LazarusResourceTypeValid.Result">
<short>
Returns <b>True</b> when ResourceType is supported in the image format.
</short>
</element>
<element name="TGraphic.LazarusResourceTypeValid.AResourceType">
<short>The resource type examined in the method.</short>
</element>
<element name="TGraphic.LoadFromFile">
<short>Reads data for the graphic from a file.</short>
<descr>
<p>
<var>LoadFromFile</var> reads data for the graphic from the local file system.
<var>FileName</var> contains the name of the file on the local file system
with data for the graphic, and may contain UTF-8-encoded characters in the
file name.
</p>
<p>
LoadFromFile creates a temporary <var>TFileStreamUTF8</var> instance that is
used to read the contents of the file by calling <var>LoadFromStream</var>.
Any existing image data in the class instance is discarded. An Exception can
be raised in LoadFromStream if Filename does not contain a valid file name.
</p>
</descr>
<errors>
Raises an Exception if an invalid file name is passed to the method.
</errors>
<seealso>
<link id="TGraphic.LoadFromStream"/>
<link id="TGraphic.LoadFromMimeStream"/>
<link id="TGraphic.LoadFromResourceName"/>
<link id="TGraphic.LoadFromLazarusResource"/>
<link id="TGraphic.LoadFromClipboardFormat"/>
<link id="TGraphic.SaveToFile"/>
</seealso>
</element>
<element name="TGraphic.LoadFromFile.Filename">
<short>The name of the file containing the graphic data.</short>
</element>
<element name="TGraphic.LoadFromStream">
<short>Reads graphic data from a stream.</short>
<descr>
<p>
<var>LoadFromStream</var> is an abstract virtual method used to load graphic
data from the stream instance specified in <var>Stream</var>. It must be
implemented in a descendent class to provide support for reading a specific
image format from the stream.
</p>
<p>
LoadFromStream is used in the implementation of methods like:
<var>ReadData</var>, <var>LoadFromMimeStream</var>,
<var>LoadFromResourceID</var>, <var>LoadFromResourceName</var>,
<var>LoadFromLazarusResource</var>, and <var>LoadFromFile</var>.
</p>
</descr>
<seealso>
<link id="TGraphic.LoadFromFile"/>
<link id="TGraphic.LoadFromLazarusResource"/>
<link id="TGraphic.LoadFromMimeStream"/>
<link id="TGraphic.LoadFromResourceID"/>
<link id="TGraphic.LoadFromResourceName"/>
<link id="TGraphic.ReadData"/>
</seealso>
</element>
<element name="TGraphic.LoadFromStream.Stream">
<short>TStream instance with the graphic data read in the method.</short>
</element>
<element name="TGraphic.LoadFromMimeStream">
<short>Loads the from the specified stream for the given MIME type.</short>
<descr>
<p>
<var>LoadFromMimeStream</var> reads graphic data from a stream for the given
MIME type. LoadFromMimeStream compares the value in AMimeType to the value in
the MimeType property. When the values are the same, the LoadFromStream
method is called the load the image data for the graphic from the stream in
AStream.
</p>
<p>
In TGraphic, an <var>EInvalidGraphic</var> is raised when AMimeType contains
any value other than an empty string (<b>''</b>).
</p>
<remark>
Must be overridden in a descendent class to provide support for a MIME type
representing a specific image format.
</remark>
</descr>
<seealso/>
</element>
<element name="TGraphic.LoadFromMimeStream.AStream">
<short>Stream with the content loaded in the method.</short>
</element>
<element name="TGraphic.LoadFromMimeStream.AMimeType">
<short>MIME type representing the stream content.</short>
</element>
<element name="TGraphic.LoadFromLazarusResource">
<short>Load the graphic data from a Lazarus Resource (.lrs) file.</short>
<descr/>
<seealso/>
</element>
<element name="TGraphic.LoadFromLazarusResource.ResName">
<short>Name of the .lrs file with the content loaded in the method.</short>
</element>
<element name="TGraphic.LoadFromResourceName">
<short>
Loads a resource with the specified name from the given handle.
</short>
<descr>
<p>
<var>LoadFromResourceName</var> is a procedure used to load a resource with
the name specified in <var>ResName</var> using the handle provided in
<var>Instance</var>. LoadFromResourceName calls <var>GetResourceType</var> to
get the <var>Integer</var> resource type used in the class instance. No
actions are performed in the method when the <var>TResourceType</var> value is
unassigned (contains <b>Nil</b>).
</p>
<p>
LoadFromResourceName creates a temporary <var>TResourceStream</var> that is
used to load the content for the class instance by calling the
<var>LoadFromStream</var> method.
</p>
<p>
Use <var>LoadFromResourceID</var> to load a resource by its Resource ID.
</p>
<p>
Use <var>LoadFromLazarusResource</var> to load a Lazarus resource from a
<b>.lrs</b> file with a give name.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="TGraphic.GetResourceType"/>
<link id="TGraphic.LoadFromStream"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
<link id="#rtl.classes.TResourceStream">TResourceStream</link>
</seealso>
</element>
<element name="TGraphic.LoadFromResourceName.Instance">
<short>Handle where the content for the resource is stored.</short>
</element>
<element name="TGraphic.LoadFromResourceName.ResName">
<short>Name for the resource loaded in the method.</short>
</element>
<element name="TGraphic.LoadFromResourceID">
<short>
Loads graphic data from a resource identified by the integer identifier
<var>ResID</var>.
</short>
<descr>
<p>
LoadFromResourceID is a procedure used to load a resource with the specified
Resource ID into the class instance. Instance contains the Handle used to
read the resource. LoadFromResourceName calls <var>GetResourceType</var> to
get the <var>Integer</var> resource type used in the class instance. No
actions are performed in the method when the <var>TResourceType</var> value
is unassigned (contains <b>Nil</b>).
</p>
<p>
LoadFromResourceName creates a temporary <var>TResourceStream</var> that is
used to load the content for the class instance by calling the
<var>LoadFromStream</var> method. The value in ResID is located in the
resource, and its resource handle is used to get the content stored in the
stream.
</p>
<p>
An EResNotFound exception is raised during stream initialization if the
resource type or the resource handle is invalid.
</p>
<p>
Use <var>LoadFromResourceName</var> to load a resource with a given resource
name.
</p>
<p>
Use <var>LoadFromLazarusResource</var> to load a Lazarus resource from a
<b>.lrs</b> file with a give name.
</p>
</descr>
<errors>
Raises an EResNotFound exception when the TResourceStream is initialized if
the resource type or the resource handle is invalid.
</errors>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="TGraphic.GetResourceType"/>
<link id="TGraphic.LoadFromStream"/>
<link id="TGraphic.LoadFromResourceName"/>
<link id="TGraphic.LoadFromLazarusResource"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
<link id="#rtl.classes.TResourceStream">TResourceStream</link>
</seealso>
</element>
<element name="TGraphic.LoadFromResourceID.Instance">
<short>Handle where the content for the resource is stored.</short>
</element>
<element name="TGraphic.LoadFromResourceID.ResID">
<short>Pointer to the Integer Resource ID for the resource.</short>
</element>
<element name="TGraphic.LoadFromClipboardFormat">
<short>
<var>LoadFromClipboardFormat</var> - Replace the current image with the
contents of the clipboard.
</short>
<descr>
<p>
<var>LoadFromClipboardFormat</var> - Replaces the current image with the data
provided from the clipboard.
</p>
</descr>
<errors>
If the <var>TGraphic</var> does not support that format it will generate an
exception.
</errors>
<seealso/>
</element>
<element name="TGraphic.LoadFromClipboardFormat.FormatID">
<short/>
</element>
<element name="TGraphic.LoadFromClipboardFormatID">
<short>
Load the data from the clipboard using the format type specified by
<var>ClipboardType</var> and the format identifier <var>FormatID</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphic.LoadFromClipboardFormatID.ClipboardType">
<short/>
</element>
<element name="TGraphic.LoadFromClipboardFormatID.FormatID">
<short/>
</element>
<element name="TGraphic.SaveToFile">
<short>Writes graphic data to the specified file name.</short>
<descr>
<p>
<var>SaveToFile</var> is a procedure used to write the graphic data in the
class instance to the specified file name. <var>Filename</var> is the
fully-qualified file name on the local file system where the data is stored,
and may contain UTF-8-encoded characters.
</p>
<p>
SaveToFile creates a temporary <var>TFileStreamUTF8</var> instance that is
used to write graphic data by calling the <var>SaveToStream</var> method.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.SaveToFile.Filename">
<short>The name of the file where the graphic data is stored.</short>
</element>
<element name="TGraphic.SaveToStream">
<short>
<var>SaveToStream</var> - write graphic data to a stream.
</short>
<descr>
<p>
<var>SaveToStream</var> is an <b>abstract virtual</b> method in
<var>TGraphic</var>. It must be implemented in a descendent class to provide
support for a specific graphic format.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.SaveToStream.Stream">
<short>Stream instance where the graphic data is stored.</short>
</element>
<element name="TGraphic.SaveToClipboardFormat">
<short>
<var>SaveToClipboardFormats</var> - Converts the image to a clipboard format.
</short>
<descr>
<var>SaveToClipboardFormats</var> - Converts the image to a clipboard format.
</descr>
<errors>If the image does not support being translated into a clipboard
format it will generate an exception
</errors>
<seealso/>
</element>
<element name="TGraphic.SaveToClipboardFormat.FormatID">
<short>Identity of the clipboard format.</short>
</element>
<element name="TGraphic.SaveToClipboardFormatID">
<short>
Saves the data to a clipboard of Type <var>ClipboardType</var> using the
format <var>FormatID</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphic.SaveToClipboardFormatID.ClipboardType">
<short/>
</element>
<element name="TGraphic.SaveToClipboardFormatID.FormatID">
<short/>
</element>
<element name="TGraphic.GetSupportedSourceMimeTypes">
<short>
Gets a list of supported MIME types for data used in the graphic.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphic.GetSupportedSourceMimeTypes.List">
<short/>
</element>
<element name="TGraphic.GetResourceType">
<short>Gets the Integer Resource Type for the class instance.</short>
<descr>
<p>
<var>GetResourceType</var> is a <var>TResourceType</var> function used to get
the resource type identifier for the class instance. It identifies the
storage format used for graphic data in a resource.
</p>
<p>
GetResourceType is declared as a virtual method, and is normally overridden
in descendants to return the resource type identifier for a specific image
format. The return value is <var>RT_RCDATA</var> in <var>TGraphic</var>.
</p>
<p>
GetResourceType is used in the implementation of methods including:
<var>LoadFromResourceID</var> and <var>LoadFromResourceName</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.GetResourceType.Result">
<short>TResourceType value used in the class instance.</short>
</element>
<element name="TGraphic.GetFileExtensions">
<short>Returns a list of the file extensions available.</short>
<descr>
<p>
<var>GetFileExtensions</var> is a <var>String</var> class function used to
get a delimited list of file extensions used for graphic files supported in
the class. The <b>'.'</b> character is omitted from file extension(s), and
extensions are separated by a <b>SemiColon</b> (<b>;</b>) character. For
example:
</p>
<code>'jpeg;jpg;jpe;jfif'</code>
<p>
GetFileExtensions is declared as a virtual class method, and is overridden in
descendants to return the value(s) used for the supported graphic format. In
TGraphic, the return value is always an empty string (<b>''</b>).
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.GetFileExtensions.Result">
<short>
File extensions supported for the graphic format used in the class.
</short>
</element>
<element name="TGraphic.IsStreamFormatSupported">
<short>
Indicates whether the specified stream type is supported in the class.
</short>
<descr>
<p>
<var>IsStreamFormatSupported</var> is a <var>Boolean</var> class function
used to determine if the specified stream contains graphic data in a format
supported in the class.
</p>
<p>
IsStreamFormatSupported is declared as a virtual method, and is overridden in
descendants to check whether the values stored in the stream instance can be
used in the reader and/or writer classes for the graphic format.
</p>
<p>
In general, IsStreamFormatSupported indicates whether the
<var>LoadFromStream</var> method can be successfully used to load graphic
data into the class instance using the specified stream.
</p>
</descr>
<seealso>
<link id="TGraphic.ReadData"/>
<link id="TGraphic.WriteData"/>
<link id="TGraphic.LoadFromStream"/>
</seealso>
</element>
<element name="TGraphic.IsStreamFormatSupported.Result">
<short>
<b>True</b> when the stream contains supported graphic data; otherwise,
<b>False</b>.
</short>
</element>
<element name="TGraphic.IsStreamFormatSupported.Stream">
<short>Stream with content examined in the method.</short>
</element>
<element name="TGraphic.Empty">
<short>Indicates if the graphic is empty (contains no data).</short>
<descr>
<p>
<var>Empty</var> is a read-only <var>Boolean</var> property which indicates
if the graphic is empty (contains no data). The return value is <b>True</b>
when no image data exists for the graphic.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.Height">
<short>The native, unstretched height for the graphic.</short>
<descr>
<p>
<var>Height</var> is an <var>Integer</var> property which contains the
native, unstretched height for the graphic stored in the class instance.
</p>
<p>
Use <var>Width</var> to access the native width for the graphic.
</p>
<remark>
Both the read and write access specifiers for the property are declared as
abstract virtual method in TGraphic. They must be implemented in a descendent
class to provide support for a specific graphic format.
</remark>
</descr>
<seealso/>
</element>
<element name="TGraphic.Modified">
<short>
Indicates if the graphic data in the class instance has been modified.
</short>
<descr>
<p>
<var>Modified</var> is a <var>Boolean</var> property which indicates if the
graphic data in the class instance has been modified. Setting the value in
Modified to <b>True</b> causes the <var>Changed</var> method to be called to
signal the <var>OnChange</var> event handler (when assigned).
</p>
<p>
Modified is updated when methods in descendent classes call the
<var>Changed</var> method.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.MimeType">
<short>
<var>MimeType</var> - the MIME type of the graphic.
</short>
<descr>
<p>
<var>MimeType</var> is a read-only
<var>String</var> property which contains the MIME type (or IANA Media
Type/Subtype) used for the graphic data in the class instance. MimeType is
composed of values representing the general category for the data and a
specification of the exact content for the type. It conforms to the values
defined by the IANA (Internet Assigned Numbers Authority).
</p>
<p>
In <var>TGraphics</var>, the MimeType is always an empty string (<b>''</b>).
In descendent classes, the value indicates that it is in the 'image' category
and uses a subtype with the common extensions for the graphics format. For
example:
</p>
<ul>
<li>'image/bmp'</li>
<li>'image/gif'</li>
<li>'image/jpg'</li>
<li>'image/jpeg'</li>
<li>'image/png'</li>
<li>'image/xpm'</li>
</ul>
</descr>
<seealso/>
</element>
<element name="TGraphic.OnChange">
<short>
Event handler signalled when data in the class instance is changed.
</short>
<descr>
<p>
<var>OnChange</var> is a <var>TNotifyEvent</var> property with an event
handler signalled when data in the class instance is changed.
</p>
<p>
OnChange is triggered from the <var>Changed</var> method (when assigned), and
occurs after values in the class instance have been modified. In
<var>TGraphic</var>, it indicates that the <var>Modified</var> property has
been set to <b>True</b>. In descendent classes, which support specific image
formats and provide a Canvas, it occurs more frequently.
</p>
<p>
Applications must assign an object procedure to respond to the event
notification. The <var>Sender</var> argument contains the object which
triggered the event notification.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.OnProgress">
<short>
Event handler signalled to track the progress of operations in the class
instance.
</short>
<descr>
<p>
<var>OnProgress</var> is a <var>TProgressEvent</var> property with the event
handler signalled to track the progress of operations in the class instance.
See the <link id="TProgressEvent">TProgressEvent</link> topic for more
detailed information.
</p>
<p>
Applications must assign an object procedure to the event handler to respond
to progress notification messages. The <var>Sender</var> argument contains
the object which triggered the notification.
</p>
</descr>
<seealso>
<link id="TProgressEvent"/>
</seealso>
</element>
<element name="TGraphic.Palette">
<short>Handle to the color palette used in image data.</short>
<descr>
<p>
<var>Palette</var> is a HPALETTE property which contains the handle to the
color palette used in image data. When Palette is set to 0, the graphic does
not need or use a palette.
</p>
<remark>
The value for the property is always 0 in the current implementation. Setting
a new value is not implemented.
</remark>
</descr>
<seealso/>
</element>
<element name="TGraphic.PaletteModified">
<short>Indicates whether the palette of colors been modified.</short>
<descr>
<p>
Currently, it is used in the <file>jvcllaz</file> package in the
<var>TJvImageControl</var> class.
</p>
</descr>
<seealso/>
</element>
<element name="TGraphic.Transparent">
<short>
Indicates whether some parts of the image are not opaque.
</short>
</element>
<element name="TGraphic.Width">
<short>
<var>Width</var> - The native, unstretched, width of the graphic.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicClass">
<short>
<var>TGraphicClass</var> - class of TGraphic.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture">
<short>Implements a container for TGraphic and descendent classes.</short>
<descr>
<p>
<var>TPicture</var> is a <var>TGraphic</var> container. It is used in place
of a
<var>TGraphic</var> if the graphic can be of any
<var>TGraphic</var> class.
</p>
<p>
It is not a direct descendant of <var>TGraphic</var>, so you will not see
<var>TGraphic</var> listed in the <var>Inheritance</var> chart, but it
contains a property <var>Graphic</var>, of type <var>TGraphic</var>, so can
contain all the properties of a <var>TGraphic</var>.
</p>
<p>
Defines many <b>private</b> methods for getting and storing various sorts of
images such as bitmaps, pixmaps, icons, PNGs etc.
</p>
<p>
TPicture does not have a defined area used to display the image. This is
supplied in the <var>Canvas</var> property in the classes which support
BitMap, PixMap, PNG, JPEG, GIF, TIFF or Icon image formats.
</p>
<p>
<var>LoadFromFile</var> and <var>SaveToFile</var> are polymorphic. For
example, if the <var>TPicture</var> is holding an <var>Icon</var>, you can
<var>LoadFromFile</var> a bitmap file, whereas if the class is
<var>TIcon</var> you could only read .ICO files.
</p>
<ul>
<li>
<var>LoadFromFile</var> - Reads a picture from disk. The <var>TGraphic</var>
class created is determined by the file extension of the file. If the file
extension is not recognized an exception is generated.
</li>
<li>
<var>SaveToFile</var> - Writes the picture to disk.
</li>
<li>
<var>LoadFromClipboardFormat</var> - Reads the picture from the handle
provided in the given clipboard format. If the format is not supported, an
exception is generated.
</li>
<li>
<var>SaveToClipboardFormats</var> - Allocates a global handle and writes the
picture in its native clipboard format (CF_BITMAP for bitmaps, CF_METAFILE
for metafiles, etc.). Formats will contain the formats written. Returns the
number of clipboard items written to the array pointed to by Formats and
Datas or would be written if either Formats or Datas are <b>Nil</b>.
</li>
<li>
<var>SupportsClipboardFormat</var> - Returns <b>True</b> if the given
clipboard format is supported by <var>LoadFromClipboardFormat</var>.
</li>
<li>
<var>Assign</var> - Copies the contents of the given <var>TPicture</var>.
Used in the implementation of TPicture properties.
</li>
<li>
<var>RegisterFileFormat</var> - Register a new <var>TGraphic</var> class for
use in <var>LoadFromFile</var>.
</li>
<li>
<var>RegisterClipboardFormat</var> - Registers a new <var>TGraphic</var>
class for use in <var>LoadFromClipboardFormat</var>.
</li>
<li>
<var>UnRegisterGraphicClass</var> - Removes all references to the specified
<var>TGraphic</var> class and all its descendants from the file format and
clipboard format internal lists.
</li>
<li>
<var>Height</var> - The native, unstretched, height of the picture.
</li>
<li>
<var>Width</var> - The native, unstretched, width of the picture.
</li>
<li>
<var>Graphic</var> - The <var>TGraphic</var> object contained by the
<var>TPicture</var>
</li>
<li>
<var>Bitmap</var> - Returns a bitmap. If the contents is not already a
bitmap, the contents are discarded and a blank bitmap is returned.
</li>
<li>
<var>Pixmap</var> - Returns a pixmap. If the contents is not already a
pixmap, the contents are discarded and a blank pixmap is returned.
</li>
<li>
<var>PNG</var> - Returns a png. If the contents is not already a png, the
contents are discarded and a blank png (<var>TPortableNetworkGraphic</var>)
is returned.
</li>
<li>
<var>PNM</var> - Returns a pnm. If the contents is not already a pnm, the
contents are discarded and a blank pnm (<var>TPortableAnyMapGraphic</var>) is
returned.
</li>
<li>
<var>Jpeg</var> - Returns a jpeg. If the contents is not already a jpeg, the
contents are discarded and a blank jpeg (
<var>TJPegImage</var>) is returned.
</li>
</ul>
</descr>
<seealso/>
</element>
<!-- private -->
<element name="TPicture.FGraphic"/>
<element name="TPicture.FOnChange"/>
<element name="TPicture.FOnProgress"/>
<element name="TPicture.ForceType">
<short>
Ensures that the Graphic property is an instance of the specified class.
</short>
<descr>
<p>
When the <var>Graphic</var> member is not a descendant of
<var>GraphicType</var>, an new instance of GraphicType is created and used as
the member variable for the Graphic property. The values in the existing
Graphic property is assigned to the new class instance, and the old instance
is freed. The <var>Changed</var> and <var>Process</var> methods are assigned
to the <var>OnChange</var> and <var>OnProgress</var> event handlers in the
new TGraphic class instance. The <var>Changed</var> method is called to
signal the <var>OnChange</var> event handler (when assigned).
</p>
<p>
No actions are performed in the method when the Graphic member is an instance
of the class in GraphicType.
</p>
<p>
ForceType is used in the read access specifiers for properties using the
various supported image formats, like: <var>Bitmap</var>, <var>Icon</var>,
<var>Jpeg</var>, <var>Pixmap</var>, <var>PNG</var>, and <var>PNM</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TPicture.ForceType.GraphicType">
<short>Class type required in the Graphic member.</short>
</element>
<element name="TPicture.GetBitmap">
<short>Gets the value for the Bitmap property.</short>
<descr>
<p>
Calls <var>ForceType</var> to ensure that <var>Graphic</var> is a
<var>TBitmap</var> class instance.
</p>
</descr>
<seealso>
<link id="TPicture.Bitmap"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.ForceType"/>
<link id="TBitmap"/>
</seealso>
</element>
<element name="TPicture.GetBitmap.Result">
<short>Value for the property.</short>
</element>
<element name="TPicture.GetIcon">
<short>Gets the value for the Icon property.</short>
<descr>
<p>
Calls <var>ForceType</var> to ensure that <var>Graphic</var> is a
<var>TIcon</var> class instance.
</p>
</descr>
<seealso>
<link id="TPicture.Icon"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.ForceType"/>
<link id="TIcon"/>
</seealso>
</element>
<element name="TPicture.GetIcon.Result">
<short>Value for the property.</short>
</element>
<element name="TPicture.GetJpeg">
<short>Gets the value for the Jpeg property.</short>
<descr>
<p>
Calls <var>ForceType</var> to ensure that <var>Graphic</var> is a
<var>TJpegImage</var> class instance.
</p>
</descr>
<seealso>
<link id="TPicture.Jpeg"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.ForceType"/>
<link id="TJPegImage"/>
</seealso>
</element>
<element name="TPicture.GetJpeg.Result">
<short/>
</element>
<element name="TPicture.GetPNG">
<short>Gets the value for the PNG property.</short>
<descr>
<p>
Calls <var>ForceType</var> to ensure that <var>Graphic</var> is a
<var>TPortableNetworkGraphic</var> class instance.
</p>
</descr>
<seealso>
<link id="TPicture.PNG"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.ForceType"/>
<link id="TPortableNetworkGraphic"/>
</seealso>
</element>
<element name="TPicture.GetPNG.Result">
<short>Value for the property.</short>
</element>
<element name="TPicture.GetPNM">
<short>Gets the value for the PNM property.</short>
<descr>
<p>
Calls <var>ForceType</var> to ensure that <var>Graphic</var> is a
<var>TPortableAnyMapGraphic</var> class instance.
</p>
</descr>
<seealso>
<link id="TPicture.PNM"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.ForceType"/>
<link id="TPortableAnyMapGraphic"/>
</seealso>
</element>
<element name="TPicture.GetPNM.Result">
<short>Value for the property.</short>
</element>
<element name="TPicture.GetPixmap">
<short>Gets the value for the Pixmap property.</short>
<descr>
<p>
Calls <var>ForceType</var> to ensure that <var>Graphic</var> is a
<var>TPixmap</var> class instance.
</p>
</descr>
<seealso>
<link id="TPicture.Pixmap"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.ForceType"/>
<link id="TPixmap"/>
</seealso>
</element>
<element name="TPicture.GetPixmap.Result">
<short>Value for the property.</short>
</element>
<element name="TPicture.GetHeight">
<short>Gets the Height of the image stored in the Graphic property.</short>
<descr>
<p>
The return value is <b>0</b> (<b>zero</b>) if <var>Graphic</var> has not been
assigned (contains <b>Nil</b>).
</p>
<p>
Use <var>Width</var> to the width of the image in the Graphic property.
</p>
</descr>
<seealso>
<link id="TPicture.Graphic"/>
<link id="TPicture.Width"/>
</seealso>
</element>
<element name="TPicture.GetHeight.Result">
<short>Height of the image in the Graphic property.</short>
</element>
<element name="TPicture.GetWidth">
<short>Gets the width of the image stored in the Graphic property.</short>
<descr>
<p>
The return value is <b>0</b> (<b>zero</b>) if <var>Graphic</var> has not been
assigned (contains <b>Nil</b>).
</p>
<p>
Use <var>Height</var> to the height of the image in the Graphic property.
</p>
</descr>
<seealso>
<link id="TPicture.Graphic"/>
<link id="TPicture.Width"/>
</seealso>
</element>
<element name="TPicture.GetWidth.Result">
<short>Width of the image stored in the Graphic property.</short>
</element>
<element name="TPicture.ReadData">
<short>Reads data for the persistent object during LCL streaming.</short>
<descr>
<p>
ReadData implements the procedure used to read a persistent object during LCL
streaming. Stream is the TStream instance with the data for the persistent
object.
</p>
<p>
ReadData is used by the TFiler instance for the class type.
</p>
</descr>
<seealso/>
</element>
<element name="TPicture.ReadData.Stream">
<short>TStream instance with the data for the persistent object.</short>
</element>
<element name="TPicture.SetBitmap">
<short>Sets the value for the Bitmap property.</short>
<descr>
<p>
Calls <var>SetGraphic</var> to assign the new property value to the
<var>Graphic</var> property.
</p>
</descr>
<seealso>
<link id="TPicture.Bitmap"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.SetGraphic"/>
</seealso>
</element>
<element name="TPicture.SetBitmap.Value">
<short>New value for the property.</short>
</element>
<element name="TPicture.SetIcon">
<short>Sets the value for the Icon property.</short>
<descr>
<p>
Calls <var>SetGraphic</var> to assign the new property value to the
<var>Graphic</var> property.
</p>
</descr>
<seealso>
<link id="TPicture.Icon"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.SetGraphic"/>
</seealso>
</element>
<element name="TPicture.SetIcon.Value">
<short>New value for the property.</short>
</element>
<element name="TPicture.SetJpeg">
<short>Sets the value for the Jpeg property.</short>
<descr>
<p>Calls <var>SetGraphic</var> to assign the new property value to the
<var>Graphic</var> property.
</p>
</descr>
<seealso>
<link id="TPicture.Jpeg"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.SetGraphic"/>
</seealso>
</element>
<element name="TPicture.SetJpeg.Value">
<short>New value for the property.</short>
</element>
<element name="TPicture.SetPNG">
<short>Sets the value for the PNG property.</short>
<descr>
<p>
Calls <var>SetGraphic</var> to assign the new property value to the
<var>Graphic</var> property.
</p>
</descr>
<seealso>
<link id="TPicture.PNG"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.SetGraphic"/>
</seealso>
</element>
<element name="TPicture.SetPNG.AValue">
<short>New value for the property.</short>
</element>
<element name="TPicture.SetPNM">
<short>Sets the value for the PNM property.</short>
<descr>
<p>
Calls <var>SetGraphic</var> to assign the new property value to the
<var>Graphic</var> property.
</p>
</descr>
<seealso>
<link id="TPicture.PNM"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.SetGraphic"/>
</seealso>
</element>
<element name="TPicture.SetPNM.AValue">
<short>New value for the property.</short>
</element>
<element name="TPicture.SetPixmap">
<short>Sets the value for the Pixmap property.</short>
<descr>
<p>
Calls <var>SetGraphic</var> to assign the new value to the <var>Graphic</var>
property.
</p>
</descr>
<seealso>
<link id="TPicture.Pixmap"/>
<link id="TPicture.Graphic"/>
<link id="TPicture.SetGraphic"/>
</seealso>
</element>
<element name="TPicture.SetPixmap.Value">
<short>New value for the property.</short>
</element>
<element name="TPicture.SetGraphic">
<short>Sets the value for the Graphic property.</short>
<descr>
<p>
<var>SetGraphic</var> is the write access specifier for the
<var>Graphic</var> property.
</p>
<p>
SetGraphic ensures that the <var>TGraphic</var> instance in the new property
<var>Value</var> is copied and used as the member variable for the property.
The class type in Value is used to create a temporary class instance where
Value is stored. Its <var>OnChange</var> and <var>OnProgress</var> event
handlers are set to the addresses for the <var>Changed</var> and
<var>Progress</var> methods (respectively). The existing member variable is
freed, and the new class instance is used as the member variable. The
<var>Changed</var> method is called to signal the <var>OnChange</var> event
handler (when assigned).
</p>
<p>
No actions are performed in the method when Value is unassigned (contains
Nil), or when Value and Graphic are the same class instance.
</p>
<p>
SetGraphic is called when a new value is assigned to properties representing
a specific image format, like:
</p>
<ul>
<li>Bitmap</li>
<li>Icon</li>
<li>Jpeg</li>
<li>Pixmap</li>
<li>PNG</li>
<li>PNM</li>
</ul>
</descr>
<seealso>
<link id="TPicture.Graphic"/>
<link id="TPicture.Bitmap"/>
<link id="TPicture.Icon"/>
<link id="TPicture.Jpeg"/>
<link id="TPicture.Pixmap"/>
<link id="TPicture.PNG"/>
<link id="TPicture.PNM"/>
<link id="TPicture.OnChange"/>
<link id="TPicture.OnProgress"/>
<link id="TPicture.Changed"/>
<link id="TPicture.Progress"/>
<link id="TGraphic"/>
</seealso>
</element>
<element name="TPicture.SetGraphic.Value">
<short>New value for the property.</short>
</element>
<element name="TPicture.WriteData">
<short>
Writes data for the persistent object during LCL component streaming.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.WriteData.Stream">
<short/>
</element>
<element name="TPicture.AssignTo">
<short>
<var>AssignTo</var> if <var>Dest</var> is the correct (Graphic) class type,
calls <var>Assign</var> for <var>Dest</var>, otherwise calls inherited
<var>AssignTo</var>.
</short>
<descr/>
<seealso>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TPicture.AssignTo.Dest">
<short>
Persistent object where the values from the class instance are stored.
</short>
</element>
<element name="TPicture.Changed">
<short>
Performs actions needed when value(s) in the class instance have been
modified.
</short>
<descr>
<p>
<var>Changed</var> performs actions needed when value(s) in the class
instance have been modified. In <var>TPicture</var>, it signals the
<var>OnChange</var> event handler (when assigned). No actions are performed
in the method when OnChange has not been assigned (contains <b>Nil</b>).
</p>
</descr>
<seealso>
<link id="TPicture.OnChange"/>
</seealso>
</element>
<element name="TPicture.Changed.Sender">
<short/>
</element>
<element name="TPicture.DefineProperties">
<short>Defines properties handled during LCL component streaming.</short>
<descr>
<p>
<var>DefineProperties</var> is an overridden method in <var>TPicture</var>,
and re-implements the method defined in <var>TPersistent</var>.
DefineProperties uses the <var>TFiler</var> instance in <var>Filer</var> to
identify the binary properties handled during LCL component streaming. The
<var>ReadData</var> and <var>WriteData</var> methods are assigned as the
procedures used to read and write the data for the persistent object. An
internal method is used to determine whether binary data is available in the
<var>Graphic</var> property.
</p>
</descr>
<seealso/>
</element>
<element name="TPicture.DefineProperties.Filer">
<short>TFiler instance used to read and write the persistent object.</short>
</element>
<element name="TPicture.Progress">
<short>Monitors progress of a drawing process.</short>
<descr>
<p>
Performs actions needed to monitor the progress of operations in the class
instance.
</p>
<p>
The parameters identify the calling object, the action being performed, the
completion percentage, whether the picture should be redraw. The DoContine
variable parameter is updated in the event handler to indicate if the process
is continued. <b>False</b> indicates an error condition where the process
should be halted. It is set to <b>True</b> on entry.
</p>
<p>
Progress signals the OnProgress event handler (when assigned) using the
parameters values as arguments.
</p>
<p>
No actions are performed in the method when OnProgress has not been assigned
(contains Nil). In this scenario, DoContine returns <b>True</b>.
</p>
<p>
See <link id="TProgressEvent">TProgressEvent</link> for more details on progress monitoring.
</p>
</descr>
<seealso>
<link id="TPicture.OnProgress"/>
<link id="TProgressEvent"/>
</seealso>
</element>
<element name="TPicture.Progress.Sender">
<short>Object for the notification.</short>
</element>
<element name="TPicture.Progress.Stage">
<short/>
</element>
<element name="TPicture.Progress.PercentDone">
<short/>
</element>
<element name="TPicture.Progress.RedrawNow">
<short/>
</element>
<element name="TPicture.Progress.R">
<short/>
</element>
<element name="TPicture.Progress.Msg">
<short/>
</element>
<element name="TPicture.Progress.DoContinue">
<short/>
</element>
<element name="TPicture.LoadFromStreamWithClass">
<short>
Loads values for the Graphic property from a stream using the specified class
type.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.LoadFromStreamWithClass.Stream">
<short/>
</element>
<element name="TPicture.LoadFromStreamWithClass.AClass">
<short/>
</element>
<element name="TPicture.Create">
<short>
<var>Create</var> - constructor for TPicture: performs inherited
<var>Create</var> then loads file and clipboard formats.
</short>
<descr>
<p>
Create is the overridden constructor for the class instance, and calls the
inherited constructor on entry.
</p>
<p>
Creates ensures that the list of image formats supported in LCL has been
initialized with the class types and file extensions as required. The list of
clipboard formats for the supported image formats is also initialized when
needed.
</p>
</descr>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TPicture.Destroy">
<short>
<var>Destroy</var> - destructor for <var>TPicture</var>: frees graphic then
performs inherited <var>Destroy</var>.
</short>
<descr>
<p>
Any destructor method defined here will <b>override</b> destructors defined
in ancestor classes.
</p>
</descr>
<seealso>
<link id="#rtl.Classes.TPersistent.Destroy">TPersistent.Destroy</link>
</seealso>
</element>
<element name="TPicture.Clear">
<short>
<var>Clear</var> - removes the Graphic in the class instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.LoadFromClipboardFormat">
<short>
<var>LoadFromClipboardFormat</var> - Reads the picture from the handle
provided in the given clipboard format.
</short>
<descr>
<p>
<var>LoadFromClipboardFormat</var> reads the picture from the handle provided
in the given clipboard format.
</p>
</descr>
<errors>
If the format is not supported, an exception is generated.
</errors>
</element>
<element name="TPicture.LoadFromClipboardFormat.FormatID">
<short>The identifier for the clipboard format.</short>
</element>
<element name="TPicture.LoadFromClipboardFormatID">
<short>
Reads the picture from a clipboard of type <var>ClipboardType</var> using the
format <var>FormatID</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.LoadFromClipboardFormatID.ClipboardType">
<short/>
</element>
<element name="TPicture.LoadFromClipboardFormatID.FormatID">
<short/>
</element>
<element name="TPicture.LoadFromFile">
<short>
<var>LoadFromFile</var> - Reads a picture from disk.
</short>
<descr>
<p>
<var>LoadFromFile</var> - Reads a picture from disk. The <var>TGraphic</var>
class created is determined by the file extension of the file.
</p>
</descr>
<errors>
If the file extension is not recognized, an exception is raised.
</errors>
</element>
<element name="TPicture.LoadFromFile.Filename">
<short>
The name of the file containing the picture, stored as a string.
</short>
</element>
<element name="TPicture.LoadFromResourceName">
<short>
Loads content from the specified resource into the Graphic property.
</short>
<descr>
<p>
<var>LoadFromResourceName</var> is an overloaded method used to created a
<var>TGraphic</var> instance with the content from the specified resource
name.
<var>Instance</var> is the handle with the resources examined in the method.
<var>ResName</var> is the name of the resource loaded in the method.
</p>
<p>
LoadFromResourceName creates a new TGraphic class instance that is used as
the member variable for the Graphics property. The
<var>CreateGraphicFromResourceName</var> routine is called to create the
graphic and load the named resource from the handle. The <var>Changed</var>
method is assigned to the <var>OnChange</var> event handler in the class
instance.
</p>
<p>
An overloaded variant includes an <var>AClass</var> argument with the class
type for the TGraphic descendant needed for a supported image format. The
<var>LoadFromResourceName</var> method in the class instance is called to load
the named resource.
</p>
<p>
The existing TGraphic instance in Graphic is freed and the new TGraphic
instance is used as the member variable. The Changed method is called to
signal the OnChange event handler (when assigned).
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="TPicture.Changed"/>
<link id="TGraphic.OnChange"/>
<link id="TGraphic.LoadFromResourceName"/>
<link id="CreateGraphicFromResourceName"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TPicture.LoadFromResourceName.Instance">
<short>Handle with the resources examine in the method.</short>
</element>
<element name="TPicture.LoadFromResourceName.ResName">
<short>Name of the resource loaded in the method.</short>
</element>
<element name="TPicture.LoadFromResourceName.AClass">
<short>TGraphic descendant for the image format.</short>
</element>
<element name="TPicture.LoadFromLazarusResource">
<short>Gets the named resource from a Lazarus Resource (.lrs) file.</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.LoadFromLazarusResource.AName">
<short>File name with resource retrieved in the method.</short>
</element>
<!-- TODO. Needs description. -->
<element name="TPicture.LoadFromStream">
<short>
Loads picture data in a supported image format from the specified stream.
</short>
<descr/>
<seealso>
<link id="TGraphicClass"/>
<link id="TPortableNetworkGraphic"/>
<link id="TPixmap"/>
<link id="TBitmap"/>
<link id="TCursorImage"/>
<link id="TIcon"/>
<link id="TIcnsIcon"/>
<link id="TJpegImage"/>
<link id="TTiffImage"/>
<link id="TGIFImage"/>
<link id="TPortableAnyMapGraphic"/>
</seealso>
</element>
<element name="TPicture.LoadFromStream.Stream">
<short>
Stream instance with the graphics format and data loaded in the method.
</short>
</element>
<element name="TPicture.LoadFromStreamWithFileExt">
<short>
Loads the picture from a stream containing data for the specified file
extension.
</short>
</element>
<element name="TPicture.LoadFromStreamWithFileExt.Stream">
<short/>
</element>
<element name="TPicture.LoadFromStreamWithFileExt.FileExt">
<short/>
</element>
<element name="TPicture.SaveToClipboardFormat">
<short>
<var>SaveToClipboardFormats</var> - Allocates a global handle and writes the
picture in its native clipboard format.
</short>
<descr>
<p>
<var>SaveToClipboardFormats</var> - Allocates a global handle and writes the
picture in its native clipboard format (<var>CF_BITMAP</var> for bitmaps,
<var>CF_METAFILE</var> for metafiles, etc.). Formats will contain the formats
written. Returns the number of clipboard items written to the array pointed
to by Formats and Datas or would be written if either Formats or Datas are
<b>Nil</b>.
</p>
</descr>
</element>
<element name="TPicture.SaveToClipboardFormat.FormatID">
<short>Identity of the clipboard format.</short>
</element>
<element name="TPicture.SaveToFile">
<short>
<var>SaveToFile</var> - Writes the picture to disk.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.SaveToFile.Filename">
<short>The name of the file to save the picture, stored as a string.</short>
</element>
<element name="TPicture.SaveToStream">
<short>Saves the graphic to the specified stream.</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.SaveToStream.Stream">
<short>TStream instance where the graphic is stored.</short>
</element>
<element name="TPicture.SaveToStreamWithFileExt">
<short>
Saves the graphic to a stream using the class type for the specified file
extension.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.SaveToStreamWithFileExt.Stream">
<short/>
</element>
<element name="TPicture.SaveToStreamWithFileExt.FileExt">
<short/>
</element>
<element name="TPicture.SupportsClipboardFormat">
<short>
<var>SupportsClipboardFormat</var> - Returns <b>True</b> if the given
clipboard format is supported by <var>LoadFromClipboardFormat</var>.
</short>
</element>
<element name="TPicture.SupportsClipboardFormat.Result">
<short>Boolean - returns <b>True</b> if format supported.</short>
</element>
<element name="TPicture.SupportsClipboardFormat.FormatID">
<short>Identity of the clipboard format.</short>
</element>
<element name="TPicture.Assign">
<short>
<var>Assign</var> - if the Source is a valid graphic type, copy the relevant
details to the current object, otherwise call inherited <var>Assign</var>.
</short>
<descr>
<p>
<var>Assign</var> copies the contents of the given <var>TPicture</var>. Used
most often in the implementation of TPicture properties.
</p>
</descr>
<seealso>
<link id="#rtl.Classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TPicture.Assign.Source">
<short/>
</element>
<element name="TPicture.RegisterFileFormat">
<short>
Registers a new <var>TGraphic</var> class for use in <var>LoadFromFile</var>.
</short>
</element>
<element name="TPicture.RegisterFileFormat.AnExtension">
<short/>
</element>
<element name="TPicture.RegisterFileFormat.ADescription">
<short/>
</element>
<element name="TPicture.RegisterFileFormat.AGraphicClass">
<short/>
</element>
<element name="TPicture.RegisterClipboardFormat">
<short>
Registers a new <var>TGraphic</var> class for use in
<var>LoadFromClipboardFormat</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.RegisterClipboardFormat.FormatID">
<short/>
</element>
<element name="TPicture.RegisterClipboardFormat.AGraphicClass">
<short/>
</element>
<element name="TPicture.UnregisterGraphicClass">
<short>
Removes all references to the specified <var>TGraphic</var>.
</short>
<descr>
<p>
<var>UnRegisterGraphicClass</var> - Removes all references to the specified
<var>TGraphic</var> class and all its descendants from the file format and
clipboard format internal lists.
</p>
</descr>
</element>
<element name="TPicture.UnregisterGraphicClass.AClass">
<short/>
</element>
<element name="TPicture.FindGraphicClassWithFileExt">
<short>
Finds a graphic class with the named file extension <var>Ext</var>, and
raises an exception if not found.
</short>
</element>
<element name="TPicture.Bitmap">
<short>
<var>Bitmap</var> - Returns a bitmap.
</short>
<descr>
<p>
<var>Bitmap</var> - Returns a bitmap. If the contents is not already a
bitmap, the contents are discarded and a blank bitmap is returned.
</p>
</descr>
<seealso/>
</element>
<element name="TPicture.Icon">
<short>
<var>Icon</var> contained within the picture.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.Jpeg">
<short>
<var>Jpeg</var> - returns a JPEG image.</short>
<descr>
<p>
<var>Jpeg</var> - returns a JPEG image.
</p>
<p>
If the contents is not already a JPEG image, the contents are discarded and a
blank JPEG is returned.
</p>
</descr>
</element>
<element name="TPicture.Pixmap">
<short>
<var>Pixmap</var> - Returns a pixmap.
</short>
<descr>
<p>
<var>Pixmap</var> - Returns a pixmap. If the contents is not already a
pixmap, the contents are discarded and a blank pixmap is returned.
</p>
</descr>
</element>
<element name="TPicture.PNG">
<short>
<var>PNG</var> - Returns a png.
</short>
<descr>
<p>
<var>PNG</var> - Returns a png. If the contents is not already a png, the
contents are discarded and a blank png (<var>TPortableNetworkGraphic</var>)
is returned.
</p>
</descr>
</element>
<element name="TPicture.PNM">
<short>
<var>PNM</var> - a <b>PortableAnyMapGraphic</b> image.
</short>
<descr>
<p>
<var>PNM</var> - a <b>PortableAnyMapGraphic</b> image.
</p>
<p>
Reads a PNM image. If it is not a valid PNM image, the contents are discarded
and a blank PNM is generated.
</p>
</descr>
</element>
<element name="TPicture.Graphic">
<short>
<var>Graphic</var> - The <var>TGraphic</var> object contained by the
<var>TPicture</var>.
</short>
</element>
<element name="TPicture.Height">
<short>
<var>Height</var> - The native, unstretched, height of the picture.
</short>
</element>
<element name="TPicture.Width">
<short>
<var>Width</var> - The native, unstretched, width of the picture.
</short>
</element>
<element name="TPicture.OnChange">
<short>
<var>OnChange</var> - Event handler for any change in the picture.
</short>
<descr/>
<seealso/>
</element>
<element name="TPicture.OnProgress">
<short>
Event handler signalled to track the progress of operations in the class
instance.
</short>
<descr>
<p>
<var>OnProgress</var> is a <var>TProgressEvent</var> property with the event
handler signalled to track the progress of operations in the class instance.
See the <link id="TProgressEvent">TProgressEvent</link> topic for more
detailed information.
</p>
<p>
Applications must assign an object procedure to the event handler to respond
to progress notification messages. The <var>Sender</var> argument contains
the object which triggered the notification.
</p>
</descr>
<seealso>
<link id="TProgressEvent"/>
</seealso>
</element>
<element name="EGraphicException">
<short>Base exception type for an error in a graphic operation.
</short>
<descr>
<p>
<var>EGraphicException</var> is an <var>Exception</var> descendant which
implements the base class for exceptions raised during graphic operations. It
provides a means to handle any of the descendent exceptions, like
<var>EInvalidGraphic</var> or <var>EInvalidGraphicOperation</var>.
</p>
</descr>
<seealso/>
</element>
<element name="EInvalidGraphic">
<short>
<var>EInvalidGraphic</var> - exception handler for an invalid graphic.
</short>
<descr/>
<seealso/>
</element>
<element name="EInvalidGraphicOperation">
<short>
<var>EInvalidGraphicOperation</var> - exception handler for invalid graphic
operation.
</short>
<descr/>
<seealso/>
</element>
<element name="TGradientDirection">
<short>Represents fill directions for gradients.</short>
<descr/>
<seealso/>
</element>
<element name="TGradientDirection.gdVertical">
<short>Gradient fill direction is vertically oriented.</short>
</element>
<element name="TGradientDirection.gdHorizontal">
<short>Gradient fill direction is horizontally oriented.</short>
</element>
<element name="TAntialiasingMode">
<short>Represents anti-aliasing modes used in TCanvas.</short>
<descr/>
<seealso/>
</element>
<element name="TAntialiasingMode.amDontCare">
<short>Default anti-aliasing.</short>
</element>
<element name="TAntialiasingMode.amOn">
<short>Enabled.</short>
</element>
<element name="TAntialiasingMode.amOff">
<short>Disabled.</short>
</element>
<element name="TLCLTextMetric">
<short>Represents text metrics used in the LCL.</short>
<descr/>
<seealso/>
</element>
<element name="TLCLTextMetric.Ascender">
<short>The portion of a font face above the mean line.</short>
<descr/>
<seealso/>
</element>
<element name="TLCLTextMetric.Descender">
<short>The portion of a font face below the baseline for a font face.</short>
<descr/>
<seealso/>
</element>
<element name="TLCLTextMetric.Height">
<short>
Distance between the baseline and the mean line for a font face.
</short>
<descr/>
<seealso/>
</element>
<element name="TDefaultColorType">
<short>
Indicates whether a default color applies to a font or a brush.
</short>
<descr>
<p>
Values from TDefaultColorType are passed as an argument to the
GetdefaultColor method in TCanvas. It allows the the color clDefault to be
resolved to the correct color value in the class instance.
</p>
</descr>
<seealso>
<link id="TCanvas.GetDefaultColor"/>
</seealso>
</element>
<element name="TDefaultColorType.dctBrush">
<short>
Default color refers to the the Brush color.
</short>
</element>
<element name="TDefaultColorType.dctFont">
<short>
Default color refers to the the Font color.
</short>
</element>
<element name="TCanvas">
<short>
Implements a drawing surface for a visual control or bitmap image.
</short>
<descr>
<p>
<var>TCanvas</var> is a descendant of the <var>TFPCustomCanvas</var> class in
the FCL (Free Pascal Component Library). TCanvas implements a drawing surface
which can be used to display a visual control or render output to a bitmap.
TCanvas provides drawing tools like Brush, Pen, and Font needed to draw on
the surface. Events are provided to respond to change notifications and
progress events. Methods are provided to implement common drawing operations,
such as:
</p>
<ul>
<li>Pen, Brush, and Color selection</li>
<li>Drawing lines or shapes</li>
<li>Filling shapes with colors or patterns</li>
<li>Rendering text to the drawing surface</li>
<li>Rendering image content to the drawing surface</li>
<li>Direct manipulation of pixels on the drawing surface</li>
</ul>
<p>
A TCanvas instance (or a specialized descendant) is used in visual controls
which are responsible for rendering their own content. It is also used in
non-visual components like TPrinter, and in class that provide support for
drawing operations using bitmap data.
</p>
</descr>
<seealso>
<link id="TSharedRasterImage"/>
<link id="#lcl.controls.TGraphicControl.Canvas">TGraphicControl.Canvas</link>
<link id="#lcl.controls.TCustomControl.Canvas">TCustomControl.Canvas</link>
<link id="#lcl.controls.TControlCanvas">TControlCanvas</link>
</seealso>
</element>
<!-- private -->
<element name="TCanvas.FAntialiasingMode"/>
<element name="TCanvas.FAutoRedraw"/>
<element name="TCanvas.FState"/>
<element name="TCanvas.FSavedFontHandle"/>
<element name="TCanvas.FSavedPenHandle"/>
<element name="TCanvas.FSavedBrushHandle"/>
<element name="TCanvas.FSavedRegionHandle"/>
<element name="TCanvas.FCopyMode"/>
<element name="TCanvas.FHandle"/>
<element name="TCanvas.FOnChange"/>
<element name="TCanvas.FOnChanging"/>
<element name="TCanvas.FTextStyle"/>
<element name="TCanvas.FLock"/>
<element name="TCanvas.FRegion"/>
<element name="TCanvas.FLazPen"/>
<element name="TCanvas.FLazFont"/>
<element name="TCanvas.FLazBrush"/>
<element name="TCanvas.FSavedHandleStates"/>
<element name="TCanvas.BrushChanged">
<short>
Performs actions needed when the Brush for the canvas is changed.
</short>
<descr>
<p>
<var>BrushChanged</var> is a procedure used to perform actions needed when the
<var>Brush</var> for the canvas is changed. BrushChanged ensures that state
flags for the class instance are updated to remove the value
<var>csBrushValid</var> (when present).
</p>
<p>
<var>ABrush</var> contains the Brush instance which generated the change
notification.
</p>
<p>
BrushChanged is assigned as the <var>OnChange</var> event handler in the
<var>TBrush</var> instance used in the Brush property.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TBrush.OnChange"/>
<link id="TCanvasState"/>
</seealso>
</element>
<element name="TCanvas.BrushChanged.ABrush">
<short>Brush instance generating the change notification.</short>
</element>
<element name="TCanvas.FontChanged">
<short>
Performs actions needed when the Font for the canvas is changed.
</short>
<descr>
<p>
<var>FontChanged</var> is a procedure used to performs actions needed when
the <var>Font</var> for the canvas is changed. FontChanged ensures that state
flags for the canvas are updated to remove the value <var>csFontValid</var>
(when present).
</p>
<p>
<var>AFont</var> is the font instance which generated the change notification.
</p>
<p>
FontChanged is assigned as the <var>OnChange</var> event handler in the
<var>TFont</var> instance used in the Font property.
</p>
</descr>
<seealso>
<link id="TCanvas.Font"/>
<link id="TFont.OnChange"/>
<link id="TCanvasState"/>
</seealso>
</element>
<element name="TCanvas.FontChanged.AFont">
<short>Font instance generating the change notification.</short>
</element>
<element name="TCanvas.PenChanged">
<short>Performs actions needed when the Pen for the canvas is changed.</short>
<descr>
<p>
<var>PenChanged</var> is a procedure used to performs actions needed when the
<var>Pen</var> for the canvas is changed. PenChanged ensures that state flags
for the canvas are updated to remove the value
<var>csPenValid</var> (when present).
</p>
<p>
<var>APen</var> is the pen instance which generated the change notification.
</p>
<p>
PenChanged is assigned as the <var>OnChange</var> event handler in the
<var>TPen</var> instance used in the Pen property.
</p>
</descr>
<seealso>
<link id="TCanvas.Pen"/>
<link id="TPen.OnChange"/>
<link id="TCanvasState"/>
</seealso>
</element>
<element name="TCanvas.PenChanged.APen">
<short>Pen instance generating the change notification.</short>
</element>
<element name="TCanvas.RegionChanged">
<short>
Performs actions needed when the Region for the canvas is changed.
</short>
<descr>
<p>
RegionChanged is a procedure used to perform actions needed when the Region
for the canvas is changed. RegionChanged ensures that state flags for the
canvas are updated to remove the value <var>csRegionValid</var> (when
present).
</p>
<p>
<var>ARegion</var> is the region instance which generated the change
notification.
</p>
<p>
RegionChanged is assigned as the <var>OnChange</var> event handler in the
<var>TRegion</var> instance used in the Region property.
</p>
</descr>
<seealso>
<link id="TCanvas.Region"/>
<link id="TRegion.OnChange"/>
<link id="TCanvasState"/>
</seealso>
</element>
<element name="TCanvas.RegionChanged.ARegion">
<short>Region instance generating the change notification.</short>
</element>
<element name="TCanvas.GetHandle">
<short>Gets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TCanvas.Handle"/>
</seealso>
</element>
<element name="TCanvas.GetHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TCanvas.SetAntialiasingMode">
<short>Sets the value for the AntialiasingMode property.</short>
<descr/>
<seealso>
<link id="TCanvas.AntialiasingMode"/>
</seealso>
</element>
<element name="TCanvas.SetAntialiasingMode.AValue">
<short>Value for the property.</short>
</element>
<element name="TCanvas.SetAutoRedraw">
<short>Sets the value for the AutoRedraw property.</short>
<descr/>
<seealso>
<link id="TCanvas.AutoRedraw"/>
</seealso>
</element>
<element name="TCanvas.SetAutoRedraw.Value">
<short>Value for the property.</short>
</element>
<element name="TCanvas.SetLazFont">
<short>Sets the value for the Font property.</short>
<descr/>
<seealso>
<link id="TCanvas.Font"/>
</seealso>
</element>
<element name="TCanvas.SetLazFont.Value">
<short>New value for the property.</short>
</element>
<element name="TCanvas.SetLazPen">
<short>Sets the value for the Pen property.</short>
<descr/>
<seealso>
<link id="TCanvas.Pen"/>
</seealso>
</element>
<element name="TCanvas.SetLazPen.Value">
<short>New value for the property.</short>
</element>
<element name="TCanvas.SetLazBrush">
<short>Sets the value for the Brush property.</short>
<descr/>
<seealso>
<link id="TCanvas.Brush"/>
</seealso>
</element>
<element name="TCanvas.SetLazBrush.value">
<short>New value for the property.</short>
</element>
<element name="TCanvas.SetRegion">
<short>Sets the value for the Region property.</short>
<descr/>
<seealso>
<link id="TCanvas.Region"/>
</seealso>
</element>
<element name="TCanvas.SetRegion.Value">
<short>New value for the property.</short>
</element>
<element name="TCanvas.DoCreateDefaultFont">
<short>
Creates the TFont instance used as the default font for the canvas.
</short>
<descr>
<p>
<var>DoCreateDefaultFont</var> is an overridden method in <var>TCanvas</var>
used to create the <var>TFont</var> instance used as the default font for the
canvas. The return value contains the TFont instance created in the method.
</p>
<p>
DoCreateDefaultFont implements the abstract method defined in the
<var>TFPCustomCanvas</var> ancestor. It is called from the inherited
<var>CreateDefaultFont</var> method, and ensures that a font resource has
been allocated for the <var>Font</var> property.
</p>
</descr>
<seealso>
<link id="TCanvas.Font"/>
<link id="TFont"/>
</seealso>
</element>
<element name="TCanvas.DoCreateDefaultFont.Result">
<short>TFont instance created in the method.</short>
</element>
<element name="TCanvas.DoCreateDefaultPen">
<short>
<var>DoCreateDefaultPen</var> - calls
<var>TPen.Create</var> to create a default pen.
</short>
<descr/>
<seealso>
<link id="TPen.Create"/>
</seealso>
</element>
<element name="TCanvas.DoCreateDefaultPen.Result">
<short/>
</element>
<element name="TCanvas.DoCreateDefaultBrush">
<short>
<var>DoCreateDefaultBrush</var> - calls
<var>TBrush.Create</var> to create a default brush.
</short>
<descr/>
<seealso>
<link id="TBrush.Create"/>
</seealso>
</element>
<element name="TCanvas.DoCreateDefaultBrush.Result">
<short/>
</element>
<element name="TCanvas.SetColor">
<short>Sets the value for the indexed Colors property.</short>
<descr>
<p>
<var>SetColor</var> is a method used to set the value for the indexed
<var>Colors</var> property. SetColor implements the abstract virtual method
defined in the <var>TFPCustomCanvas</var> ancestor. Equivalent to setting the
color value using the <var>Pixels</var> property.
</p>
</descr>
<seealso>
<link id="TCanvas.Pixels"/>
</seealso>
</element>
<element name="TCanvas.SetColor.x">
<short>Horizontal coordinate for the pixel.</short>
</element>
<element name="TCanvas.SetColor.y">
<short>Vertical coordinate for the pixel.</short>
</element>
<element name="TCanvas.SetColor.Value">
<short>Color for the specified pixel.</short>
</element>
<element name="TCanvas.GetColor">
<short>Gets the Color for the pixel at the given coordinates as a TFPColor
value.
</short>
<descr>
<p>
Uses the indexed <var>Pixels</var> property to retrieve the color information
for the pixel at the coordinates in x and y. Calls <var>TColorToFPColor</var>
to convert the TColor value to the TFPColor type used in the return value.
</p>
</descr>
<seealso>
<link id="TCanvas.Pixels"/>
<link id="TColorToFPColor"/>
</seealso>
</element>
<element name="TCanvas.GetColor.Result">
<short>TFPColor value for the pixel at the specified position.</short>
</element>
<element name="TCanvas.GetColor.x">
<short>Horizontal position for the pixel.</short>
</element>
<element name="TCanvas.GetColor.y">
<short>Vertical position for the pixel.</short>
</element>
<element name="TCanvas.SetHeight">
<short>
<var>SetHeight</var> should never be called for Canvas: raises an exception
if it is called.
</short>
<descr/>
<errors>
If called, raises an exception: 'TCanvas.SetHeight not allowed for LCL canvas.
</errors>
<seealso/>
</element>
<element name="TCanvas.SetHeight.AValue">
<short/>
</element>
<element name="TCanvas.GetHeight">
<short>
<var>GetHeight</var> - if a handle has been allocated, returns the height
from the device size.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.GetHeight.Result">
<short/>
</element>
<element name="TCanvas.SetWidth">
<short>
<var>SetWidth</var> - should never be called; raises an exception if it is
called.
</short>
<descr/>
<errors>
Raises an exception: 'TCanvas.SetWidth not allowed for LCL canvas'
</errors>
<seealso/>
</element>
<element name="TCanvas.SetWidth.AValue">
<short/>
</element>
<element name="TCanvas.GetWidth">
<short>Gets the value for the Width property.</short>
<descr>
<p>
If a valid <var>Handle</var> for the canvas instance has not been allocated,
the value for the property is <b>0</b> (<b>zero</b>).
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.GetWidth.Result">
<short>Value for the property.</short>
</element>
<element name="TCanvas.SetPenPos">
<short>Moves the pen to the specified position.</short>
<descr>
<p>
Re-implements the method defined in the <var>TFPCustomCanvas</var> ancestor.
Calls <var>MoveTo</var> using the <var>X</var> and <var>Y</var> coordinates
specified in <var>Value</var>. Does <b>not</b> call the inherited method.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.SetPenPos.Value">
<short>TPoint instance with the canvas coordinates for the pen.</short>
</element>
<element name="TCanvas.DoLockCanvas">
<short>
Enters the critical section used to lock the canvas, and calls the inherited
method.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoUnlockCanvas">
<short>
Leaves the critical section used to lock the canvas, and calls the inherited
method.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoTextOut">
<short>
<var>DoTextOut</var> calls <var>TextOut</var> for the specified coordinates
and string.
</short>
<descr/>
<seealso>
<link id="TCanvas.TextOut"/>
</seealso>
</element>
<element name="TCanvas.DoTextOut.x">
<short/>
</element>
<element name="TCanvas.DoTextOut.y">
<short/>
</element>
<element name="TCanvas.DoTextOut.Text">
<short/>
</element>
<element name="TCanvas.DoGetTextSize">
<short>
Calls TextExtent to find the width and height of the specified text.
</short>
<descr/>
<seealso>
<link id="TCanvas.TextExtent"/>
</seealso>
</element>
<element name="TCanvas.DoGetTextSize.Text">
<short/>
</element>
<element name="TCanvas.DoGetTextSize.w">
<short/>
</element>
<element name="TCanvas.DoGetTextSize.h">
<short/>
</element>
<element name="TCanvas.DoGetTextHeight">
<short>
<var>DoGetTextHeight</var> calls <var>TextHeight</var> to return the height
of the text.
</short>
<descr/>
<seealso>
<link id="TCanvas.TextHeight"/>
</seealso>
</element>
<element name="TCanvas.DoGetTextHeight.Result">
<short/>
</element>
<element name="TCanvas.DoGetTextHeight.Text">
<short/>
</element>
<element name="TCanvas.DoGetTextWidth">
<short>
<var>DoGetTextWidth</var> calls <var>TextWidth</var> to return the width of
the given text string.
</short>
<descr/>
<seealso>
<link id="TCanvas.TextWidth"/>
</seealso>
</element>
<element name="TCanvas.DoGetTextWidth.Result">
<short/>
</element>
<element name="TCanvas.DoGetTextWidth.Text">
<short/>
</element>
<element name="TCanvas.DoRectangle">
<short>
<var>DoRectangle</var> calls <var>Frame</var> to draw a rectangle in the
given bounds.
</short>
<descr/>
<seealso>
<link id="TCanvas.Frame"/>
</seealso>
</element>
<element name="TCanvas.DoRectangle.Bounds">
<short/>
</element>
<element name="TCanvas.DoRectangleFill">
<short>
<var>DoRectangleFill</var> calls
<var>FillRect</var> to draw a filled rectangle with the given bounds.
</short>
<descr/>
<seealso>
<link id="TCanvas.FillRect"/>
</seealso>
</element>
<element name="TCanvas.DoRectangleFill.Bounds">
<short/>
</element>
<element name="TCanvas.DoRectangleAndFill">
<short>
<var>DoRectangleAndFill</var> - calls <var>Rectangle</var> to draw a
rectangle and fill it.
</short>
<descr/>
<seealso>
<link id="TCanvas.Rectangle"/>
</seealso>
</element>
<element name="TCanvas.DoRectangleAndFill.Bounds">
<short/>
</element>
<element name="TCanvas.DoEllipse">
<short>Draws an Arc of 360 degrees within the specified Bounds.
</short>
<descr>
<p>
<var>DoEllipse</var> draws an <var>Arc</var> of 360 degrees within given
<var>Bounds</var>, making an ellipse.
</p>
</descr>
<seealso>
<link id="TCanvas.Arc"/>
</seealso>
</element>
<element name="TCanvas.DoEllipse.Bounds">
<short/>
</element>
<element name="TCanvas.DoEllipseFill">
<short>
<var>DoEllipseFill</var> calls <var>Ellipse</var>.
</short>
<descr/>
<seealso>
<link id="TCanvas.Ellipse"/>
</seealso>
</element>
<element name="TCanvas.DoEllipseFill.Bounds">
<short/>
</element>
<element name="TCanvas.DoEllipseAndFill">
<short>
<var>DoEllipseAndFill</var> calls the inherited <var>DoEllipseAndFill</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoEllipseAndFill.Bounds">
<short/>
</element>
<element name="TCanvas.DoPolygon">
<short>
<var>DoPolygon</var> calls <var>PolyLine</var> to draw a series of lines
through the points.
</short>
<descr/>
<seealso>
<link id="TCanvas.PolyLine"/>
</seealso>
</element>
<element name="TCanvas.DoPolygon.Points">
<short/>
</element>
<element name="TCanvas.DoPolygonFill">
<short>
<var>DoPolygonFill</var> calls <var>Polygon</var> for the supplied points.
</short>
<descr/>
<seealso>
<link id="TCanvas.Polygon"/>
</seealso>
</element>
<element name="TCanvas.DoPolygonFill.Points">
<short/>
</element>
<element name="TCanvas.DoPolygonAndFill">
<short>
<var>DoPolygonAndFill</var> calls inherited method.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoPolygonAndFill.Points">
<short/>
</element>
<element name="TCanvas.DoPolyline">
<short>
<var>DoPolyline</var> calls <var>PolyLine</var>.
</short>
<descr/>
<seealso>
<link id="TCanvas.PolyLine">TCanvas.PolyLine</link>
</seealso>
</element>
<element name="TCanvas.DoPolyline.Points">
<short/>
</element>
<element name="TCanvas.DoPolyBezier">
<short>
Performs actions needed to draw a Bézier curve using the specified control
points.
</short>
<descr>
<p>
Calls the <var>PolyBezier</var> method using the values in <var>Points</var>,
<var>NumPts</var>, <var>Filled</var>, and <var>Continuous</var> as arguments.
</p>
</descr>
<seealso>
<link id="TCanvas.PolyBezier"/>
</seealso>
</element>
<element name="TCanvas.DoPolyBezier.Points">
<short>Pointer to the control points for the Bézier curve.</short>
</element>
<element name="TCanvas.DoPolyBezier.NumPts">
<short>Number of control points in the Pointer.</short>
</element>
<element name="TCanvas.DoPolyBezier.Filled">
<short>
<b>True</b> if interior of the Bézier curve is filled; default is
<b>False</b>.
</short>
</element>
<element name="TCanvas.DoPolyBezier.Continuous">
<short>
<b>True</b> if the Bézier end-points are continuous (without kinks); default
is <b>False</b>.
</short>
</element>
<element name="TCanvas.DoFloodFill">
<short>
<var>DoFloodFill</var> calls the <var>FloodFill</var> method.
</short>
<descr/>
<seealso>
<link id="TCanvas.FloodFill"/>
</seealso>
</element>
<element name="TCanvas.DoFloodFill.x">
<short/>
</element>
<element name="TCanvas.DoFloodFill.y">
<short/>
</element>
<element name="TCanvas.DoMoveTo">
<short>
<var>DoMoveTo</var> calls the <var>MoveTo</var> method.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoMoveTo.x">
<short/>
</element>
<element name="TCanvas.DoMoveTo.y">
<short/>
</element>
<element name="TCanvas.DoLineTo">
<short>
<var>DoLineTo</var> calls the <var>LineTo</var> method.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoLineTo.x">
<short/>
</element>
<element name="TCanvas.DoLineTo.y">
<short/>
</element>
<element name="TCanvas.DoLine">
<short>
<var>DoLine</var> calls <var>Line</var> to draw from x1, y1 to x2, y2.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoLine.x1">
<short/>
</element>
<element name="TCanvas.DoLine.y1">
<short/>
</element>
<element name="TCanvas.DoLine.x2">
<short/>
</element>
<element name="TCanvas.DoLine.y2">
<short/>
</element>
<element name="TCanvas.DoCopyRect">
<short>Verifies and copies the source canvas.</short>
<descr>
<p>
<var>DoCopyRect</var> checks that <var>SrcCanvas</var> is of correct type
then copies coordinates and calls <var>CopyRect</var>.
</p>
</descr>
<errors>
If <var>SrcCanvas</var> is not of type <var>TCanvas</var> then writes a
warning to the debug output that copying is not supported
</errors>
<seealso>
<link id="TCanvas.CopyRect"/>
</seealso>
</element>
<element name="TCanvas.DoCopyRect.x">
<short/>
</element>
<element name="TCanvas.DoCopyRect.y">
<short/>
</element>
<element name="TCanvas.DoCopyRect.SrcCanvas">
<short/>
</element>
<element name="TCanvas.DoCopyRect.SourceRect">
<short/>
</element>
<element name="TCanvas.DoDraw">
<short>
<var>DoDraw</var> checks that <var>Image</var> is of the right type, makes a
local copy, creates the necessary handles and bitmaps for drawing.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.DoDraw.x">
<short/>
</element>
<element name="TCanvas.DoDraw.y">
<short/>
</element>
<element name="TCanvas.DoDraw.Image">
<short/>
</element>
<element name="TCanvas.CheckHelper">
<short>
Ignored in the current implementation of the class.
</short>
<descr/>
<errors>
Writes a message to debug output indicating the call is ignored.
</errors>
<seealso/>
</element>
<element name="TCanvas.CheckHelper.AHelper">
<short/>
</element>
<element name="TCanvas.GetDefaultColor">
<short>Gets the default color value for the canvas.</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.GetDefaultColor.Result">
<short>TColor value that is the default color for the canvas.</short>
</element>
<element name="TCanvas.GetDefaultColor.ADefaultColorType">
<short>Not used in the current implementation.</short>
</element>
<element name="TCanvas.GetClipRect">
<short>
<var>GetClipRect</var> - if an error is encountered in finding the Clipping
Rectangle dimensions, sets some defaults anyway.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.GetClipRect.Result">
<short/>
</element>
<element name="TCanvas.SetClipRect">
<short>Sets the value for the ClipRect property.</short>
<descr>
<p>
Overrides the method defined in the TFPCustomCanvas ancestor. Calls the
inherited method. Handles conversion of the logical coordinates in the
clipping rectangle to device coordinates, and sets the clipping region to the
converted values.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.SetClipRect.ARect">
<short>New value for the property.</short>
</element>
<element name="TCanvas.GetClipping">
<short>
<var>GetClipping</var> returns <b>True</b> if clipping is being performed.
</short>
</element>
<element name="TCanvas.GetClipping.Result">
<short/>
</element>
<element name="TCanvas.SetClipping">
<short>
<var>SetClipping</var> specifies whether clipping is to be performed.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.SetClipping.AValue">
<short/>
</element>
<element name="TCanvas.GetPixel">
<short>Gets the value for the indexed Pixels property.</short>
<descr/>
<seealso>
<link id="TCanvas.Pixels"/>
</seealso>
</element>
<element name="TCanvas.GetPixel.Result">
<short>Value for the property.</short>
</element>
<element name="TCanvas.GetPixel.X">
<short>Horizontal canvas coordinate for the pixel.</short>
</element>
<element name="TCanvas.GetPixel.Y">
<short>Vertical canvas coordinate for the pixel.</short>
</element>
<element name="TCanvas.CreateBrush">
<short>
Ensures that the handle for the Brush is valid and configured with the Brush
settings.
</short>
<descr>
<p>
<var>CreateBrush</var> is a procedure used to create and/or configure handles
for the canvas <var>Brush</var>.
</p>
<p>
<var>SelectObject</var> is called to get an existing Brush handle, and save a
copy of the handle for local access in the canvas. Canvas state flags are
updated to indicate that the Brush handle is valid.
</p>
<p>
The styles stored in Brush are checked for hatched-style brushes. When no
hatch styles are used, the background color for the canvas is set to the
color specified in Brush. If the Brush style is bsSolid, the background mode
is set to OPAQUE. Otherwise, the TRANSPARENT background mode is used.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.CreateFont">
<short>
Ensures that the Font for the canvas is valid and uses the correct color.
</short>
<descr>
<p>
Gets the handle for the <var>Font</var> from its <var>Reference</var> class.
The first time the Font handle is selected, the handle for the default font
is returned as saved for use with <var>DeselectHandles</var>.
</p>
<p>
CreateFont updates the state flags for the canvas to include the value
<var>csFontValid</var>. <var>SetTextColor</var> is called to apply the color
from the Font to the canvas Handle.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.CreateHandle">
<short>Creates a new Handle for the Canvas.</short>
<descr>
<p>
CreateHandle has an empty implementation in TCanvas.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.CreatePen">
<short>
Ensures that the Pen for the canvas is valid, configured, and positioned.
</short>
<descr>
<p>
<var>CreatePen</var> is a procedure used to create, configure and position
the pen for the canvas.
</p>
<p>
CreatePen calls <var>SelectObject</var> to get the <var>Handle</var> for the
<var>Pen</var>, and saves a copy for local access in the class instance. The
<var>MoveTo</var> method is called to position the Pen to the coordinates in
the <var>PenPos</var> property. Canvas state flags are updated to indicate
that the handle for the Pen is valid.
</p>
<p>
CreatePen is called when <var>RequiredState</var> is used to check for a
valid pen handle.
</p>
</descr>
<seealso>
<link id="TCanvas.Pen"/>
<link id="TCanvas.Handle"/>
<link id="TCanvas.RequiredState"/>
<link id="TPen.Reference"/>
<link id="TPenMode"/>
<link id="TCanvasStates"/>
</seealso>
</element>
<element name="TCanvas.CreateRegion">
<short>Ensures that the handle for the canvas Region is valid.</short>
<descr>
<p>
<var>CreateRegion</var> is a procedure used to ensure that the handle for the
rectangular
<var>Region</var> in the canvas is valid.
</p>
<p>
CreateRegion calls <var>SelectObject</var> to the get the handle for the
Region, and saves a local copy for access in the class instance. Canvas state
flags are updated to indicates that the handle for the Region is valid.
</p>
<p>
CreateRegion is declared as a virtual method, and may be overridden in
descendant classes.
</p>
<remark>
CreateRegion is not used in the current LCL implementation.
</remark>
</descr>
<seealso/>
</element>
<element name="TCanvas.DeselectHandles">
<short>Deselects all sub-handles in the current device context.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.PenChanging">
<short>Implements the default OnChanging event handler used for the Pen in
the canvas.
</short>
<descr>
<p>
Ensures that canvas state flags indicate both the handle and the pen handle
are valid.
No actions are performed in the method if either handle is not valid.
</p>
<p>
Removes the value csPenValid from the canvas state flags, and selects the
saved pen handle in the class instance. The internal copy of the saved pen
handle is set to 0.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.PenChanging.APen">
<short>Object for the event notification.</short>
</element>
<element name="TCanvas.FontChanging">
<short>
Implements the OnChanging event handler for the Font used on the canvas.
</short>
<descr>
<p>
<var>FontChanging</var> is assigned as the OnChanging event handler for the
Font property in the constructor for the class instance. It allows the canvas
class to be notified and updated when a new font is assigned to the canvas.
</p>
<p>
FontChanging ensures that both the Handle and the Font for the canvas are
valid. No actions are performed in the method if State does not contain the
values csFontValid and csHandleValid. It removes csFontValid from the States
property and reselects the handle for the Font in the control.
</p>
</descr>
<seealso>
<link id="TCanvas.Font"/>
<link id="TCanvas.Create"/>
<link id="TCanvas.OnChange"/>
<link id="TFont"/>
</seealso>
</element>
<element name="TCanvas.FontChanging.AFont">
<short>Not used in the current implementation of the method.</short>
</element>
<element name="TCanvas.BrushChanging">
<short>
Implements the OnChanging event handler for the Brush on the canvas.
</short>
<descr>
<p>
<var>BrushChanging</var> is assigned as the OnChanging event handler for the
Brush property in the constructor for the class instance. It allows the
canvas class to be notified and updated when a new brush is assigned to the
canvas.
</p>
<p>
BrushChanging ensures that both the Handle and the Brush for the canvas are
valid. No actions are performed in the method if State does not contain the
values csBrushValid and csHandleValid. It removes csBrushValid from the
States property and reselects the handle for the Brush in the control.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TCanvas.Create"/>
<link id="TCanvas.OnChange"/>
<link id="TBrush"/>
</seealso>
</element>
<element name="TCanvas.BrushChanging.ABrush">
<short>Not used in the current implementation of the method.</short>
</element>
<element name="TCanvas.RegionChanging">
<short>
Implements the OnChanging event handler for the Region on the canvas.
</short>
<descr>
<p>
<var>RegionChanging</var> is assigned as the OnChanging event handler for the
Region property in the constructor for the class instance. It allows the
canvas class to be notified and updated when the region for the canvas is
modified.
</p>
<p>
RegionChanging ensures that both the Handle and the Region for the canvas are
valid. No actions are performed in the method if State does not contain the
values csRegionValid and csHandleValid. It removes csRegionValid from the
States property and reselects the handle for the Region on the control.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.RegionChanging.ARegion">
<short>Not used in the current implementation of the method.</short>
</element>
<element name="TCanvas.RealizeAutoRedraw">
<short>Implements the AutoRedraw feature when enabled.</short>
<descr>
<p>
RealizeAutoRedraw is called when a new value for the AutoRedraw property is
assigned. No actions are performed in the method when AutoRedraw is
<b>False</b>, or when the Handle for the canvas has not been allocated.
</p>
<p>
RealizeAutoRedraw calls the DCRedraw method in the widgetset class using the
value in Handle as the device context.
</p>
</descr>
<seealso>
<link id="TCanvas.AutoRedraw"/>
<link id="TCanvas.Handle"/>
</seealso>
</element>
<element name="TCanvas.RealizeAntialiasing">
<short>Implements the Anti-aliasing feature for the canvas.</short>
<descr>
<p>
<var>RealizeAntialiasing</var> is called when a new value has been assigned
to the <var>AntialiasingMode</var> property. No actions are performed in the
method if the <var>Handle</var> has not been allocated for the canvas.
</p>
<p>
RealizeAntialiasing uses the value in AntialiasingMode to determine the
action required in the method.
</p>
<dl>
<dt>amOn</dt>
<dd>
Calls DCSetAntialiasing in the widgetset to enable anti-aliasing for the
Handle.
</dd>
<dt>amOff</dt>
<dd>
Calls DCSetAntialiasing in the widgetset to disable anti-aliasing for the
Handle.
</dd>
<dt>amDontCare</dt>
<dd>
Calls DCSetAntialiasing using the default capabilities for the widgetset.
</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TCanvas.RequiredState">
<short>Ensures that all handles needed for the canvas are valid.</short>
<descr>
<p>
<var>RequiredState</var> is a procedure used to ensure that the canvas state
flags include the values specified in the ReqState parameter. The
<var>TCanvasStates</var> values represent handles that must be allocated for
the canvas.
</p>
<p>
When a state value is not present in the flags, the corresponding routine
used to create the required handle is called.
</p>
<dl>
<dt>csHandleValid</dt>
<dd>
Calls CreateHandle, and raises an EInvalidOperation if the handle could not
be allocated. Sets the AntialiasingMode for the canvas. Includes
csHandleValid in the canvas state flags on success.
</dd>
<dt>csFontValid</dt>
<dd>
Calls CreateFont, and includes csFontValid in the canvas state flags on
success.
</dd>
<dt>csPenValid</dt>
<dd>
Calls CreatePen. Includes csBrushValid in the canvas state flags when the Pen
style is a Brush pattern (psDash, psDot, psDashDot, psDashDotDot). Includes
csPenValid in the canvas state flags on success.
</dd>
<dt>csBrushValid</dt>
<dd>
Calls CreateBrush. Includes csBrushValid in the canvas state flags on success.
</dd>
</dl>
<p>
RequiredState is called from method implementations prior to performing an
operation which requires a specific canvas state (or handles).
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.RequiredState.ReqState">
<short>Required state flags.</short>
</element>
<element name="TCanvas.SetHandle">
<short>Sets the value for the Handle property.</short>
<descr>
<p>
De-selects any existing handles in the class instance, and sets the new value
for the property. Applies the anti-aliasing mode when the handle is valid.
Updates the state flags for the canvas.
</p>
</descr>
<seealso>
<link id="TCanvas.Handle"/>
</seealso>
</element>
<element name="TCanvas.SetHandle.NewHandle">
<short>New value for the property.</short>
</element>
<element name="TCanvas.SetInternalPenPos">
<short>
<var>SetInternalPenPos</var> - specify position for the Pen.
</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.SetInternalPenPos.Value">
<short/>
</element>
<element name="TCanvas.SetPixel">
<short>Sets a value in the indexed Pixels property.</short>
<descr/>
<seealso>
<link id="TCanvas.Pixels"/>
</seealso>
</element>
<element name="TCanvas.SetPixel.X">
<short>Horizontal canvas coordinate for the pixel.</short>
</element>
<element name="TCanvas.SetPixel.Y">
<short>Vertical canvas coordinate for the pixel.</short>
</element>
<element name="TCanvas.SetPixel.Value">
<short>New value for the indexed property.</short>
</element>
<element name="TCanvas.FreeHandle">
<short>Frees the Handle for the canvas.</short>
<descr>
<p>
<var>FreeHandle</var> is a procedure used to free the <var>Handle</var> for
the canvas. FreeHandle sets the value in Handle to <b>0 (zero)</b> to
indicate that it is unassigned.
</p>
</descr>
<seealso>
<link id="TCanvas.Handle"/>
</seealso>
</element>
<element name="TCanvas.Create">
<short>
Constructor for the class instance.
</short>
<descr>
<p>
<var>Create</var> is the constructor for <var>TCanvas</var>. It calls the
inherited <var>Create</var> method and sets defaults for many properties and
actions.
</p>
<p>
It also initializes Font, Pen, and Brush properties and assigns their event
handlers. It sets default values for Alignment, Layout, Clipping and Opacity.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the destructor for <var>TCanvas</var>. It frees handles
and regions, and calls the inherited Destroy method, sets font, pen and brush
resources to <b>Nil</b> in the TCanvas class instance and makes its resources
available.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.Lock">
<short>
<var>Lock</var> the canvas, making it unavailable for drawing.
</short>
<descr>
<p>Calls the <var>LockCanvas</var> method in the <var>TFPCustomCanvas</var>
ancestor.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.TryLock">
<short>
<var>TryLock</var> - examines the Lock state, and performs Lock if necessary.
</short>
</element>
<element name="TCanvas.Unlock">
<short>
<var>Unlock</var> or release a previously locked Canvas.
</short>
<descr>
<p>
Calls the <var>UnlockCanvas</var> method in the <var>TFPCustomCanvas</var>
ancestor.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.Refresh">
<short>Sets Pen, Brush, and Font handles to their default values.</short>
<descr>
<p>
Calls <var>DeselectHandles</var> to reset the handles to their default
values. Requires a valid Handle for the canvas. Saved handles for the Pen,
Brush, and Font are released.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.Changing">
<short>Signals the OnChanging event handler (when assigned).</short>
<descr>
<p>
<var>Changing</var> is called in methods which perform drawing operations,
and occurs before the actions that affect the handles or settings for the
canvas.
</p>
</descr>
<seealso>
<link id="TCanvas.OnChanging"/>
</seealso>
</element>
<element name="TCanvas.Changed">
<short>Signals the OnChange event handler (when assigned).</short>
<descr>
<p>
<var>Changed</var> is called in methods which perform drawing operations, and
occurs after the actions that affect the handles or settings for the canvas
have been completed.
</p>
</descr>
<seealso>
<link id="TCanvas.OnChange"/>
</seealso>
</element>
<element name="TCanvas.SaveHandleState">
<short>Stores the state for the Handle in the canvas.</short>
<descr>
<p>
<var>SaveHandleState</var> is used in the LCL instead of direct calls to
<var>SaveDC</var> and <var>RestoreDC</var> in widgetset classes. Used along
with <var>RestoreHandleState</var>. It allows multiple device contexts to be
captured and handled in a LIFO fashion.
</p>
</descr>
<seealso>
<link id="TCanvas.RestoreHandleState"/>
</seealso>
</element>
<element name="TCanvas.RestoreHandleState">
<short>Restores the previous Handle state for the canvas.</short>
<descr/>
<seealso/>
</element>
<element name="TCanvas.Arc">
<short>
Use <var>Arc</var> to draw an elliptically curved line with the current Pen.
</short>
<descr>
<p>
Use <var>Arc</var> to draw an elliptically curved line with the current Pen.
Arc is re-introduced in TCanvas to provide additional overloads for the
method found in the platform-specific LCL interface object. Parameter values
passed to the overloaded methods are in turn passed to the widgetset class
for the platform.
</p>
<p>
<var>ALeft</var>, <var>ATop</var>, <var>ABottom</var>, and <var>ARight</var>
represent the canvas bounds in which the drawing operation is performed.
</p>
<p>
One variant of the method provides the <var>Angle16Deg</var> and
<var>Angle16DegLength</var> arguments.
</p>
<p>
Angle16Deg contains the central angle which defines the direction for the arc
endpoint. Positive values indicate a counter-clockwise direction.Zero degrees
lies at the 3 o'clock position. These value is expressed in 1/16ths of a
degree. For example, a full circle equals 5760 (16*360) increments.
</p>
<p>
Angle16DegLength contains the arc length used to determine the over-all
circumference of the circle for with the arc is a segment.
</p>
<p>
Another variant provides the <var>SX</var>, <var>SY</var> and <var>EX</var>,
<var>EY</var> arguments representing the starting and ending radial points
between which the Arc is drawn.
</p>
</descr>
<version>
Drawing methods which reintroduce those in the TFPCustomCanvas ancestor class
were added in LCL version 2.6.1.
</version>
</element>
<element name="TCanvas.Arc.ALeft">
<short>Left boundary for the canvas.</short>
</element>
<element name="TCanvas.Arc.ATop">
<short>Top boundary for the canvas.</short>
</element>
<element name="TCanvas.Arc.ARight">
<short>Right boundary for the canvas.</short>
</element>
<element name="TCanvas.Arc.ABottom">
<short>Bottom boundary for the canvas.</short>
</element>
<element name="TCanvas.Arc.Angle16Deg">
<short>Angle for the arc segment in 1/16ths of a degree.</short>
</element>
<element name="TCanvas.Arc.Angle16DegLength">
<short>Arc length.</short>
</element>
<element name="TCanvas.Arc.SX">
<short>
Horizontal coordinate for the the starting radial point in the arc.
</short>
</element>
<element name="TCanvas.Arc.SY">
<short>
Vertical coordinate for the the starting radial point in the arc.
</short>
</element>
<element name="TCanvas.Arc.EX">
<short>
Horizontal coordinate for the the ending radial point in the arc.
</short>
</element>
<element name="TCanvas.Arc.EY">
<short>Vertical coordinate for the the ending radial point in the arc.</short>
</element>
<element name="TCanvas.ArcTo">
<short>Draws an elliptically curved line and updates the Pen position.</short>
<descr>
<p>
Like the Arc method, but updates the Pen position.
</p>
</descr>
<seealso>
<link id="TCanvas.Arc"/>
</seealso>
</element>
<element name="TCanvas.ArcTo.ALeft">
<short/>
</element>
<element name="TCanvas.ArcTo.ATop">
<short/>
</element>
<element name="TCanvas.ArcTo.ARight">
<short/>
</element>
<element name="TCanvas.ArcTo.ABottom">
<short/>
</element>
<element name="TCanvas.ArcTo.SX">
<short/>
</element>
<element name="TCanvas.ArcTo.SY">
<short/>
</element>
<element name="TCanvas.ArcTo.EX">
<short/>
</element>
<element name="TCanvas.ArcTo.EY">
<short/>
</element>
<element name="TCanvas.AngleArc">
<short>
Draws an arc over a specified angle along the circumference of a circle.
</short>
<descr>
<p>
<var>AngleArc</var> is a method used to draw an arc over a specified angle
along the circumference of a circle with given radius and center point.
</p>
<p>
<var>X</var> and <var>Y</var> contain the coordinates for the center of the
circle along which the arc is drawn.
</p>
<p>
<var>Radius</var> is the distance from the center point of the circle to the
circumference where the arc is drawn. The LongWord type can contain positive
integer values in the range 0..4294967295.
</p>
<p>
<var>StartAngle</var> and <var>SweepAngle</var> indicate where the arc is
drawn on the circumference of the circle. The angle values are specified in
degrees.
</p>
<p>
StartAngle contains the angle from the center of the circle to the starting
point on the circumference. Its value is relative to the X-Axis and
increments in the counter-clockwise direction.
</p>
<p>
SweepAngle defines the length of the arc expressed in degrees, and is
used to find the ending point for the arc. Its value is relative to the
starting point, and increments in the counter-clockwise direction.
</p>
<p>
Before the arc is drawn, LineTo is used to drawn a line from the current pen
position to the starting point of the arc.
</p>
<p>
The Arc method is called to render the arc using the center point, radius,
starting point, and ending point values.
</p>
<p>
After the arc is drawn, the Pen position is moved to the ending point for the
arc.
</p>
<p>
Update values for the Pen style, mode, color or width prior to calling the
method.
</p>
</descr>
<seealso>
<link id="TCanvas.Arc"/>
<link id="TCanvas.Pen"/>
</seealso>
</element>
<element name="TCanvas.AngleArc.X">
<short>
Horizontal coordinate for the center of the circle.
</short>
</element>
<element name="TCanvas.AngleArc.Y">
<short>
Vertical coordinate for the center of the circle.
</short>
</element>
<element name="TCanvas.AngleArc.Radius">
<short>
Distance from the center point to the circumference of the circle.
</short>
</element>
<element name="TCanvas.AngleArc.StartAngle">
<short>
Angle (in degrees) relative to the X-Axis where the arc is started.
</short>
</element>
<element name="TCanvas.AngleArc.SweepAngle">
<short>
Angle (in degrees) relative to StartAngle where the arc ends.
</short>
</element>
<element name="TCanvas.BrushCopy">
<short>
Copies part of a bitmap to a rectangle on the canvas and replaces the
transparent color with the canvas Brush color.
</short>
<descr>
<p>
The end result is that pixels copied from ABitmap using the color in
ATransparentColor are replaced with the brush color for the canvas. This makes
the copied area in ASourceRect partially transparent when applied to ADestRect.
</p>
<p>
Pixels colors from ASourceRect are applied to a temporary image, and the
StretchDraw method is called to draw the copied rectangle onto the canvas.
</p>
<p>
Set the Color property in Brush before calling the method.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TCanvas.StretchDraw"/>
<link id="TBrush.Color"/>
<link id="TColorToFPColor"/>
<link id="TBitmap"/>
</seealso>
</element>
<element name="TCanvas.BrushCopy.ADestRect">
<short>
Rectangle on the canvas where the content from ABitmap is stored.
</short>
</element>
<element name="TCanvas.BrushCopy.ABitmap">
<short>
TBitmap with the pixel content copied in the method.
</short>
</element>
<element name="TCanvas.BrushCopy.ASourceRect">
<short>
Rectangle with the bounds for the copied region in ABitmap.
</short>
</element>
<element name="TCanvas.BrushCopy.ATransparentColor">
<short>
Specifies the pixel color in ABitmap which becomes transparent when copied to
the destination rectangle on the Canvas.
</short>
</element>
<element name="TCanvas.Chord">
<short>
Draw a filled chord shape starting and finishing at the specified angular
positions on the circumference.
</short>
<descr>
<p>
Use Chord to draw a filled Chord shape on the canvas.
</p>
<p>
The angles angle1 and angle2 are 1/16th of a degree. For example, a full
circle equals 5760 (16*360).
</p>
<p>
Positive values of Angle and AngleLength mean counter-clockwise while
negative values mean clockwise direction. Zero degrees is at the 3 o'clock
position.
</p>
<p>
Alternatively the starting and ending points may be specified as radial
points (sx, sy, ex, ey).
</p>
</descr>
</element>
<element name="TCanvas.Chord.x">
<short/>
</element>
<element name="TCanvas.Chord.y">
<short/>
</element>
<element name="TCanvas.Chord.Width">
<short/>
</element>
<element name="TCanvas.Chord.Height">
<short/>
</element>
<element name="TCanvas.Chord.StartAngle16Deg">
<short/>
</element>
<element name="TCanvas.Chord.EndAngle16Deg">
<short/>
</element>
<element name="TCanvas.Chord.SX">
<short/>
</element>
<element name="TCanvas.Chord.SY">
<short/>
</element>
<element name="TCanvas.Chord.EX">
<short/>
</element>
<element name="TCanvas.Chord.EY">
<short/>
</element>
<element name="TCanvas.Chord.x1">
<short/>
</element>
<element name="TCanvas.Chord.y1">
<short/>
</element>
<element name="TCanvas.Chord.x2">
<short/>
</element>
<element name="TCanvas.Chord.y2">
<short/>
</element>
<element name="TCanvas.CopyRect">
<short>
Copies the rectangle found at <var>Source</var> in <var>SrcCanvas</var> to
the destination position in <var>Dest</var>.
</short>
<descr>
<p>
<var>CopyRect</var> is a method used to copy a rectangular area from another
TCanvas instance to the specified location on the canvas instance.
</p>
<p>
No actions are performed in the method if SrcCanvas has not been assigned, or
when the width or height in either Source or Dest is zero (0) pixels.
</p>
<p>
CopyRect calls the StretchBlt routine in the LCL interface to expand or shrink
the content in Source to the dimensions in Dest. The CopyMode property
provides the raster operation for the block transfer.
</p>
<p>
CopyRect calls Changing to signal an assigned OnChanging event handler prior
to the block transfer. CopyRect calls Changed to signal an assigned OnChange
event handler immediately after to the block transfer.
</p>
</descr>
<seealso>
<link id="TCanvas.CopyMode"/>
<link id="TCanvas.Changing"/>
<link id="TCanvas.Changed"/>
</seealso>
</element>
<element name="TCanvas.CopyRect.Dest">
<short>
TRect instance with the bounds where the copied values are stored on the
canvas.
</short>
</element>
<element name="TCanvas.CopyRect.SrcCanvas">
<short>
TCanvas instance with the value copied in the method.
</short>
</element>
<element name="TCanvas.CopyRect.Source">
<short>
TRect instance with the content copied in the method.
</short>
</element>
<element name="TCanvas.Draw">
<short>
Draws the image content in SrcGraphic on the canvas at the specified position.
</short>
<descr>
<p>
<var>Draw</var> is reintroduced method in TCanvas; it reimplements the
inherited method to use the TGraphic instance in SrcGraphic as the container
with the image content drawn in the method.
</p>
<p>
No actions are performed in the method if SrcGraphic has not been assigned.
</p>
<p>
Draw calls the StretchDraw method to render the content in SrcGraphic on the
canvas at the position specified in X and Y. The Width and Height in SrcGraphic
set the bounds for the image rectangle applied to the canvas using StretchDraw.
Since a stretch mode is not enabled when StretchDraw is called, the source
graphic is not enlarged or shrunk to the canvas size. The source graphic is
clipped if its bounds exceeds the canvas bounds. The Draw method in SrcGraphic
performs the actions needed to position and rendering the content to the Pixels
in the canvas.
</p>
<p>
CopyMode determines the raster operation performed for the Pixels affected on
the canvas.
</p>
<p>
Calling Draw causes the OnChanging and OnChange events to be signalled (when
assigned). OnChanging occurs prior to calling Draw in the TGraphic instance.
OnChange occurs after calling Draw in the TGraphic instance.
</p>
</descr>
<seealso>
<link id="TCanvas.StretchDraw"/>
<link id="TCanvas.CopyMode"/>
<link id="TCanvas.OnChange"/>
<link id="TCanvas.OnChanging"/>
<link id="TGraphic.Width"/>
<link id="TGraphic.Height"/>
<link id="TGraphic.Draw"/>
<link id="#rtl.classes.TRect">TRect</link>
</seealso>
</element>
<element name="TCanvas.Draw.X">
<short>
Horizontal coordinate where the content is drawn.
</short>
</element>
<element name="TCanvas.Draw.Y">
<short>
Vertical coordinate where the content is drawn.
</short>
</element>
<element name="TCanvas.Draw.SrcGraphic">
<short>
TGraphic instance with the image content drawn in the method.
</short>
</element>
<element name="TCanvas.DrawFocusRect">
<short>
Draws a focus rectangle around the specified rectangle on the canvas.
</short>
<descr>
<p>
<var>DrawFocusRect</var> is a method used to draw a focus rectangle around the
rectangular region specified in ARect.
</p>
<p>
DrawFocusRect calls Changing to signal an assigned OnChanging event handler
prior to drawing the focus rectangle. It calls Changed to signal an assigned
OnChange event handler immediately after drawing the focus rectangle.
</p>
<p>
DrawFocusRect calls the DrawFocusRect routine in the LCL interface to perform
the drawing opertation using the Handle for the canvas.
</p>
</descr>
<seealso>
<link id="TCanvas.Changing"/>
<link id="TCanvas.Changed"/>
<link id="#lcl.lclintf.DrawFocusRect">LCLIntf.DrawFocusRect</link>
</seealso>
</element>
<element name="TCanvas.DrawFocusRect.ARect">
<short>
TRect instance with the bounds for the drawing operation.
</short>
</element>
<element name="TCanvas.StretchDraw">
<short>
Expands or contracts the specific graphic content to fit the specified
destination rectangle on the canvas.
</short>
<descr>
<p>
StretchDraw is a reintroduced method in TCanvas; it reimplements the inherited
method to use the specified TGraphic content in the drawing operation instead
of a TFPCustomImage instance.
</p>
<p>
No actions are performed in the method if SrcGraphic has not been assigned.
</p>
<p>
DestRect provides the rectangular area on the canvas where the graphic content
is drawn. The Draw method in SrcGraphic is called to draw the image content
onto the canvas instance. If the dimensions in DestRect differ from the Width
or Height in SrcGraphic, the imgae content is expanded or contracted to fit
the destination rectangle. This may causes the aspect ratio for the image
content to be changed.
</p>
<p>
StretchDraw calls Changing to signal an assigned OnChanging event handler
immediately before the drawing operation. It calls Changed to signal an
assigned OnChange event handler when the drawing operation has been completed.
</p>
</descr>
<seealso>
<link id="TCanvas.Changing"/>
<link id="TCanvas.Changed"/>
<link id="TGraphic.Draw"/>
<link id="#rtl.classes.TRect">TRect</link>
</seealso>
</element>
<element name="TCanvas.StretchDraw.DestRect">
<short>
TRect instance where the specified content is drawn on the canvas.
</short>
</element>
<element name="TCanvas.StretchDraw.SrcGraphic">
<short>
TGraphic instance with the image content drawn in the method.
</short>
</element>
<element name="TCanvas.Ellipse">
<short>
Draws a filled ellipse (or circle) on the canvas.
</short>
<descr>
<p>
<var>Ellipse</var> is an overloaded, reintroduced method in TCanvas used to
draw a filled ellipse shape. The overloaded variants allow the shape to be
defined either as a rectangular area where the shape is drawn, or by using
Integer coordinates to establish the major and minor axis for the shape.
</p>
<p>
ARect is the TRect instance with the bounds for the shape.
</p>
<p>
x1, y1, x2, and y2 allows the bounds for the shape to be specified as Integer
values.
</p>
<p>
The bounds are used to calculate the vertex, co-vertex, linear eccentricity
and focal points for the shape.
</p>
<p>
When the bounds area is a square, the resulting shape is a circle.
</p>
<p>
Ellipse calls the Ellipse routine in the LCL interface to perform the drawing
operation.
</p>
</descr>
<seealso>
<link id="#lcl.lclintf.Ellipse">LCLIntf.Ellipse</link>
</seealso>
</element>
<element name="TCanvas.Ellipse.ARect">
<short>
TRect instance with the bounds for the shape.
</short>
</element>
<element name="TCanvas.Ellipse.x1">
<short>
Left coordinate for the bounding box.
</short>
</element>
<element name="TCanvas.Ellipse.y1">
<short>
Top coordinate for the bounding box.
</short>
</element>
<element name="TCanvas.Ellipse.x2">
<short>
Right coordinate for the bounding box.
</short>
</element>
<element name="TCanvas.Ellipse.y2">
<short>
Bottom coordinate for the bounding box.
</short>
</element>
<element name="TCanvas.FillRect">
<short>
Fills a rectangular area on the canvas using the current Brush settings.
</short>
<descr>
<p>
<var>FillRect</var> is an overloaded method used to fill a rectangular area
on the canvas using the style, color, or bitmap defined in Brush. The
overloaded variants allow the vertices for the rectangle to be specified as
either:
</p>
<ul>
<li>
Four separate Integer coordinates representing the top/left and bottom/right
of the shape.
</li>
<li>
A TRect instance where the vertices are represented as either four Integers,
two TPoint instances for TopLeft and BottomRight, or a vector using the
TArray4IntegerType.
</li>
</ul>
<p>
FillRect calls the routine in the LCL interface used to implement the method
for a specific widgetset.
</p>
<p>
Use Rectangle to draw a filled rectangle with borders. Use FloodFill to fill
a rectangular area bounded by a specified color value.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TCanvas.FloodFill"/>
<link id="TCanvas.Rectangle"/>
<link id="#lcl.lclintf.FillRect">LCLIntf.FillRect</link>
</seealso>
</element>
<element name="TCanvas.FillRect.ARect">
<short>
TRect instance with the vertices for the rectangular area filled in the
method.
</short>
</element>
<element name="TCanvas.FillRect.X1">
<short>Left coordinate for the Top, Left of the rectangle.</short>
</element>
<element name="TCanvas.FillRect.Y1">
<short>Top coordinate for the Top, Left of the rectangle.</short>
</element>
<element name="TCanvas.FillRect.X2">
<short>Right coordinate for the Bottom, Right of the rectangle.</short>
</element>
<element name="TCanvas.FillRect.Y2">
<short>Bottom coordinate for the Bottom, Right of the rectangle.</short>
</element>
<element name="TCanvas.FloodFill">
<short>
Fills an area at the specified coordinates with the current Brush for the
canvas.
</short>
<descr>
<p>
FloodFill is a method used to fill the area at the point specified in X, Y
with the style, color, or bitmap defined in Brush.
</p>
<p>
FillColor contains the color value for the boundary of the fill, or the area
to be filled, depending on the value in FillStyle.
</p>
<p>
FillStyle determines the type of fill operation performed in the method. For
example:
</p>
<dl>
<dt>
fsBorder
</dt>
<dd>
The fill area is bounded by pixels with the color specified in FillColor.
Pixels are filled in all directions with the Brush until the a pixel with the
specified color is found.
</dd>
<dt>
fsSurface
</dt>
<dd>
The fill area is defined as the color specified in FillColor. Pixels with
this color are filled in all directions with the Brush until no more pixels
with this color are found.
</dd>
</dl>
<p>
Please note that comments in the TGraphicsFillStyle source code have these
conditions reversed.
</p>
<p>
FloodFill calls the routine in the LCL interface used to implement the method
for the widgetset. The return value from the LCL interface is ignored.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TColor"/>
<link id="TFillStyle"/>
<link id="TGraphicsFillStyle"/>
<link id="#lcl.lclintf.FloodFill">LCLIntf.FloodFill</link>
</seealso>
</element>
<element name="TCanvas.FloodFill.X">
<short>
Horizontal coordinate where the fill operation is performed.
</short>
</element>
<element name="TCanvas.FloodFill.Y">
<short>
Vertical coordinate where the fill operation is performed.
</short>
</element>
<element name="TCanvas.FloodFill.FillColor">
<short>
Color replaced or used as a boundary in the fill operation.
</short>
</element>
<element name="TCanvas.FloodFill.FillStyle">
<short>
Determines whether FillColor is the boundary or the target for the fill
operation.
</short>
</element>
<element name="TCanvas.Frame3D">
<short>
Draws a frame for the specified rectangle with a 3-dimensional appearance.
</short>
<descr>
<p>
<var>Frame3D</var> is an overloaded method used to draw a frame for the
specified rectangle with a 3-dimensional appearance. It draws the frame using
the Brush for the canvas with the style, colors, and size passed in the
parameter values. Frame3D does not fill the inner area for the rectangle; it
draws the frame or borders only.
</p>
<p>
<var>ARect</var> is the <var>TRect</var> instance with the bounds where the
drawing operation is performed. It is a variable parameter updated in the
method to return the inner area for the rectangle without the frame area.
</p>
<p>
The overloaded variants allow the drawing style and size for the
3-dimensional frame to be specified.
</p>
<p>
<var>Style</var> contains a value from the TGraphicsBevelCut enumeration and
is used when a beveled frame is desired.
</p>
<p>
<var>TColor</var> values can be provided to use colors to simulate
3-Dimensional relief. <var>TopColor</var> is the color used to draw the top
and left edges on the frame. <var>BottomColor</var> is used to draw the
bottom and right edges on the frame. System colors like cl3DLight,
cl3DHilight, cl3DDkShadow, cl3DShadow, and cl3DFace are commonly used in
these parameters.
</p>
<p>
<var>FrameWidth</var> contains the thickness for the 3-D frame; for left and
right edges it is the border width, for top and bottom edges it is the border
height. The bounds in ARect are inflated by this value before exit.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TColor"/>
<link id="#lazutils.graphtype.TGraphicsBevelCut">TGraphicsBevelCut</link>
<link id="#lcl.lclintf.Frame3d">LCLIntf.Frame3D</link>
</seealso>
</element>
<element name="TCanvas.Frame3D.ARect">
<short>
Bounds for the rectangle on entry, the inner rectangle without the frame area
on exit.
</short>
</element>
<element name="TCanvas.Frame3D.FrameWidth">
<short>
Thickness for the borders drawn in the method.
</short>
</element>
<element name="TCanvas.Frame3D.Style">
<short>
Bevel style used to draw the borders on the rectangle.
</short>
</element>
<element name="TCanvas.Frame3D.TopColor">
<short>
Color used for the top and left edges of the frame.
</short>
</element>
<element name="TCanvas.Frame3D.BottomColor">
<short>
Color used for the bottom and right edges of the frame.
</short>
</element>
<element name="TCanvas.Frame">
<short>
Draws a frame or border around the specified rectangle using the Pen for the
canvas.
</short>
<descr>
<p>
<var>Frame</var> is method used to draw a border or frame for the specified
rectangle use the Pen for the canvas. Overloaded variants of the method are
provided which allow the rectangle to be specified as:
</p>
<ul>
<li>
Four separate Integer coordinates representing the top/left and bottom/right
of the rectangle.
</li>
<li>
A TRect instance where the vertices are represented as either four Integers,
two TPoint instances for TopLeft and BottomRight, or a vector using the
TArray4IntegerType.
</li>
</ul>
<p>
Frame sets the Style property in Brush to bsClear. This suppresses filling
the interior of the rectangle with the Color for the Brush. In others words,
the area in side the frame is transparent. The Brush style is restored to its
previous value prior to exit.
</p>
<p>
Frame calls the Rectangle method to draw the borders on the frame using the
Pen for the canvas.
</p>
<p>
Set property values in Pen prior to calling the method, including:
</p>
<ul>
<li>Mode</li>
<li>Style</li>
<li>Color</li>
<li>Width</li>
<li>JoinStyle</li>
<li>EndCap</li>
</ul>
</descr>
<seealso>
<link id="TCanvas.Rectangle"/>
<link id="TCanvas.FrameRect"/>
<link id="TCanvas.Frame3D"/>
<link id="TCanvas.FloodFill"/>
</seealso>
</element>
<element name="TCanvas.Frame.ARect">
<short>
TRect instance with the bounds for the rectangle.
</short>
</element>
<element name="TCanvas.Frame.X1">
<short>
Left coordinate for the Top, Left of the rectangle.
</short>
</element>
<element name="TCanvas.Frame.Y1">
<short>
Top coordinate for the Top, Left of the rectangle.
</short>
</element>
<element name="TCanvas.Frame.X2">
<short>
Right coordinate for the Bottom, Right of the rectangle.
</short>
</element>
<element name="TCanvas.Frame.Y2">
<short>
Bottom coordinate for the Bottom, Right of the rectangle.
</short>
</element>
<element name="TCanvas.FrameRect">
<short>
Draws a border around the specified rectangle with the Brush for the canvas.
</short>
<descr>
<p>
<var>FrameRect</var> is an overloaded method used to draw a frame or border
for the specified rectangular area using the Brush for the canvas. Overloaded
variants allow the bounds for the rectangle to be defined using:
</p>
<p>
Four separate Integer values representing the Top/Left and Bottom/Right
coordinates for the rectangle.
</p>
<p>
A TRect instance where the vertices are represented as either four Integers,
two TPoint instances for TopLeft and BottomRight, or a vector using the
TArray4IntegerType.
</p>
<p>
FrameRect draws the border for the shape using the style, color, or bitmap
defined in Brush. The drawing operation is always performed using a 1 pixel
width / height.
</p>
<p>
FrameRect calls the routine in the LCL interface which implements the method
for the widgetset. The return value from the LCL interface is ignored.
</p>
<p>
Use Frame to draw borders on a rectangle using the Pen for the canvas. Use
Frame3D to draw borders using a specified bevel style or colors which
simulate 3-dimensional relief.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TCanvas.Frame"/>
<link id="TCanvas.Frame3D"/>
<link id="TCanvas.Rectangle"/>
<link id="#LCL.LCLIntf.FrameRect">LCLIntf.FrameRect</link>
</seealso>
</element>
<element name="TCanvas.FrameRect.ARect">
<short>
TRect instance with the bounds for the rectangle.
</short>
</element>
<element name="TCanvas.FrameRect.X1">
<short>
Left coordinate for the Top, Left of the rectangle.
</short>
</element>
<element name="TCanvas.FrameRect.Y1">
<short>
Top coordinate for the Top, Left of the rectangle.
</short>
</element>
<element name="TCanvas.FrameRect.X2">
<short>
Right coordinate for the Bottom, Right of the rectangle.
</short>
</element>
<element name="TCanvas.FrameRect.Y2">
<short>
Bottom coordinate for the Bottom, Right of the rectangle.
</short>
</element>
<element name="TCanvas.GetTextMetrics">
<short>Gets text metrics for the canvas font.</short>
<descr>
<p>
Calls <var>RequiredState</var> to check state flags for the canvas, and
ensure that the Handle and the Font are valid. RequiredState raises an
Exception if the <var>Handle</var> for the canvas is not valid.
</p>
<p>
Calls GetTextMetrics in the LCL interface to retrieve the ascender,
descender, and height metrics for the canvas Handle. The values are assigned
to members in the <var>TM</var> output argument.
</p>
<p>
The return value is <b>True</b> when text metrics were successfully retrieved
from the widgetset.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.GetTextMetrics.Result">
<short><b>True</b> on success.</short>
</element>
<element name="TCanvas.GetTextMetrics.TM">
<short>Structure with the text metrics.</short>
</element>
<element name="TCanvas.GradientFill">
<short>
Fills a rectangle with a color gradient using the specified colors in a given
direction.
</short>
<descr>
<p>
<var>GradientFill</var> fills the area inside the specified rectangle using a
color gradient with the specified start and stop colors.
</p>
<p>
No actions are performed in the method when ARect has no discernible area;
both the calculated height and width for the rectangle are 0 or a negative
number.
</p>
<p>
The direction for the color gradient is specified in the ADirection argument.
gdVertical causes the color variations to be drawn from top to bottom in the
rectangle starting with the color in AStart and ending with the color in
AStop. gdHorizontal causes the color variations to be draw from left to right
in the rectangle, also starting with the color in AStart and ending with the
color in AStop.
</p>
<p>
GradientFill decomposes color values in AStart and AStop into their Red,
Green, and Blue component values. The differences between the byte values are
varied evenly in the color gradient, and drawn as colored lines oriented in
the direction opposite to the color gradient. The color setting in Pen is
updated, and LineTo is used to draw the number of 1 pixel lines available in
the gradient direction.
</p>
<p>
Please note that the settings in Pen are not stored on entry, or restored
prior to exiting from the method. The Pen color will contain the color in
AStop on exit.
</p>
<p>
Use FloodFill to fill a rectangular area bounded by or filled with a
specified color value. Use FillRect to fill a rectangular area with the Brush
for the canvas.
</p>
</descr>
<seealso>
<link id="TCanvas.Pen"/>
<link id="TCanvas.FloodFill"/>
<link id="TCanvas.FillRect"/>
<link id="TCanvas.Rectangle"/>
<link id="TGradientDirection"/>
</seealso>
</element>
<element name="TCanvas.GradientFill.ARect">
<short>
TRect instance with the bounds for the rectangle.
</short>
</element>
<element name="TCanvas.GradientFill.AStart">
<short>
TColor value used at the start of the color gradient.
</short>
</element>
<element name="TCanvas.GradientFill.AStop">
<short>
TColor value used at the end of the color gradient.
</short>
</element>
<element name="TCanvas.GradientFill.ADirection">
<short>
Direction for the color gradient.
</short>
</element>
<element name="TCanvas.RadialPie">
<short>
<var>RadialPie</var> draws a filled pie-shaped wedge on the canvas with
specified start and end coordinates, and starting and ending angular
positions.
</short>
<descr>
<p>
Use Pie to draw a filled pie-shaped wedge on the canvas.
</p>
<p>
The angles StartAngle16Deg and Angle16DegLength are 1/16th of a degree. For
example, a full circle equals 5760 (16*360).
</p>
<p>
Positive values in StartAngle16Deg means counter-clockwise while negative
values mean clockwise direction. Zero degrees is at the 3 o'clock position.
</p>
</descr>
<seealso>
<link id="TCanvas.Pie"/>
</seealso>
</element>
<element name="TCanvas.RadialPie.x">
<short/>
</element>
<element name="TCanvas.RadialPie.y">
<short/>
</element>
<element name="TCanvas.RadialPie.Width">
<short/>
</element>
<element name="TCanvas.RadialPie.Height">
<short/>
</element>
<element name="TCanvas.RadialPie.StartAngle16Deg">
<short/>
</element>
<element name="TCanvas.RadialPie.Angle16DegLength">
<short/>
</element>
<element name="TCanvas.RadialPie.x1">
<short/>
</element>
<element name="TCanvas.RadialPie.y1">
<short/>
</element>
<element name="TCanvas.RadialPie.x2">
<short/>
</element>
<element name="TCanvas.RadialPie.y2">
<short/>
</element>
<element name="TCanvas.Pie">
<short>
<var>Pie</var> draws a filled Pie-shaped wedge on the canvas.
</short>
<descr>
<p>
Pie is a method used to draw a filled Pie-shaped wedge on the canvas. The pie
is part of an ellipse between the points EllipseX1, EllipseY1, EllipseX2,
EllipseY2. The values StartX, StartY and EndX, EndY represent the starting
and ending radial-points between which the Bounding-Arc is drawn.
</p>
</descr>
</element>
<element name="TCanvas.Pie.EllipseX1">
<short/>
</element>
<element name="TCanvas.Pie.EllipseY1">
<short/>
</element>
<element name="TCanvas.Pie.EllipseX2">
<short/>
</element>
<element name="TCanvas.Pie.EllipseY2">
<short/>
</element>
<element name="TCanvas.Pie.StartX">
<short/>
</element>
<element name="TCanvas.Pie.StartY">
<short/>
</element>
<element name="TCanvas.Pie.EndX">
<short/>
</element>
<element name="TCanvas.Pie.EndY">
<short/>
</element>
<element name="TCanvas.PolyBezier">
<short>
<var>Polybezier</var> draws cubic Bézier curves.
</short>
<descr>
<p>
Use <var>Polybezier</var> to draw cubic Bézier curves.
</p>
<p>
The first curve is drawn from the first point to the fourth point with the
second and third points being the control points.
</p>
<p>
If the <var>Continuous</var> flag is <b>True</b> then each subsequent curve
requires three more points, using the end-point of the previous Curve as its
starting point, the first and second points being used as its control points,
and the third point its end-point.
</p>
<p>
If the <var>Continuous</var> flag is set to <b>False</b>, then each
subsequent curve requires 4 additional points, which are used exactly as in
the first curve.
</p>
<p>
If the <var>Filled</var> flag is set to <b>True</b> then a straight line is
drawn from the last connected point to the starting point, and the entire
curve is filled with the current brush.
</p>
<p>
Any additional points which do not add up to a full Bézier (4 for
Continuous, 3 otherwise) are ignored. There must be at least 4 points to be
connected.
</p>
</descr>
</element>
<element name="TCanvas.PolyBezier.Points">
<short/>
</element>
<element name="TCanvas.PolyBezier.NumPts">
<short/>
</element>
<element name="TCanvas.PolyBezier.Filled">
<short/>
</element>
<element name="TCanvas.PolyBezier.Continuous">
<short/>
</element>
<element name="TCanvas.Polygon">
<short>
Draws a closed, many-sided shape using the Pen for the canvas.
</short>
<descr>
<p>
Use <var>Polygon</var> to draw a closed, many-sided shape on the canvas,
using the <var>Pen</var> for the canvas. After drawing the complete shape,
<var>Polygon</var> fills the shape using the canvas <var>Brush</var>.
</p>
<p>
The <var>Points</var> parameter is an array of points that give the vertices
of the polygon.
</p>
<p>
<var>Winding</var> determines how the polygon is filled. When
<var>Winding</var> is <b>True</b>, <var>Polygon</var> fills the shape using
the <var>Winding</var> fill algorithm.
</p>
<p>
When <var>Winding</var> is <b>False</b>, <var>Polygon</var> uses the even-odd
(alternative) fill algorithm.
</p>
<p>
<var>StartIndex</var> gives the index of the first point in the array to use.
All points before this are ignored.
</p>
<p>
<var>NumPts</var> indicates the number of points to use, starting at
<var>StartIndex</var>.
</p>
<p>
If <var>NumPts</var> is -1 (the default), <var>Polygon</var> uses all points
from <var>StartIndex</var> to the end of the array. The first point is always
connected to the last point.
</p>
<p>
To draw a polygon on the canvas without filling the internal area, use the
<var>Polyline</var> method specifying the first point a second time at the
end of the line.
</p>
</descr>
<seealso>
<link id="TCanvas.PolyLine"/>
</seealso>
</element>
<element name="TCanvas.Polygon.Points">
<short/>
</element>
<element name="TCanvas.Polygon.Winding">
<short/>
</element>
<element name="TCanvas.Polygon.StartIndex">
<short/>
</element>
<element name="TCanvas.Polygon.NumPts">
<short/>
</element>
<element name="TCanvas.Polyline">
<short>
Draws a line which connects a set of points on the canvas.
</short>
<descr>
<p>
Use <var>Polyline</var> to connect a set of points on the <var>Canvas</var>.
If you specify only two points, <var>Polyline</var> draws a single line. The
<var>Points</var> parameter is an array of points to be connected.
</p>
<p>
<var>StartIndex</var> identifies the first point in the array to use.
</p>
<p>
<var>NumPts</var> indicates the number of points to use. If <var>NumPts</var>
is -1 (the default), <var>PolyLine</var> uses all the points from
<var>StartIndex</var> to the end of the array.
</p>
<p>
Calling the <var>MoveTo</var> function with the value of the first point, and
then repeatedly calling <var>LineTo</var> with all subsequent points will
draw the same image on the canvas. However, unlike <var>LineTo</var>,
<var>Polyline</var> does not change the values in <var>PenPos</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.Polyline.Points">
<short>
Array of or pointer to the TPoint instances for the line.
</short>
</element>
<element name="TCanvas.Polyline.StartIndex">
<short>
Position of the first point used when drawing the line.
</short>
</element>
<element name="TCanvas.Polyline.NumPts">
<short>
Number of points available in the pointer.
</short>
</element>
<element name="TCanvas.Rectangle">
<short>
Draws a <var>Rectangle</var> with the specified coordinates.
</short>
<descr>
<p>
<var>Rectangle</var> is an overloaded method reintroduced in TCanvas. It is
used to draw a rectangular shape on the drawing area for the canvas. The
overloaded variants allow the coordinates to be specified as either:
</p>
<ul>
<li>
Four separate Integer values representing the top, left, bottom, and right
vertices for the shape (X1, Y1, X2, Y2).
</li>
<li>
A TRect instance where the vertices are represented as either four Integers,
two TPoint instances for TopLeft and BottomRight, or a vector using the
TArray4IntegerType (Rect).
</li>
</ul>
<p>
Rectangle draws an outline (or borders) for the shape using the mode, style
and width defined in Pen. The rectangle is also filled using the style, color
and/or bitmap defined in Brush.
</p>
<p>
Use FillRect to fill a rectangular area with the current Brush without
drawing its borders. Use FrameRect to draw the borders for the shape using
the current Brush without filling the interior. Use Frame to draw borders for
the shape using the current Pen and a clear Brush for the interior.
</p>
<p>
Rectangle calls the routine in the LCL interface used to implement the method
for the current widgetset.
</p>
</descr>
<seealso>
<link id="TCanvas.Pen"/>
<link id="TCanvas.Brush"/>
<link id="TCanvas.FillRect"/>
<link id="TCanvas.FloodFill"/>
<link id="TCanvas.Frame"/>
<link id="TCanvas.FrameRect"/>
<link id="TCanvas.Frame3D"/>
<link id="#lcl.lclintf.Rectangle">LCLIntf.Rectangle</link>
</seealso>
</element>
<element name="TCanvas.Rectangle.X1">
<short>Left coordinate for the top, left of the rectangle.</short>
</element>
<element name="TCanvas.Rectangle.Y1">
<short>Top coordinate for the top, left of the rectangle.</short>
</element>
<element name="TCanvas.Rectangle.X2">
<short>Right coordinate for the bottom, right of the rectangle.</short>
</element>
<element name="TCanvas.Rectangle.Y2">
<short>Bottom coordinate for the bottom, right of the rectangle.</short>
</element>
<element name="TCanvas.Rectangle.Rect">
<short>
TRect instance with the coordinates for the rectangle vertices.
</short>
</element>
<element name="TCanvas.RoundRect">
<short>
Draws a rectangle with rounded (or radiused) corners at the specified
position.
</short>
<descr>
<p>
<var>RoundRect</var> is an overloaded method in TCanvas used to draw a
rectangle with rounded (or radiused) corners. The overloaded variants allow
the coordinates to be specified as either:
</p>
<ul>
<li>
Four separate Integer values representing the top, left, bottom, and right
vertices for the shape (X1, Y1, X2, Y2).
</li>
<li>
A TRect instance where the vertices are represented as either four Integers,
two TPoint instances for TopLeft and BottomRight, or a vector using the
TArray4IntegerType (Rect).
</li>
</ul>
<p>
RX and RY contain the width and height (respectively) for an ellipse used to
draw arc segments for the rounded corners on the rectangular shape.
</p>
<p>
RoundRect (like Rectangle) draws an outline (or borders) for the shape using
the mode, style and width defined in Pen. The rounded rectangle is also
filled using the style, color and/or bitmap defined in Brush.
</p>
<p>
RoundRect calls the routine in the LCL interface used to implement the method
for the current widgetset.
</p>
</descr>
<seealso>
<link id="#lcl.lclintf.RoundRect">LCLIntf.RoundRect</link>
</seealso>
</element>
<element name="TCanvas.RoundRect.X1">
<short>Left coordinate for the top, left of the rectangle.</short>
</element>
<element name="TCanvas.RoundRect.Y1">
<short>Top coordinate for the top, left of the rectangle.</short>
</element>
<element name="TCanvas.RoundRect.X2">
<short>Right coordinate for the bottom, right of the rectangle.</short>
</element>
<element name="TCanvas.RoundRect.Y2">
<short>Bottom coordinate for the bottom, right of the rectangle.</short>
</element>
<short/>
<element name="TCanvas.RoundRect.RX">
<short>
Horizontal distance to the ellipse origin used for the rounded corners.
</short>
</element>
<element name="TCanvas.RoundRect.RY">
<short>
Vertical distance to the ellipse origin used for the rounded corners.
</short>
</element>
<element name="TCanvas.RoundRect.Rect">
<short>
TRect instance with the coordinates for the rectangle vertices.
</short>
</element>
<element name="TCanvas.TextOut">
<short>Writes text at the specified position on the canvas.
</short>
<descr>
<p>
Writes the value in <var>Text</var> at the given <var>X, Y</var> coordinates
on the canvas.
</p>
<p>
Calls <var>Changing</var> to signal the <var>OnChanging</var> event handler
(when assigned). Calls <var>RequiredState</var> to ensure that handles for
the canvas, Font, and Brush are valid.
</p>
<p>
Properties in <var>TextStyle</var> are converted and combined into the
numeric flag used to format the Text, including <var>Opaque</var> and
<var>RightToLeft</var>. Uses <var>ExtUTF8Out</var> to write to the device
context using the position and style flags needed.
</p>
<p>
The <var>Pen</var> is positioned at the end of the <var>Text</var> when the
output operation is completed. The vertical canvas coordinate is not altered
in the method. In other words, TextOut does not handle multi-line text or
word wrapping of the value in Text.
</p>
<p>
TextOut calls <var>Changed</var> to signal the <var>OnChange</var> event
handler (when assigned).
</p>
</descr>
<seealso>
<link id="TCanvas.Changing"/>
<link id="TCanvas.OnChanging"/>
<link id="TCanvas.Changed"/>
<link id="TCanvas.OnChange"/>
<link id="TCanvas.RequiredState"/>
<link id="TCanvas.Font"/>
<link id="TCanvas.Brush"/>
<link id="TCanvas.Pen"/>
<link id="TCanvas.TextStyle"/>
<link id="#lcl.lclintf.ExtUTF8Out">ExtUTF8Out</link>
</seealso>
</element>
<element name="TCanvas.TextOut.X">
<short>Horizontal canvas coordinate where the text is written.</short>
</element>
<element name="TCanvas.TextOut.Y">
<short>Vertical canvas coordinate where the text is written.</short>
</element>
<element name="TCanvas.TextOut.Text">
<short>Values written in the text output operation.</short>
</element>
<element name="TCanvas.TextRect">
<short>
Draws text on the canvas at the specified location using the given style.
</short>
<descr>
<p>
Writes <var>Text</var> string within a specified rectangle, according to
predefined <var>Style</var>.
</p>
<p>
The boundaries of the text rectangle are specified in <var>ARect</var>.
<var>X, Y</var> define the starting point for writing the <var>Text</var>
within the rectangle.
</p>
<p>
<var>TextStyle</var> determines whether the text is justified, centered,
word-wrapped, clipped at the rectangle boundaries, etc. If the
<var>Style</var> argument is omitted, defaults are assumed.
</p>
<p>
<b>Note:</b> The exact text position depends on the specified rectangle, the
<var>X, Y</var> coordinates, and settings in <var>TextStyle</var>:
</p>
<ul>
<li>
<var>TextStyle.Alignment = taLeftJustify</var>: Text begins at <var>X</var>
</li>
<li>
<var>TextStyle.Alignment = taCenter</var>: Text center is in the center of
the rectangle (horizontally)
</li>
<li>
<var>TextStyle.Alignment = taRightJustify</var>: Text ends at right edge of
the rectangle
</li>
<li>
<var>TextStyle.Layout = tlTop</var>: Top of the text is at <var>Y</var>
</li>
<li>
<var>TextStyle.Layout = tlCenter</var>: Text center is in the center of the
rectangle (vertically)
</li>
<li>
<var>TextStyle.Layout = tlBottom</var>: Text sits above the the bottom edge
of the rectangle
</li>
</ul>
</descr>
</element>
<element name="TCanvas.TextRect.ARect">
<short>Rectangle within which the specified text is drawn.</short>
</element>
<element name="TCanvas.TextRect.X">
<short>
Horizontal text start (respected only if TextStyle.Alignment = taLeftJustify).
</short>
</element>
<element name="TCanvas.TextRect.Y">
<short>
Vertical position of the top of the text (respected only if TextStyle.Layout
= tlTop).
</short>
</element>
<element name="TCanvas.TextRect.Text">
<short>Text to be drawn.</short>
</element>
<element name="TCanvas.TextRect.Style">
<short>
Optional parameter which determines whether the text is justified,
word-wrapped, clipped, etc. If omitted, the current <var>TextStyle</var> for
the canvas is used.
</short>
</element>
<element name="TCanvas.TextExtent">
<short>
Calculates the width and height for the specified Text using the Font for the
canvas.
</short>
<descr>
<p>
<var>TextExtent</var> is a <var>TSize</var> function used to get the width and
height for the specified Text using the Font for the canvas instance.
</p>
<p>
The TSize type in the return value returns the Width and Height for the Text
in pixels using the cX (Width) and cY (Height) members. Both members are set
to 0 if Text is an empty string (''), and when either the Handle or Font for
the canvas are invalid. The CreateHandle and CreateFont methods are called to
attempt to create the items when needed.
</p>
<p>
If the Font has the default un-initialized settings, the OnGetSystemFont event
handler is signalled to get the default system font selected for the canvas.
</p>
<p>
TextExtent calls the GetTextExtentPoint routine in the widgetset interface to
get the return value for the method.
</p>
<p>
TextExtent is used in methods like TextWidth, TextHeight and DoGetTextSize.
</p>
</descr>
<seealso>
<link id="TCanvas.RequiredState"/>
<link id="TCanvas.Handle"/>
<link id="TCanvas.Font"/>
<link id="TCanvas.CreateHandle"/>
<link id="TCanvas.CreateFont"/>
<link id="TCanvas.TextWidth"/>
<link id="TCanvas.TextHeight"/>
<link id="TCanvas.DoGetTextSize"/>
<link id="OnGetSystemFont"/>
</seealso>
</element>
<element name="TCanvas.TextExtent.Result">
<short>TSize instance with the Width and Height for the text.</short>
</element>
<element name="TCanvas.TextExtent.Text">
<short>Text examined and measured in the method.</short>
</element>
<element name="TCanvas.TextHeight">
<short>Gets the height for the specified text using the canvas Font.</short>
<descr>
<p>
Calls <var>TextExtent</var> to get the <var>TSize</var> instance with the
return value for the method.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.TextHeight.Result">
<short>Height for the specified text (in pixels).</short>
</element>
<element name="TCanvas.TextHeight.Text">
<short>Text measured in the method.</short>
</element>
<element name="TCanvas.TextWidth">
<short>Gets the width for the specified text using the canvas Font.</short>
<descr>
<p>
Calls <var>TextExtent</var> to get the <var>TSize</var> instance with the
return value for the method.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.TextWidth.Result">
<short>Width for the specified text (in pixels).</short>
</element>
<element name="TCanvas.TextWidth.Text">
<short>Text measured in the method.</short>
</element>
<element name="TCanvas.TextFitInfo">
<short>
Gets the number of characters that fit in the specified maximum width.
</short>
<descr>
<p>
TextFitInfo is an Integer function used to the determine the number
characters from Text that will fit within the maximum width specified in
MaxWidth. It is useful for situations where text must be truncated or wrapped
to fit within a given area.
</p>
<p>
Text is a String type and allows UTF-8-encoded multi-bytes values in its
content.
</p>
<p>
MaxWidth contains the maximum number of pixels allowed in the measurement.
</p>
<p>
TextFitInfo calls the GetTextExtentExPoint routine in the LCL interface to
measure each of the characters (UTF-8 code points) in Text. Please note that
partial character extents are not used when calling the LCL interface routine.
</p>
<p>
The return value contains a non-zero value on successful completion of the
method, or 0 when number of characters cannot be determined.
</p>
<p>
Use TextWidth to get width in pixels for a given string value.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.TextFitInfo.Result">
<short>Number of code points allowed in the specified maximum width.</short>
</element>
<element name="TCanvas.TextFitInfo.Text">
<short>Text examined in the method.</short>
</element>
<element name="TCanvas.TextFitInfo.MaxWidth">
<short>Maximum width allowed for the character values.</short>
</element>
<element name="TCanvas.HandleAllocated">
<short>Checks whether the Handle has been allocated for the canvas.</short>
<descr>
<p>
The return value is <b>True</b> when Handle contains a non-zero value. <b>0
(zero)</b> indicates that a Handle has not been assigned or is invalid.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.HandleAllocated.Result">
<short><b>True</b> when Handle has been assigned.</short>
</element>
<element name="TCanvas.GetUpdatedHandle">
<short>
Checks the required canvas states and gets the updated Handle for the canvas.
</short>
<descr>
<p>
Includes the value <var>csHandleValid</var> flag in <var>ReqState</var> and
calls <var>RequiredState</var> to check the canvas state flags. The return
value contains the updated value for the <var>Handle</var> property.
</p>
</descr>
<seealso>
<link id="TCanvas.RequiredState"/>
<link id="TCanvas.Handle"/>
<link id="TCanvasState"/>
</seealso>
</element>
<element name="TCanvas.GetUpdatedHandle.Result">
<short>New value for Handle after checking required canvas states.</short>
</element>
<element name="TCanvas.GetUpdatedHandle.ReqState">
<short>Canvas state flags required in the method.</short>
</element>
<element name="TCanvas.Pixels">
<short>
The color of the <var>Pixels</var> located at the specified position.
</short>
<descr>
<p>
<var>Pixels</var> is an indexed <var>TColor</var> color property which
provides access to the color for pixels on the drawing surface. The
<var>X</var> and <var>Y</var> arguments provide the horizontal and vertical
offsets on the drawing surface.
</p>
<p>
Read and write access to color values in the property requires a valid
<var>Handle</var> (or device context) for the canvas.
<var>RequiredState</var> is called, and allocates a Handle if one does not
already exist. An <var>EInvalidGraphicOperation</var> exception may be raised
in the method if a valid handle cannot be acquired.
</p>
<p>
Methods in the widgetset class are called to read or write the pixel color
using the Handle.
</p>
<p>
When setting a new color for a pixel, the <var>Changing</var> method is
called to signal the <var>OnChanging</var> event handler (when assigned).
After setting the new color, the <var>Changed</var> method is called to
signal the <var>OnChange</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TCanvas.Handle"/>
<link id="TCanvas.RequiredState"/>
<link id="TCanvas.Changing"/>
<link id="TCanvas.Changed"/>
<link id="TCanvas.OnChanging"/>
<link id="TCanvas.OnChange"/>
<link id="TColor"/>
<link id="EInvalidGraphicOperation"/>
</seealso>
</element>
<element name="TCanvas.Pixels.X">
<short>Horizontal offset on the drawing surface.</short>
</element>
<element name="TCanvas.Pixels.Y">
<short>Vertical offset on the drawing surface.</short>
</element>
<element name="TCanvas.Handle">
<short>Handle (or device context) for the drawing surface.</short>
<descr>
<p>
<var>Handle</var> is a <var>HDC</var> property that provides the device
context for the drawing surface. A valid Handle is required for nearly all
operations performed on the canvas.
</p>
<p>
Read access calls <var>RequiredState</var>, and allocates a Handle by calling
<var>CreateHandle</var> if one does not already exist. An
<var>EInvalidGraphicOperation</var> exception may be raised in the method if
a valid handle cannot be acquired.
</p>
<remark>
CreateHandle is an empty implementation in <var>TCanvas</var>, and is
overridden in descendent classes to return a handle for an image format or
output device. See <var>TBitmapCanvas</var>, <var>TControlCanvas</var>,
<var>TPrinterCanvas</var>, et. al.
</remark>
<p>
Setting a new value for Handle causes saved <var>Brush</var>, <var>Pen</var>,
and <var>Font</var> handles to be reset to their default values. The
<var>AntialiasingMode</var> for the canvas is also re-applied.
</p>
</descr>
<seealso>
<link id="TCanvas.RequiredState"/>
<link id="TCanvas.CreateHandle"/>
<link id="TCanvas.DeselectHandles"/>
<link id="TCanvas.Brush"/>
<link id="TCanvas.Pen"/>
<link id="TCanvas.Font"/>
<link id="EInvalidGraphicOperation"/>
</seealso>
</element>
<element name="TCanvas.TextStyle">
<short>Text style attributes used to draw text on the canvas.</short>
<descr>
<p>
<var>TextStyle</var> is a <var>TTextStyle</var> property with the attributes
applied to text drawn on the canvas. It is used in methods which output text
to the drawing surface, like <var>TextOut</var> and <var>TextRect</var>.
</p>
<p>
Default values in the property are assigned in the constructor.
</p>
<p>
See <link id="TTextStyle">TTextStyle</link> for details about members in the
record and their usage.
</p>
</descr>
<seealso>
<link id="TCanvas.TextOut"/>
<link id="TCanvas.TextRect"/>
<link id="TCanvas.Create"/>
<link id="TTextStyle"/>
</seealso>
</element>
<element name="TCanvas.AntialiasingMode">
<short>Controls anti-aliasing for canvas drawing operations.</short>
<descr>
<p>
<var>AntialiasingMode</var> is a <var>TAntialiasingMode</var> property which
indicates if smoothing is performed for drawing operations on the canvas. The
default value for the property is <var>amDontCare</var>, and indicates that
the default actions for the platform or operating system is used.
</p>
<p>
Setting a new value for the property causes the
<var>RealizeAntialiasing</var> method to be called to apply settings in
widgetset classes when a Handle has been allocated.
</p>
</descr>
<seealso>
<link id="TAntialiasingMode"/>
</seealso>
</element>
<element name="TCanvas.AutoRedraw">
<short>
<var>AutoRedraw</var> - if <b>True</b>, the Canvas is to be redrawn
automatically after each change or update.
</short>
<descr>
<p>
<var>AutoRedraw</var> is a <var>Boolean</var> property which indicates if the
window for the canvas is automatically redrawn when updated. When set to
<b>True</b>, the <var>DCRedraw</var> method in the widgetset class is called
to enable the feature for the <var>Handle</var> in the canvas.
</p>
<p>
The default value for the property is <b>False</b>.
</p>
</descr>
<seealso>
<link id="TCanvas.Handle"/>
<link id="TCanvas.RealizeAutoRedraw"/>
</seealso>
</element>
<element name="TCanvas.Brush">
<short>The <var>Brush</var> used to paint on the Canvas.</short>
<descr>
<p>
<var>Brush</var> is a <var>TBrush</var> property with the tool used to paint
the interior of filled shapes on the drawing surface. It has settings like
Color and Style, but may also use a Bitmap to fill the interior of shapes.
</p>
<p>
Setting a new value for the property causes the handle for the Brush to be
freed and re-created in the cached resources for the canvas.The values from
the new Brush are assigned to the member variable for the property. The
<var>BrushChanged</var> method is called to update the state flags for the
canvas.
</p>
<p>
Use <var>Pen</var> to configure the tool used to draw lines and curves on the
drawing surface.
</p>
<p>
Use <var>Font</var> to set the typeface, color, and style used to draw text
on the drawing surface.
</p>
</descr>
<seealso>
<link id="TCanvas.BrushChanging"/>
<link id="TCanvas.Pen"/>
<link id="TCanvas.Font"/>
<link id="TBrush"/>
</seealso>
</element>
<element name="TCanvas.CopyMode">
<short>
Indicates the raster operation used to combine pixel colors on the drawing
surface.
</short>
<descr>
<p>
<var>CopyMode</var> is a <var>TCopyMode</var> property which contains the
ternary raster operation used to combine pixel colors in region transfers.
CopyMode contains values from constants defined for the raster operations,
and includes:
</p>
<dl>
<dt>cmBlackness</dt>
<dd>
Fills the destination rectangle with the first color in the physical palette.
(Black for the default palette).
</dd>
<dt>cmDstInvert</dt>
<dd>Inverts colors in the destination rectangle.</dd>
<dt>cmMergeCopy</dt>
<dd>Merges colors from the source rectangle with the brush color.</dd>
<dt>cmMergePaint</dt>
<dd>
Merges inverted colors from the source rectangle with the colors in the
destination rectangle using an OR operation.
</dd>
<dt>cmNotSrcCopy</dt>
<dd>
Copies inverted colors from the source rectangle to the destination rectangle.
</dd>
<dt>cmNotSrcErase</dt>
<dd>
Combines the colors from the source and destination rectangles using an OR
operation, and inverts the result.
</dd>
<dt>cmPatCopy</dt>
<dd>Copies the brush into the destination rectangle.</dd>
<dt>cmPatInvert</dt>
<dd>
Combines the brush colors with the colors in the destination rectangle using
an XOR operation.
</dd>
<dt>cmPatPaint</dt>
<dd>
Combines the brush colors with the inverted colors from the source rectangle
using an OR operation, and combines the result with the colors in the
destination rectangle using an OR operation.
</dd>
<dt>cmSrcAnd</dt>
<dd>
Combines colors from the source and destination rectangles using an AND
operation.
</dd>
<dt>cmSrcCopy</dt>
<dd>Copies the source rectangle to the destination rectangle.</dd>
<dt>cmSrcErase</dt>
<dd>
Combines the inverted colors in the destination rectangle with the colors
from the source rectangle using an AND operation.
</dd>
<dt>cmSrcInvert</dt>
<dd>
Combines the colors in the source and destination rectangles using an XOR
operation.
</dd>
<dt>cmSrcPaint</dt>
<dd>
Combines the colors in the source and destination rectangles using an OR
operation.
</dd>
<dt>cmWhiteness</dt>
<dd>
Fills the destination rectangle using the second color in the physical
palette. (White for the default palette).
</dd>
</dl>
<p>
The default value for the property is <var>cmSrcCopy</var>.
</p>
<p>
Copy mode constants are not provided for the <b>CAPTUREBLT</b> and
<b>NOMIRRORBITMAP</b> values used in the Windows GDI API.
</p>
</descr>
<seealso/>
</element>
<element name="TCanvas.Font">
<short>Contains the Font used to render text on the drawing surface.</short>
<descr>
<p>
<var>Font</var> is a <var>TFont</var> property which contains the font used
to render text on the drawing surface. Values in Font determine the
formatting / layout applied in methods that render text, like
<var>TextOut</var> and <var>TextRect</var>. Setting a new value in Font calls
the Assign method in the class instance to store the new values. Property
values in Font can also be modified directly to use the desired values.
</p>
<p>
The values assigned in Font are used in methods that calculate the size for
text like <var>TextExtent</var>, <var>TextHeight</var>, <var>TextWidth</var>,
and <var>TextFitInfo</var>.
</p>
</descr>
<seealso>
<link id="TFont"/>
<link id="TCanvas.TextOut"/>
<link id="TCanvas.TextRect"/>
<link id="TCanvas.TextExtent"/>
<link id="TCanvas.TextHeight"/>
<link id="TCanvas.TextWidth"/>
<link id="TCanvas.TextFitInfo"/>
</seealso>
</element>
<element name="TCanvas.Height">
<short>Height of the canvas.</short>
<descr>
<p>
<var>Height</var> is a read-only <var>Integer</var> property which contains
the vertical dimension in <var>Pixels</var> for the canvas drawing area.
Height and <var>Width</var> determine the limits for the 2-dimensional
coordinate system used to access the Pixels on the drawing surface.
</p>
<p>
The value for the property is determined by calling the
<var>GetDeviceSize</var> routine using the <var>Handle</var> for the class
instance. The property value is <b>0</b> (<b>zero</b>) when Handle has not
been assigned (contains <b>0</b>).
</p>
<p>
Use Width to get the horizontal dimension for the drawing surface.
</p>
<remark>
Changing the value for Height or Width in TCanvas is not allowed. These
values are controlled using the capabilities in an image format or output
device, and are normally handled in classes which implement the canvas.
</remark>
</descr>
<seealso>
<link id="TCanvas.Handle"/>
<link id="TCanvas.Width"/>
<link id="TCanvas.Pixels"/>
<link id="#lcl.lclintf.GetDeviceSize">GetDeviceSize</link>
</seealso>
</element>
<element name="TCanvas.Pen">
<short>The <var>Pen</var> to be used for writing in this canvas.</short>
<descr>
<p>
<var>Pen</var> is a <var>TPen</var> property which contains settings used
when drawing lines, shapes, gradients, or generally changing pixels on the
canvas. The available properties include:
</p>
<ul>
<li>Color</li>
<li>Mode</li>
<li>Style</li>
<li>Width</li>
<li>Cosmetic</li>
<li>EndCap</li>
<li>JoinStyle</li>
</ul>
<p>
See <link id="TPen">TPen</link> for more information about properties,
methods, and events in the class. See <var>TFPCustomCanvas</var> for
information about the pen used in the FCL ancestor class.
</p>
<p>
The Pen property is used in the implementation of <var>TCanvas</var> drawing
methods, like: SetPixel, MoveTo, LineTo, Arc, ArcTo, Chord, GradientFill,
RadialPie, PolyBezier, Polygon, Polyline, Ellipse, Frame, Frame3D, Rectangle,
and RoundRect.
</p>
<p>
Use <var>Brush</var> to access settings used to fill enclosed areas on the
drawing surface.
</p>
</descr>
<seealso>
<link id="TCanvas.Brush"/>
<link id="TPen"/>
</seealso>
</element>
<element name="TCanvas.Region">
<short>The <var>Region</var> where the Canvas is located.</short>
<descr>
<p>
<var>Region</var> is a <var>TRegion</var> property which contains the
rectangular area(s) which define the bounding box for the drawing surface.
See <link id="TRegion">TRegion</link> for more information.
</p>
</descr>
<seealso>
<link id="TRegion"/>
</seealso>
</element>
<element name="TCanvas.Width">
<short>The <var>Width</var> of the Canvas.</short>
<descr>
<p>
<var>Width</var> is a read-only <var>Integer</var> property which contains
the horizontal dimension in <var>Pixels</var> for the canvas drawing area.
<var>Height</var> and <var>Width</var> determine the limits for the
2-dimensional coordinate system used to access the Pixels on the drawing
surface.
</p>
<p>
The value for the property is determined by calling the
<var>GetDeviceSize</var> routine using the <var>Handle</var> for the class
instance. The property value is <b>0</b> (<b>zero</b>) when Handle has not
been assigned (contains <b>0</b>).
</p>
<p>
Use Height to get the vertical dimension for the drawing surface.
</p>
<remark>
Changing the value for Height or Width in TCanvas is not allowed. These
values are controlled using the capabilities in an image format or output
device, and are normally handled in classes which implement the canvas.
</remark>
</descr>
<seealso>
<link id="TCanvas.Height"/>
</seealso>
</element>
<element name="TCanvas.OnChange">
<short>Event handler signalled after a change to the canvas.</short>
<descr>
<p>
<var>OnChange</var> is a <var>TNotifyEvent</var> property which contains an
event handler signalled after values in the canvas have been changed. The
event handler is signalled (when assigned) from the <var>Changed</var>
method, which is called when drawing operations are completed that alter the
<var>Pixels</var> on the canvas.
</p>
<p>
Assign an object procedure to the property which implements the signature in
TNotifyEvent to respond to the event notification.
</p>
<p>
Use <var>OnChanging</var> to respond to the notification that occurs prior to
a drawing operation.
</p>
</descr>
<seealso>
<link id="TCanvas.OnChanging"/>
</seealso>
</element>
<element name="TCanvas.OnChanging">
<short>Event handler signalled prior to changing the canvas.</short>
<descr>
<p>
<var>OnChanging</var> is a <var>TNotifyEvent</var> property which contains an
event handler signalled before changing values in the canvas. The event
handler is signalled (when assigned) from the <var>Changing</var> method,
which is called before starting a drawing operation that alters the
<var>Pixels</var> on the canvas.
</p>
<p>
Assign an object procedure to the property which implements the signature in
TNotifyEvent to respond to the event notification.
</p>
<p>
Use <var>OnChange</var> to respond to the notification that occurs when a
drawing operation is completed.
</p>
</descr>
<seealso>
<link id="TCanvas.OnChange"/>
</seealso>
</element>
<element name="TSharedImage">
<short>Specifies the base class for reference-counted shared images.</short>
<descr>
<p>
<var>TSharedImage</var> is a class which specifies the base class for
reference-counted shared images. TSharedImage defines properties and methods
which are used to track and maintain the reference count for a shared image.
</p>
<p>
Use the <var>RefCount</var> property to determine the number of references
acquired for a shared image.
</p>
<p>
Use <var>Reference</var> to increment the value in <var>RefCount</var>. Use
<var>Release</var> to decrement the value in <var>RefCount</var>.
</p>
<p>
TSharedImage includes abstract virtual methods, like
<var>HandleAllocated</var> and <var>FreeHandle</var>, which must be
implemented in a descendent class to perform actions needed for the handle in
a specific image type.
</p>
<p>
TSharedImage is the ancestor for the <var>TSharedRasterImage</var> class.
</p>
</descr>
<seealso>
<link id="TSharedRasterImage"/>
</seealso>
</element>
<!-- private -->
<element name="TSharedImage.FRefCount"/>
<element name="TSharedImage.Reference">
<short>Increases the reference count.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedImage.Release">
<short>Decreases the reference count.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedImage.FreeHandle">
<short>Release the handle for this image and free its resources.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedImage.RefCount">
<short>The number of references to this shared image.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedImage.HandleAllocated">
<short>Indicates whether a handle been allocated for the image.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedImage.HandleAllocated.Result">
<short><b>True</b> when Handle is a non-zero value.</short>
</element>
<element name="TBitmapHandleType">
<short>Represents handle types used for Bitmaps.</short>
<descr>
<p>
<var>TBitmapHandleType</var> is an enumerated type with values that represent
handle types available for Bitmaps. On Windows platforms, the handle may
represent two distinctly different storage mechanisms:
</p>
<ul>
<li>DIB (Device-Independent Bitmap)</li>
<li>DDB (Device-Dependent Bitmap)</li>
</ul>
<p>
The handle type indicates the storage format and content for the Bitmap.
</p>
<p>
TBitmapHandleType is the type used to implement the <var>HandleType</var>
property in <var>TCustomBitmap</var> and <var>TSharedCustomBitmap</var>.
</p>
</descr>
<seealso>
<link id="TSharedCustomBitmap.HandleType"/>
</seealso>
</element>
<element name="TBitmapHandleType.bmDIB">
<short>Device-Independent Bitmap handle.</short>
</element>
<element name="TBitmapHandleType.bmDDB">
<short>Device-Dependent Bitmap handle.</short>
</element>
<element name="TSharedRasterImage">
<short>
Implements a reference counted raster image that may be shared between
controls.
</short>
<descr/>
<seealso/>
</element>
<element name="TSharedRasterImage.FHandle"/>
<element name="TSharedRasterImage.FBitmapCanvas"/>
<element name="TSharedRasterImage.FSaveStream"/>
<element name="TSharedRasterImage.FreeHandle">
<short>Frees the handle for the shared image.</short>
<descr>
<p>
Implements the abstract virtual method defined in the <var>TSharedImage</var>
ancestor.
</p>
<p>
<var>FreeHandle</var> calls the <var>DeleteObject</var> routine to remove the
handle from the widgetset class. FreeHandle sets the value for the internal
handle to <b>0</b> (<b>zero</b>) to indicate that it is not assigned or no
longer valid.
</p>
<p>
No actions are performed in the method when the handle is already set to
<b>0</b>.
</p>
</descr>
<seealso>
<link id="TSharedImage.FreeHandle"/>
</seealso>
</element>
<element name="TSharedRasterImage.ReleaseHandle">
<short>
Returns the handle that has just been released.
</short>
<descr>
<p>
<var>ReleaseHandle</var> is a <var>TLCLHandle</var> function used to release a
reference for the handle in the class instance. The return value contains the
value for the handle on entry.
</p>
<p>
ReleaseHandle sets the handle value to 0 to indicate that it is no longer
used or invalid. It does not call DeleteObject to remove the handle in
widgetset classes.
</p>
<p>
ReleaseHandle is called from classes which support a specific image format,
like TCustomBitmap and TIcon, when their ReleaseHandle method is called to
free the handle for its shared image.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the return value.
</version>
<seealso>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TSharedRasterImage.ReleaseHandle.Result">
<short>
Value for the internal handle on entry to the method.
</short>
</element>
<element name="TSharedRasterImage.IsEmpty">
<short>Indicates if image content has been assigned for the shared image.
</short>
<descr>
<p>
<var>IsEmpty</var> is a <var>Boolean</var> function which indicates if image
content has been assigned for the shared image. The return value is
<b>True</b> when both the Handle and the <var>SaveStream</var> for the shared
image are unassigned. Specifically, Handle contains <b>0</b> and SaveStream
is <b>Nil</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TSharedRasterImage.IsEmpty.Result">
<short>
<b>True</b> if both the handle and the storage stream are not assigned.
</short>
</element>
<element name="TSharedRasterImage.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>
</descr>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TSharedRasterImage.CreateDefaultHandle">
<short>
Abstract virtual method not implemented in the class instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TSharedRasterImage.CreateDefaultHandle.AWidth">
<short/>
</element>
<element name="TSharedRasterImage.CreateDefaultHandle.AHeight">
<short/>
</element>
<element name="TSharedRasterImage.CreateDefaultHandle.ABPP">
<short/>
</element>
<element name="TSharedRasterImage.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Frees resource allocated to <var>SaveStream</var> and <var>Handle</var>.
Calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso/>
</element>
<element name="TSharedRasterImage.HandleAllocated">
<short>
Determines whether the Handle for the class has been allocated.
</short>
<descr>
<p>
Implements the abstract virtual method defined in <var>TSharedImage</var>.
The return value is <b>True</b> when the internal handle contains a non-zero
value.
</p>
</descr>
<seealso>
<link id="TSharedImage.HandleAllocated"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TSharedRasterImage.HandleAllocated.Result">
<short>
<b>True</b> when the handle for the shared image has been allocated.
</short>
</element>
<element name="TSharedRasterImage.BitmapCanvas">
<short>Canvas used to render the bitmap for the raster image.</short>
<descr>
<p>
<var>BitmapCanvas</var> is a <var>TCanvas</var> property which represents the
drawing surface used to render the shared raster image.
</p>
<p>
<var>TSharedRasterImage</var> does not supply a value for the property. The
property value is supplied by an image class, like <var>TRasterImage</var>,
which uses the shared image paradigm. It normally contains an instance of
<var>TBitmapCanvas</var> (or a descendant).
</p>
</descr>
<seealso>
<link id="TRasterImage"/>
<link id="TCanvas"/>
</seealso>
</element>
<element name="TSharedRasterImage.SaveStream">
<short>
<var>SaveStream</var> - the memory stream to be used for saving this image.
</short>
<descr>
<p>
<var>SaveStream</var> is a <var>TMemoryStream</var> property which contains
the stream with the content for the shared image.
<var>TSharedRasterImage</var> does not manipulate values in SaveStream; it is
maintained by the image class that uses the shared image paradigm (like
<var>TRasterImage</var> and descendants).
</p>
</descr>
<seealso>
<link id="TRasterImage"/>
</seealso>
</element>
<element name="TSharedRasterImageClass">
<short>
<var>TSharedRasterImageClass</var> - class of <var>TSharedRasterImage</var>.
</short>
<descr>
<p>
Class reference used to create new instances of <var>TSharedRasterImage</var>.
</p>
</descr>
<seealso>
<link id="TSharedRasterImage"/>
</seealso>
</element>
<element name="TRasterImage">
<short>
<var>TRasterImage</var> - base class for a number of graphic controls,
including <var>TCustomBitmap</var> and <var>TCustomIcon</var>, which use a
raster of dots to display graphic information.
</short>
<descr>
<p>
<var>TRasterImage</var> is a <var>TGraphic</var> descendant which implements
the base class for images displayed as rasterized pixels on a canvas. It is
used as the ancestor class for <var>TCustomBitmap</var> (<var>TBitmap</var>)
and <var>TCustomIcon</var> (<var>TIcon</var>).
</p>
<p>
TRasterImage introduces the shared properties and methods common to the image
formats. It is also provides a shared, reference-counted image that reduces
resource requirements in graphical applications. Support is provided for
bitmaps which use <b>DIB</b> (Device-Independent Bitmap) or <b>DDB</b>
(Device-Dependent Bitmap) handles as well as common pixel storage formats
used in the RawImage data. Handles are provided for the Bitmap, Mask, and
Palette resources used in an image. TRasterImage also includes a Canvas used
to render the pixels for the image.
</p>
<p>
Many of the methods in TRasterImage are defined as abstract virtual methods,
and must be implemented in a descendent class to provide support for a
specific image format.
</p>
</descr>
<seealso/>
</element>
<!-- private -->
<element name="TRasterImage.FCanvas"/>
<element name="TRasterImage.FTransparentColor"/>
<element name="TRasterImage.FTransparentMode"/>
<element name="TRasterImage.FUpdateCount"/>
<element name="TRasterImage.FUpdateCanvasOnly"/>
<element name="TRasterImage.FMasked"/>
<element name="TRasterImage.CanvasChanging">
<short>Performs actions needed before the canvas is modified.</short>
<descr>
<p>
<var>CanvasChanging</var> is used to perform actions needed before the canvas
is modified. Ensures that the Handle for the raster image is not shared to
prevent changes in copies.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.CanvasChanging.Sender">
<short>Object for the notification message.</short>
</element>
<element name="TRasterImage.CreateCanvas">
<short>
Creates a Canvas for the raster image, and assigns its event handlers.
</short>
<descr>
<p>
<var>CreateCanvas</var> is a method used to created and configure the
<var>Canvas</var> for the raster image. No actions are performed in the
method when Canvas has already been assigned for the class instance.
</p>
<p>
A <var>TBitmapCanvas</var> instance is created and assigned to the member for
the Canvas property. The <var>CanvasChanging</var> and <var>Changed</var>
methods are assigned as the event handlers for the <var>OnChanging</var> and
<var>OnChange</var> properties (respectively) in the canvas.
</p>
<p>
CreateCanvas is called when the value for the Canvas property is read and the
member has not already been initialized.
</p>
</descr>
<seealso>
<link id="TRasterImage.Canvas"/>
<link id="TRasterImage.GetCanvas"/>
<link id="TRasterImage.OnChanging"/>
<link id="TRasterImage.OnChange"/>
<link id="TBitmapCanvas"/>
</seealso>
</element>
<element name="TRasterImage.CreateMask">
<short>
Ensures that a mask bitmap is allocated, configured, and applied when needed.
</short>
<descr>
<p>
No actions (other than clearing the MaskHandle) are performed in the method
when the raster image is empty, has no Color, uses fixed transparency, or has
no transparency color. CreateMask forces creation of temporary handles for
the image and the mask when needed. They are used to load the mask bitmap for
the image in BitmapHandle.
</p>
<p>
AColor contains the color that is used for transparent pixels in the mask for
the image. When AColor contains clDefault and TransparentMode is not tmFixed,
the color for the bottom left pixel in the mask bitmap is used as the
transparency color.
</p>
<p>
CreateMask is used in the implementation of the Mask method.
</p>
</descr>
<seealso>
<link id="TRasterImage.Mask"/>
<link id="TRasterImage.BitmapHandle"/>
<link id="TRasterImage.TransparentMode"/>
<link id="TRasterImage.TransparentColor"/>
</seealso>
</element>
<element name="TRasterImage.CreateMask.AColor">
<short>Color used for transparent pixels in the image mask.</short>
</element>
<element name="TRasterImage.FreeCanvasContext">
<short>Frees the Device Context (DC) for the Canvas (when assigned).</short>
<descr>
<p>
<var>FreeCanvasContext</var> is a procedure used to free the device context
(DC) for the <var>Canvas</var> in the raster image. No actions are performed
in the method when Canvas has not been assigned (contains <b>Nil</b>).
</p>
<p>
FreeCanvasContext casts the Canvas to a <var>TBitmapCanvas</var> class
instance and calls its <var>FreeDC</var> method.
</p>
<p>
FreeCanvasContext is called when values in the <var>BitmapHandle</var>,
<var>MaskHandle</var>, or <var>Palette</var> properties are updated.
</p>
</descr>
<seealso>
<link id="TRasterImage.BitmapHandle"/>
<link id="TRasterImage.MaskHandle"/>
<link id="TGraphic.Palette"/>
<link id="TRasterImage.Assign"/>
<link id="TRasterImage.Destroy"/>
<link id="TRasterImage.EndUpdate"/>
<link id="TRasterImage.SetHandle"/>
<link id="TRasterImage.ReleaseBitmapHandle"/>
<link id="TRasterImage.ReleaseMaskHandle"/>
<link id="TRasterImage.ReleasePalette"/>
<link id="TBitmapCanvas.FreeDC"/>
</seealso>
</element>
<element name="TRasterImage.GetCanvas">
<short>Gets the value for the Canvas property.</short>
<descr/>
<seealso>
<link id="TRasterImage.Canvas"/>
</seealso>
</element>
<element name="TRasterImage.GetCanvas.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetRawImage">
<short>Gets the value for the RawImage property.</short>
<descr>
<p>Calls <var>CreateCanvas</var> if a value has not been assigned for the
property.
</p>
</descr>
<seealso>
<link id="TRasterImage.RawImage"/>
<link id="TRasterImage.CreateCanvas"/>
</seealso>
</element>
<element name="TRasterImage.GetRawImage.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetScanline">
<short>Gets the value for the indexed ScanLine property.</short>
<descr/>
<seealso>
<link id="TRasterImage.Scanline"/>
</seealso>
</element>
<element name="TRasterImage.GetScanline.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetScanline.ARow">
<short>Ordinal position for the row of pixels in the raster image.</short>
</element>
<element name="TRasterImage.GetTransparentColor">
<short>Gets the value for the TransparentColor property.</short>
<descr/>
<seealso>
<link id="TRasterImage.TransparentColor"/>
</seealso>
</element>
<element name="TRasterImage.GetTransparentColor.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.SetTransparentColor">
<short>Sets the value for the TransparentColor property.</short>
<descr/>
<seealso>
<link id="TRasterImage.TransparentColor"/>
</seealso>
</element>
<element name="TRasterImage.SetTransparentColor.AValue">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.FSharedImage">
<short>Shared image with existing handles, canvases, etc.</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.CanShareImage">
<short>
<var>CanShareImage</var> - returns <b>True</b> if specified class of image
can be shared.
</short>
<descr>
<p>
<var>CanShareImage</var> is a <var>Boolean</var> function which indicate if
the raster image uses a shareable image class. The return value is
<b>True</b> when <var>AClass</var> matches the value returned from the
<var>GetSharedImageClass</var> method, and is not
<var>TSharedCustomBitmap</var>. Only images of the same class type can be
shared.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.CanShareImage.Result">
<short><b>True</b> is the image class is shareable.</short>
</element>
<element name="TRasterImage.CanShareImage.AClass">
<short>Class type requested in the method.</short>
</element>
<element name="TRasterImage.Changed">
<short>
<var>Changed</var> - method to call when properties have changed.
</short>
<descr>
<p>
<var>Changed</var> is an overridden method in <var>TRasterImage</var> used to
perform actions needed when property values in the class instance have been
updated. No actions are performed when <var>BeginUpdate</var> has been called
and a corresponding <var>EndUpdate</var> has not occurred.
</p>
<p>
Changed ensures that the <var>SaveStream</var> used in the shared image is
freed.
</p>
<p>
Changed calls the inherited method in <var>TGraphic</var> to set the value
for the <var>Modified</var> property and signal the <var>OnChange</var> event
handler (when assigned).
</p>
</descr>
<seealso>
<link id="TGraphic.Changed"/>
</seealso>
</element>
<element name="TRasterImage.Changed.Sender">
<short>Object for the change notification.</short>
</element>
<element name="TRasterImage.CreateDefaultBitmapHandle">
<short>Gets the default value for the Bitmap handle used in the class
instance.
</short>
<descr>
<p>Always returns 0 (for an unassigned handle) in TRasterImage.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.CreateDefaultBitmapHandle.Result">
<short/>
</element>
<element name="TRasterImage.CreateDefaultBitmapHandle.ADesc">
<short>Not used in the current implementation.</short>
</element>
<element name="TRasterImage.Draw">
<short>Renders the image to the specified canvas.</short>
<descr>
<p>
<var>Draw</var> is an overridden method used to render the raster image to
the specified canvas using the given rectangle. Draw implements the abstract
method defined in the ancestor class.
</p>
<p>
<var>DestCanvas</var> contains the canvas instance where the raster image is
rendered.
</p>
<p>
<var>DestRect</var> contains the canvas coordinates in DestCanvas where the
image is drawn.
</p>
<p>
No actions are performed in the method if the <var>Width</var> or the
<var>Height</var> for the image is <b>0</b> (<b>zero</b>).
</p>
<p>
Draw ensures that valid handles are available in <var>BitMapHandle</var> and
<var>MaskHandlle</var> (when <var>Masked</var> is <b>True</b>). No actions
are performed in the method when a valid BitmapHandle does not exist.
</p>
<p>
Draw uses the Device Contexts for Canvas and DestCanvas, and calls the
<var>StretchMaskBlt</var> routine in the LCL interface to render the image
using methods in the widgetset. The <var>Changing</var> method in DestCanvas
is called before drawing the image. The <var>Changed</var> method in
DestCanvas is called after the image is drawn.
</p>
</descr>
<seealso>
<link id="TGraphic.Draw"/>
</seealso>
</element>
<element name="TRasterImage.Draw.DestCanvas">
<short>Canvas where the image is rendered.</short>
</element>
<element name="TRasterImage.Draw.DestRect">
<short>Canvas coordinates where the image is drawn.</short>
</element>
<element name="TRasterImage.GetEmpty">
<short>Gets the value for the Empty property.</short>
<descr>
<p>
Implements the abstract virtual method defined in the ancestor. The property
value contains the result from the IsEmpty method in the shared raster image
for the class instance.
</p>
</descr>
<seealso>
<link id="TSharedRasterImage.IsEmpty"/>
<link id="TGraphic.Empty"/>
</seealso>
</element>
<element name="TRasterImage.GetEmpty.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetHandle">
<short>
Gets the value for the handle used in the image.
</short>
<descr>
<p>
Calls HandleNeeded to ensure that valid handle(s) exist for the image. The
return value is the handle in the shared raster image for the class instance.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the return value.
</version>
<seealso>
<link id="TRasterImage.HandleNeeded"/>
<link id="TRasterImage.BitmapHandle"/>
<link id="TRasterImage.MaskHandle"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TRasterImage.GetHandle.Result">
<short>
Handle for the raster image.
</short>
</element>
<element name="TRasterImage.GetBitmapHandle">
<short>Gets the value for the BitmapHandle property.</short>
<descr>
<p>
GetBitmapHandle is an abstract virtual method, and must be implemented in a
descendent class to return the handle for a specific image type or
implementation.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.GetBitmapHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetMasked">
<short>Gets the value for the Masked property.</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.GetMasked.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetMaskHandle">
<short>Gets the value for the MaskHandle property.</short>
<descr>
<p>
<var>GetMaskHandle</var> is an abstract virtual method, and must be
implemented in a descendent class to return the mask handle for a specific
image type or implementation.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.GetMaskHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetMimeType">
<short>Gets the value for the MimeType property.</short>
<descr/>
<seealso>
<link id="TGraphic.MimeType"/>
</seealso>
</element>
<element name="TRasterImage.GetMimeType.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetPixelFormat">
<short>
<var>GetPixelFormat</var> - returns the pixel format for the Image.
</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.GetPixelFormat.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetRawImagePtr">
<short>Gets a pointer with the raw image data.</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class to provide support for a specific image format.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.GetRawImagePtr.Result">
<short/>
</element>
<element name="TRasterImage.GetRawImageDescriptionPtr">
<short>Gets a pointer to the metadata for the raw image data.</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class to provide support for a specific image format.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.GetRawImageDescriptionPtr.Result">
<short/>
</element>
<element name="TRasterImage.GetTransparent">
<short>Gets the value for the Transparent property.</short>
<descr/>
<seealso>
<link id="TGraphic.Transparent"/>
<link id="TGraphic.GetTransparent"/>
<link id="TRasterImage.TransparentMode"/>
<link id="TRasterImage.TransparentColor"/>
</seealso>
</element>
<element name="TRasterImage.GetTransparent.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetSharedImageClass">
<short>Gets the class reference used to create new shared image instances in
the class.
</short>
<descr>
<p>
<var>GetSharedImageClass</var> is a class function used to get the class
reference needed to create a shared image in the class instance. The return
value the
<var>TSharedRasterImage</var> class type.
</p>
<p>
GetSharedImageClass is called from the implementation of the
<var>Assign</var> method when a reference to an existing image is stored in
the class instance. It is also used in <var>CanShareImage</var> to determine
is the request image type is the one used in the current class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.GetSharedImageClass.Result">
<short>Class reference used to create the shared image in the class.</short>
</element>
<element name="TRasterImage.GetHeight">
<short>Gets the value for the Height property.</short>
<descr/>
<seealso>
<link id="TGraphic.Height"/>
<link id="TGraphic.GetHeight"/>
</seealso>
</element>
<element name="TRasterImage.GetHeight.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.GetWidth">
<short>Gets the value for the Width property.</short>
<descr/>
<seealso>
<link id="TGraphic.Width"/>
<link id="TGraphic.GetWidth"/>
</seealso>
</element>
<element name="TRasterImage.GetWidth.Result">
<short>Value for the property.</short>
</element>
<element name="TRasterImage.BitmapHandleNeeded">
<short>
Ensures that handles for the image and mask are valid for the raw image data.
</short>
<descr>
<p>
<var>BitmapHandleNeeded</var> is a procedure used to ensures that handles for
both the image and its mask are valid for the RawImage data. No actions are
performed in the method when <var>BitmapHandleAllocated</var> returns
<b>True</b>, or when RawImage data does not exist.
</p>
<p>
The <var>MaskHandle</var> is not created when:
</p>
<ul>
<li>A mask handle already exists.</li>
<li>The mask is created using the transparent color for the image.</li>
<li>Mask values do not exist in the raw image data.</li>
</ul>
<p>
BitmapHandleNeeded calls CreateCompatibleBitmaps to get the handles for the
bitmap and mask using a pointer to the raw image data, and creates a default
handle if CreateCompatibleBitmaps is unsuccessful. UpdateHandles is called to
assign the new handles to BitmapHandle and MaskHandle (when used).
</p>
<p>
BitmapHandleNeeded is called from the Draw method prior to performing
operations using the Canvas for the class instance. It is also used when the
Canvas creates a new DC (Device Context).
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.HandleNeeded">
<short>
Ensures that a handle for the image is allocated in widgetset classes.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.MaskHandleNeeded">
<short>
Ensures that a handle is allocated for the image mask (when needed).
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.PaletteNeeded">
<short>Ensures that a handle for the palette is allocated.</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.InternalReleaseBitmapHandle">
<short>
<var>InternalReleaseBitmapHandle</var> - releases Bitmap Handle and returns
its value.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.InternalReleaseBitmapHandle.Result">
<short/>
</element>
<element name="TRasterImage.InternalReleaseMaskHandle">
<short>
<var>InternalReleaseMaskHandle</var> - releases Mask Handle and returns its
value.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.InternalReleaseMaskHandle.Result">
<short/>
</element>
<element name="TRasterImage.InternalReleasePalette">
<short>
<var>InternalReleasePalette</var> - releases Palette Handle and returns its
value.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.InternalReleasePalette.Result">
<short/>
</element>
<element name="TRasterImage.SetBitmapHandle">
<short>Sets the value for the BitmapHandle property.</short>
<descr/>
<seealso>
<link id="TRasterImage.BitmapHandle"/>
</seealso>
</element>
<element name="TRasterImage.SetBitmapHandle.AValue">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.SetMasked">
<short>Sets the value for the Masked property.</short>
<descr/>
<seealso>
<link id="TRasterImage.Masked"/>
</seealso>
</element>
<element name="TRasterImage.SetMasked.AValue">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.SetMaskHandle">
<short>Sets the value for the MaskHandle property.</short>
<descr/>
<seealso>
<link id="TRasterImage.MaskHandle"/>
</seealso>
</element>
<element name="TRasterImage.SetMaskHandle.AValue">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.SetTransparent">
<short>Sets the value for the Transparent property.</short>
<descr/>
<seealso>
<link id="TGraphic.Transparent"/>
</seealso>
</element>
<element name="TRasterImage.SetTransparent.AValue">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.UnshareImage">
<short>Unshares a shared image when its handle is changed or the save stream
is freed.
</short>
<descr>
<p>
<var>UnshareImage</var> - stops an image from being shared: if
<var>CopyContent</var> is <b>True</b>, the Image gets copied. Declared as an
abstract virtual method. Must be implemented in a descendent class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.UnshareImage.CopyContent">
<short/>
</element>
<element name="TRasterImage.UpdateHandles">
<short>Updates image handles when the raw image data is loaded.
</short>
<descr>
<p>
<var>UpdateHandles</var> is called when handles are created for the raw image
in the class instance. Returns <b>True</b> when the Handle for the bitmap
image is changed in the method. Declared as an abstract virtual method. Must
be implemented in a descendent class.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.UpdateHandles.Result">
<short><b>True</b> when the handle has changed for the image.</short>
</element>
<element name="TRasterImage.UpdateHandles.ABitmap">
<short>Handle for the Bitmap.</short>
</element>
<element name="TRasterImage.UpdateHandles.AMask">
<short>Handle for the Mask.</short>
</element>
<element name="TRasterImage.SaveStreamNeeded">
<short>Ensures that the save stream for the shared image is allocated.</short>
<descr>
<p>
<var>SaveStreamNeeded</var> is a procedure used to ensure that the internal
save stream for the shared image is allocated.
</p>
<p>
Raises an <var>EInvalidGraphicOperation</var> exception if
<var>BeginUpdate</var> (without a matching <var>EndUpdate</var>) is active in
the class instance.
</p>
<p>
No actions a performed in the method when a <var>TMemoryStream</var> has
already been assigned as the save stream for the internal
<var>TSharedRasterImage</var> instance.
</p>
<p>
SaveStreamNeeded is called from methods like <var>SaveToStream</var> and
<var>WriteData</var>, and occurs before operations which read or write to the
save stream.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.FreeSaveStream">
<short>Frees the save stream assigned to the internal shared image.</short>
<descr>
<p>
<var>FreeSaveStream</var> is a procedure used to free the <var>TStream</var>
instance assigned as the SaveStream in the shared image. No actions are
performed in the method when the SaveStream has not been assigned in the
shared image.
</p>
<p>
FreeSaveStream calls <var>UnshareImage</var> to discard and recreate the
shared image class instance in the class. The TStream instance in the shared
image is freed prior to exiting from the method.
</p>
<p>
FreeSaveStream is used in the implementation of methods like:
<var>Assign</var>, <var>Clear</var>, <var>EndUpdate</var>, and
<var>Changed</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.ReadData">
<short>Reads image data during component streaming.</short>
<descr>
<p>
<var>ReadData</var> is a procedure used to read binary data for the graphic
from the specified stream. It is used by the
<var>TFiler</var> instance which loads data during component streaming. It is
overridden in TRasterImage to provide support for TRasterImageClass and
descendants when loading raw image data.
</p>
<p>
Versions of Lazarus prior to 0.9.26 did not maintain a relationship between
graphics formats and image class types. ReadData checks the LongInt value at
the beginning of the stream to determine the version number for the streaming
format. When a newer version is used, the signature for the image format is
read from the Stream. If the image class used is not derived from the
TRasterImageClass type, additional conversion is needed to load the raw image
data and assign the values to the class instance.
</p>
<p>
ReadData calls <var>LoadFromStream</var> to complete the operation.
</p>
</descr>
<seealso>
<link id="TGraphic.ReadData"/>
</seealso>
</element>
<element name="TRasterImage.ReadData.Stream">
<short>Stream with the raw image data read in the method.</short>
</element>
<element name="TRasterImage.ReadStream">
<short>
<var>ReadStream</var> - loads image data into the raw image.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class.
This method should not call <var>Changed()</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.ReadStream.AStream">
<short>Stream with the image data.</short>
</element>
<element name="TRasterImage.ReadStream.ASize">
<short>Number of bytes read from the stream.</short>
</element>
<element name="TRasterImage.SetSize">
<short>
<var>SetSize</var> - specifies height and width of Image.
</short>
<descr>
<p>
<var>SetSize</var> is used to set the <var>Height</var> and
<var>Width</var> for the image to the specified values.
</p>
<p>
SetSize is an abstract virtual method in <var>TRasterImage</var>, and must be
implemented in a descendent class to perform actions needed to resize the raw
image data for a specific image format.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.SetSize.AWidth">
<short>New width for the image.</short>
</element>
<element name="TRasterImage.SetSize.AHeight">
<short>New height for the image.</short>
</element>
<element name="TRasterImage.SetHandle">
<short>
Sets the handle used for the image.
</short>
<descr>
<p>
<var>SetHandle</var> stores the specified <var>TLCLHandle</var> value as the
handle used for the image. The handle is actually the one used by the internal
<var>TSharedRasterImage</var> instance for the class. No actions are
performed in the method when the value in AHandle is the same as the handle
in the shared image instance.
</p>
<p>
SetHandle frees the device context for the bitmap <var>Canvas</var>, unshares
the shared image, and discards its image data. The handle in AValue is
assigned to the internal shared image. When no other active update processes
are pending, the <var>Changed</var> method is called.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the AValue parameter.
</version>
<seealso>
<link id="TRasterImage.Changed"/>
<link id="TRasterImage.Canvas"/>
<link id="TRasterImage.BeginUpdate"/>
<link id="TRasterImage.EndUpdate"/>
<link id="TRasterImage.SetHandles"/>
<link id="TSharedImage.Reference"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TRasterImage.SetHandle.AValue">
<short>New value for the Handle.</short>
</element>
<element name="TRasterImage.SetHeight">
<short>Sets the value for the Height property.</short>
<descr>
<p>
Calls <var>SetSize</var> using the existing value for the <var>Width</var>
property and the value for the <var>AHeight</var> parameter.
</p>
</descr>
<seealso>
<link id="TRasterImage.SetSize"/>
<link id="TGraphic.Height"/>
</seealso>
</element>
<element name="TRasterImage.SetHeight.AHeight">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.SetWidth">
<short>Sets the value for the Width property.</short>
<descr>
<p>
Calls <var>SetSize</var> using the existing value for the <var>Height</var>
property and the value for the <var>AWidth</var> parameter.
</p>
</descr>
<seealso>
<link id="TRasterImage.SetSize"/>
<link id="TGraphic.Width"/>
</seealso>
</element>
<element name="TRasterImage.SetWidth.AWidth">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.SetTransparentMode">
<short>Sets the value for the TransparentMode property.</short>
<descr>
<p>
No actions are performed in the method when AValue is the same as the
existing value for the property.
</p>
<p>
When <var>AValue</var> contains <var>tmAuto</var>, the <var>clDefault</var>
constant is used as the value for the property. Otherwise, the
<var>RequestTransparentColor</var> method is called to get the color stored
in the bottom-left pixel in the raw image data.
</p>
</descr>
<seealso>
<link id="TRasterImage.TransparentMode"/>
<link id="TRasterImage.RequestTransparentColor"/>
<link id="TTransparentMode"/>
<link id="clDefault"/>
</seealso>
</element>
<element name="TRasterImage.SetTransparentMode.AValue">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.SetPixelFormat">
<short>Sets the value for the PixelFormat property.</short>
<descr>
<p>
Defined as an abstract virtual method. Must be implemented in a descendent
class to use the storage format supported for a specific image format.
</p>
</descr>
<seealso>
<link id="TRasterImage.PixelFormat"/>
</seealso>
</element>
<element name="TRasterImage.SetPixelFormat.AValue">
<short>New value for the property.</short>
</element>
<element name="TRasterImage.WriteData">
<short>Writes raw image data to the specified stream.</short>
<descr>
<p>
<var>WriteData</var> is a method used to write raw image data to the stream
specified in <var>Stream</var>. WriteData is used by the <var>TFiler</var>
instance during LCL component streaming.
</p>
<p>
WriteData ensures that an internal save stream is available for the shared
image in the class instance. An <var>FPImageException</var> is raised when a
valid stream could not be created for the image data.
</p>
<p>
WriteData is an overridden method with support for writing a header with the
size for the raw image data. WriteData re-implements the method, and does not
call the inherited method - but does call <var>SaveToStream</var> to
complete the operation (just like the ancestor).
</p>
</descr>
<errors>
Raises an FPImageException with the message in
<var>rsErrorWhileSavingBitmap</var> when a stream could not be created for
the shared image data.
</errors>
<seealso>
<link id="TGraphic.WriteData"/>
<link id="TRasterImage.ReadData"/>
<link id="TRasterImage.WriteStream"/>
<link id="TGraphic.ReadData"/>
<link id="#rtl.classes.TFiler">TFiler</link>
</seealso>
</element>
<element name="TRasterImage.WriteData.Stream">
<short>Stream instance where image data is written in the method.</short>
</element>
<element name="TRasterImage.WriteStream">
<short>Writes the image content to the specified stream instance.</short>
<descr>
<p>
<var>WriteStream</var> is an abstract virtual method, and must be implemented
in a descendant class to write data for a specific image format.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.WriteStream.AStream">
<short>Stream where image data is written in the method.</short>
</element>
<element name="TRasterImage.RequestTransparentColor">
<short>
Gets the color used to represent transparent pixels in the image.
</short>
<descr>
<p>
<var>RequestTransparentColor</var> is a <var>TColor</var> function used to
get the color for transparent pixels in the image. It is called when the
value <var>tmFixed</var> is assigned to the <var>TransparentMode</var>
property.
</p>
<p>
RequestTransparentColor examines pixels in the raw image data to get the
return value for the method. It gets the color for the pixel located at the
bottom-left corner of the image (x = 0, y - Height-1).
</p>
<p>
When <var>Empty</var> returns <b>True</b> (raw image data is not available),
the return value is <var>clNone</var>.
</p>
</descr>
<seealso>
<link id="TRasterImage.TransparentMode"/>
<link id="TGraphic.Empty"/>
<link id="TTransparentMode"/>
</seealso>
</element>
<element name="TRasterImage.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 constructor on entry. Create ensures that the internal
shared image instance is created and referenced for the implementation.
</p>
<p>
Create sets the default value for the <var>TransparentColor</var> property to
<var>clDefault</var>. This is done for Delphi compatibility where clDefault
indicates that the bottom left pixel in the image is used as the transparent
color.
</p>
</descr>
<seealso>
<link id="TRasterImageClass"/>
<link id="TRasterImage.TransparentColor"/>
<link id="TGraphic.Create"/>
</seealso>
</element>
<element name="TRasterImage.Destroy">
<short>
<var>Destroy</var> is the destructor for <var>TRasterImage</var>: frees the
canvas, and releases image then calls inherited
<var>Destroy</var>.
</short>
<descr/>
<seealso>
<link id="#rtl.classes.TPersistent.Destroy">TPersistent.Destroy</link>
</seealso>
</element>
<element name="TRasterImage.Assign">
<short>
<var>Assign</var> - copies details from Source according to data type.
</short>
<descr>
<p>
<var>Assign</var> is a procedure used to copy values from the specified
<var>TPersistent</var> object into the current class instance. Assign is
overridden to handle using a <var>TRasterImage</var> or
<var>TFPCustomImage</var> instance in the
<var>Source</var> parameter.
</p>
<p>
No actions are performed in the method when Source is the same class instance
as the current class instance (Self).
</p>
<p>
When Source is a TRasterImage instance, the following actions are performed:
</p>
<ul>
<li>Clears an allocated mask handle by calling UpdateHandles.</li>
<li>
Sets TransparentMode, TransparentColor, and Masked to the values in Source.
</li>
<li>Frees an existing Canvas context when shared images are not the same.</li>
<li>
Makes a copy of the shared image in Source when they are of the same image
class.
</li>
<li>
Creates a new shared image and copies its raw image data when they are NOT of
the same image class.
</li>
<li>Copies an allocated mask handle from Source.</li>
<li>
Calls Changed to update Modified and signal the OnChange event handler (when
assigned).
</li>
</ul>
<p>
When Source is a TFPCustomImage instance, the following actions are performed:
</p>
<ul>
<li>Copies the raw image data from Source using its bitmap and mask
handles.</li>
<li>
Calls UpdateHandles to reflect the new handles in the current class instance.
</li>
<li>
Calls Changed to update Modified and signal the OnChange event handler (when
assigned).
</li>
</ul>
<p>
For other TPersistent descendants, the inherited method is called using
Source as an argument.
</p>
</descr>
<seealso>
<link id="TGraphic.Assign"/>
</seealso>
</element>
<element name="TRasterImage.Assign.Source">
<short>Persistent object with values copied in the method.</short>
</element>
<element name="TRasterImage.Clear">
<short>Removes raw image data and frees the internal save stream.</short>
<descr>
<p>
<var>Clear</var> is an overridden method used to remove raw image data and
free the internal save stream in the class instance. No actions are performed
in the method when <var>Empty</var> returns
<b>True</b>.
</p>
<p>
Clears set the values in <var>Height</var> and <var>Width</var> to <b>0</b>
(<b>zero</b>) to reflect the new size for the image. Clear calls the
<var>Changed</var> method when a <var>BeginUpdate</var> process is not active.
</p>
</descr>
<seealso>
<link id="TRasterImage.Changed"/>
<link id="TRasterImage.BeginUpdate"/>
<link id="TRasterImage.EndUpdate"/>
<link id="TGraphic.Empty"/>
<link id="TGraphic.Clear"/>
</seealso>
</element>
<element name="TRasterImage.BeginUpdate">
<short>
<var>BeginUpdate</var> - start the update process.
</short>
<descr>
<p>
<var>BeginUpdate</var> is a method used to initiate an update to the image.
</p>
<p>
BeginUpdate uses the value in an internal member to track the number of
active updates for the image. When the counter has a non-zero value,
BeginUpdate has already been called and <var>EndUpdate</var> has not yet been
executed. If the value in the counter is <b>0</b>, the shared image is
released and the value in <var>ACanvasOnly</var> is stored in the class
instance.
</p>
<p>
BeginUpdate can raise an <var>EInvalidGraphicOperation</var> exception if a
pending update was for a canvas only and a subsequent update requests a full
update. The default value for ACanvasOnly is <b>False</b> (full update).
</p>
<p>
BeginUpdate increments the value in the internal counter prior to exiting
from the method.
</p>
</descr>
<errors>
Raises an EInvalidGraphicOperation exception with the message in
<var>rsRasterImageUpdateAll</var> if a pending update was for a canvas only
and a subsequent update requests a full update.
</errors>
</element>
<element name="TRasterImage.BeginUpdate.ACanvasOnly">
<short>
<b>True</b> when only the Canvas is updating; <b>False</b> when image data is
loading.
</short>
</element>
<element name="TRasterImage.EndUpdate">
<short>
<var>EndUpdate</var> - finishes the update process.
</short>
<descr>
<p>
<var>EndUpdate</var> finishes an update process.
</p>
<p>
EndUpdate maintains the value in the internal counter used to track active
update processes started by calling <var>BeginUpdate</var>. It decrements the
counter when it has a non-zero value, and exits immediately.
</p>
<p>
An <var>EInvalidGraphicOperation</var> exception is raised if the counter is
already at <b>0</b> (<b>zero</b>) when EndUpdate is called.
</p>
<p>
When a full update was requested (loading image data), the device context for
the <var>Canvas</var> and an allocated <var>BitmapHandle</var> are freed.
</p>
<p>
<var>AStreamIsValid</var> indicates if the save stream for the shared image
is valid. When set to <b>False</b>, the save stream is freed. Any operation
that modifies the save stream for the shared image should be performed within
bracketed BeginUpdate / EndUpdate calls.
</p>
<p>
EndUpdate calls <var>Changed</var> to set the value in <var>Modified</var>
and to signal the <var>OnChange</var> event handler (when assigned).
</p>
</descr>
<errors>
Raises an EInvalidGraphicOperation exception with the message in
rsRasterImageEndUpdate if the counter is already at <b>0</b> (<b>zero</b>)
when EndUpdate is called.
</errors>
</element>
<element name="TRasterImage.EndUpdate.AStreamIsValid">
<short>Indicates if the save stream for a shared image is valid.</short>
</element>
<element name="TRasterImage.FreeImage">
<short>Frees the image by resetting its handle.</short>
<descr>
<p>
Calls SetHandle to set the bitmap handle to <b>0</b> (<b>zero</b>).
Generally, FreeImage is overridden and used in the destructor for descendent
classes.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.BitmapHandleAllocated">
<short>
<var>BitmapHandleAllocated</var> - returns <b>True</b> if a handle has been
allocated for the Bitmap.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class to provide support for a specific image format.
</p>
</descr>
<seealso>
<link id="TRasterImage.MaskHandleAllocated"/>
</seealso>
</element>
<element name="TRasterImage.BitmapHandleAllocated.Result">
<short>
<b>True</b> when a handle has been allocated for bitmap data in the image.
</short>
</element>
<element name="TRasterImage.MaskHandleAllocated">
<short>
<var>MaskHandleAllocated</var> - returns <b>True</b> if a handle has been
allocated for the Mask.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class to provide support for a specific image format.
</p>
</descr>
<seealso>
<link id="TRasterImage.BitmapHandleAllocated"/>
</seealso>
</element>
<element name="TRasterImage.MaskHandleAllocated.Result">
<short>
<b>True</b> when a handle has been allocated for mask data in the image.
</short>
</element>
<element name="TRasterImage.PaletteAllocated">
<short>
<var>PaletteAllocated</var> - returns <b>True</b> if a Palette has been
allocated.
</short>
<descr>
<p>
Declared as an abstract virtual method. Must be implemented in a descendent
class to provide support for a specific image format.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.PaletteAllocated.Result">
<short>
<b>True</b> when a handle has been allocated for the palette in the image.
</short>
</element>
<element name="TRasterImage.LoadFromBitmapHandles">
<short>
Loads the image data from the specified Bitmap and Mask handles.
</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.LoadFromBitmapHandles.ABitmap">
<short>Bitmap handle for the image.</short>
</element>
<element name="TRasterImage.LoadFromBitmapHandles.AMask">
<short>Mask handle for the image.</short>
</element>
<element name="TRasterImage.LoadFromBitmapHandles.ARect">
<short>Pointer to the source rectangle for the image data.</short>
</element>
<element name="TRasterImage.LoadFromDevice">
<short>Loads image data from the specified device context.</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.LoadFromDevice.DC">
<short>Device context used for the operation.</short>
</element>
<element name="TRasterImage.LoadFromStream">
<short>
<var>LoadFromStream</var> - loads data for the image from a specified data
stream, optionally supplying its size.
</short>
<descr>
<p>
<var>LoadFromStream</var> is an overloaded method in <var>TRasterImage</var>
used to load image data from the <var>TStream</var> instance specified in
<var>AStream</var>.
</p>
<p>
One of the overloaded variants provides an <var>ASize</var> argument which
contains the number of bytes to read from the stream. When the ASize argument
is omitted, the remaining content in the stream is read starting at the
current position in the stream.
</p>
<p>
LoadFromStream calls <var>BeginUpdate</var> to increment the internal update
counter in the class instance. <var>EndUpdate</var> is called when the stream
has been processed in the method.
</p>
<p>
LoadFromStream discards an existing shared image and its save stream, and
clears existing handles and raw image data in the class instance. No
additional actions are performed in the method when ASize is <b>0</b>
(<b>zero</b>).
</p>
<p>
LoadFromStream re-creates the save stream for the shared image and copies the
content in AStream to the save stream. The <var>ReadStream</var> method is
called to load the image data for the class instance.
</p>
</descr>
<seealso>
<link id="TRasterImage.BeginUpdate"/>
<link id="TRasterImage.EndUpdate"/>
<link id="TRasterImage.Clear"/>
<link id="TRasterImage.ReadStream"/>
</seealso>
</element>
<element name="TRasterImage.LoadFromStream.AStream">
<short>Stream with the image data loaded in the method.</short>
</element>
<element name="TRasterImage.LoadFromStream.ASize">
<short>Number of byte to read from the stream.</short>
</element>
<element name="TRasterImage.LoadFromMimeStream">
<short>Loads image data from a stream for the specified MIME type.</short>
<descr>
<p>
<var>LoadFromMimeStream</var> is an overridden method in
<var>TRasterImage</var>.
</p>
<p>
LoadFromMimeStream examines the <var>ClassType</var> for the image to
determine if it is handled in the overridden method. <var>TBitmap</var>,
<var>TPixmap</var>, and <var>TCustomIcon</var> descendants are handled in the
method.
</p>
<p>
LoadFromMimeStream compares the value in <var>AMimeType</var> to the
<var>PredefinedClipboardMimeTypes</var> values defined in LCL. If AMimeType
matches one of the values defined for TPixmap or TBitmap, then the
<var>LoadFromStream</var> method is called to load image data from
<var>AStream</var>.
</p>
<p>
Other ClassType or MIME type values cause the inherited
<var>LoadFromMimeStream</var> method to be called.
</p>
<p>
LoadFromMimeStream is used in the implementation of the
<var>AssignGraphic</var> method in <var>TClipboard</var>.
</p>
</descr>
<seealso>
<link id="TGraphic.LoadFromMimeStream"/>
<link id="#lcl.clipbrd.TClipboard">TClipboard</link>
</seealso>
</element>
<element name="TRasterImage.LoadFromMimeStream.AStream">
<short>Stream with the image data loaded in the method.</short>
<short/>
</element>
<element name="TRasterImage.LoadFromMimeStream.AMimeType">
<short>MIME type for the image data in the stream.</short>
</element>
<element name="TRasterImage.LoadFromRawImage">
<short>Loads image data from the specified TRawImage instance.</short>
<descr>
<p>
<var>LoadFromRawImage</var> is a procedure used to load raw image data in
<var>AImage</var> into the class instance.
</p>
<p>
LoadFromRawImage calls <var>BeginUpdate</var> to increment the update process
count, and calls <var>EndUpdate</var> when the image data has been loaded in
the method.
</p>
<p>
LoadFromRawImage calls <var>Clear</var> to free the internal save stream for
the class instance, and calls <var>SetSize</var> to reflect an empty image.
No additional actions are performed in the method If AImage contains an empty
image.
</p>
<p>
The Image Descriptor in AImage is assigned to the internal
<var>TRawImage</var> instance to capture the image metadata.
</p>
<p>
<var>ADataOwner</var> indicates if the internal TRawImage instance is the
owner for the image data in AImage. When set to <b>True</b>, values in AImage
data are assigned directly to the pointer to the internal raw image data.
Values include the size and content for the image data, the image mask, and
the palette. When set to <b>False</b>, storage for values is allocated using
<var>GetMem</var> and copied from AImage using the <var>Move</var> routine.
</p>
</descr>
<seealso>
<link id="#lazutils.graphtype.TRawImage">TRawImage</link>
</seealso>
</element>
<element name="TRasterImage.LoadFromRawImage.AImage">
<short>Raw image instance loaded in the method.</short>
</element>
<element name="TRasterImage.LoadFromRawImage.ADataOwner">
<short><b>True</b> if the image owns the raw image data.</short>
</element>
<element name="TRasterImage.LoadFromIntfImage">
<short>Loads the image from a TLazIntfImage instance.
</short>
<descr>Calls the CreateBitmaps method to create the image and mask handles
used to access the image data.
Calls SetHandles to apply the image and mask handles to the class instance.
</descr>
<seealso/>
</element>
<element name="TRasterImage.LoadFromIntfImage.IntfImage">
<short>TLazIntfImage instance with image data loaded in the method.</short>
</element>
<element name="TRasterImage.SaveToStream">
<short>Saves image data to the specified stream.</short>
<descr>
<p>
<var>SaveToStream</var> is an overridden method used to write image data to
the stream specified in <var>AStream</var>.
</p>
<p>
SaveToStream calls <var>SaveStreamNeeded</var> to ensure that an internal
save stream exists in the class instance. An
<var>EInvalidGraphicOperation</var> exception is raised in SaveStreamNeeded
when the active update count for the count is not 0 (zero). An
<var>FPImageException</var> is raised when a TMemoryStream instance could not
be created and initialized in SaveStreamNeeded.
</p>
<p>
SaveToStream resets the internal save to stream to its origin, and resizes
AStream to include sufficient storage for the values in the internal save
stream. The <var>CopyFrom</var> method in AStream is called to store the
content for the internal shared image. An <var>FPImageException</var> is
raised when the number of bytes written in the CopyFrom method does not match
the size for the internal save stream.
</p>
</descr>
<errors>
<p>
Raises an FPImageException exception when the number of bytes written to the
stream does not match the size for the raw image data.
</p>
<p>
An Exception may be raised in SaveToStream (called in the method).
</p>
</errors>
<seealso>
<link id="TGraphic.SaveToStream"/>
</seealso>
</element>
<element name="TRasterImage.SaveToStream.AStream">
<short>Stream where the image data is stored.</short>
</element>
<element name="TRasterImage.GetSupportedSourceMimeTypes">
<short>
Gets a list of supported MIME types for image data used in the image type.
</short>
<descr>
<p>
<var>GetSupportedSourceMimeTypes</var> is an overridden method in
<var>TRasterImage</var> used to get the list of MIME types used for image
data in the image type. <var>List</var> is the <var>TStrings</var> instance
where the list of supported MIME types is stored.
</p>
<p>
GetSupportedSourceMimeTypes uses the value in <var>ClassType</var> to
determine if the request is handled in the overridden method. It is handled
in the method when ClassType is <var>TBitmap</var>, <var>TPixmap</var>, or
<var>TCustomIcon</var>. Values in the <var>PredefinedClipboardMimeTypes</var>
constant for the TBitmap and TPixmap types are added to List. When ClassType
contains any other type, the inherited method is called.
</p>
<p>
GetSupportedSourceMimeTypes is called from the <var>AssignPicture</var>
method in <var>TClipboard</var>.
</p>
</descr>
<seealso>
<link id="TGraphic.GetSupportedSourceMimeTypes"/>
<link id="#lcl.clipbrd.TClipboard">TClipboard</link>
</seealso>
</element>
<element name="TRasterImage.GetSupportedSourceMimeTypes.List">
<short/>
</element>
<element name="TRasterImage.GetSize">
<short>
Gets the image Width and Height from the metadata for the raw image.
</short>
<descr>
<p>
Calls <var>GetRawImageDescriptionPtr</var> to get a pointer to the image
descriptor in the raw image data. When the image descriptor is <b>Nil</b>, or
its Format contains <var>ricfNone</var>, the values in <var>AWidth</var> and
<var>AHeight</var> are both set to <b>0</b> (<b>zero</b>). Otherwise, the
<var>Width</var> and <var>Height</var> values in the image descriptor are
used as the output parameter values.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.GetSize.AWidth">
<short>Width for the raw image data.</short>
</element>
<element name="TRasterImage.GetSize.AHeight">
<short>Height for the raw image data.</short>
</element>
<element name="TRasterImage.Mask">
<short>Applies the color used for transparent pixels to the image.</short>
<descr>
<p>
Calls CreateMask to create and apply the mask handle required for the fixed
color transparency.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.Mask.ATransparentColor">
<short>Color used to represent transparent pixels in the mask.</short>
</element>
<element name="TRasterImage.SetHandles">
<short>
Sets handles for the bitmap and the mask to the specified values.
</short>
<descr>
<p>
<var>SetHandles</var> is a procedure used to set the handles for the bitmap
and the mask to the values specified in <var>ABitmap</var> and
<var>AMask</var>. SetHandles is an abstract virtual method in
<var>TRasterImage</var>, and must be implemented in a descendent class to
store handle values in the shared image used in the image format.
</p>
</descr>
<seealso>
<link id="TCustomBitmap.SetHandles"/>
<link id="TCustomIcon.SetHandles"/>
</seealso>
</element>
<element name="TRasterImage.SetHandles.ABitmap">
<short>Handle to use for the Bitmap.</short>
</element>
<element name="TRasterImage.SetHandles.AMask">
<short>Handle to use for the Mask.</short>
</element>
<element name="TRasterImage.ReleaseBitmapHandle">
<short>Releases the handle in the shared image without freeing the
BitmapHandle.
</short>
<descr>
<p>
<var>ReleaseBitmapHandle</var> is a HBITMAP function used to release the
handle for the shared image without freeing it. The return value contains the
handle value in the shared image when its <var>ReleaseHandle</var> method is
called.
</p>
<p>
Calls <var>BitmapHandleNeeded</var> to ensure that the
<var>BitmapHandle</var> and optional <var>MaskHandle</var> are valid for the
image type. Calls <var>FreeCanvasContext</var> to free the canvas context
when the handle been has changed.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.ReleaseBitmapHandle.Result">
<short>
Value for the handle in the shared image before it is released.
</short>
</element>
<element name="TRasterImage.ReleaseMaskHandle">
<short>
<var>ReleaseMaskHandle</var> - releases the Handle used for the Mask.
</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.ReleaseMaskHandle.Result">
<short/>
</element>
<element name="TRasterImage.ReleasePalette">
<short>
<var>ReleasePalette</var> - release the Handle used for the Palette.
</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.ReleasePalette.Result">
<short/>
</element>
<element name="TRasterImage.CreateIntfImage">
<short>
<var>CreateIntfImage</var> - creates an image on the Interface.
</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.CreateIntfImage.Result">
<short/>
</element>
<element name="TRasterImage.Canvas">
<short>
The <var>Canvas</var> where the raster image is rendered.
</short>
<descr>
<p>
<var>Canvas</var> is a read-only <var>TCanvas</var> property which contains
the drawing surface where the data for the image is rendered.
</p>
<p>
Reading the value for the property causes the <var>CreateCanvas</var> method
to be called when the member has not been initialized. In TRasterImage, the
Canvas member is an instance of <var>TBitmapCanvas</var>. It is configured to
use the <var>CanvasChanging</var> and <var>Changed</var> methods for the
<var>OnChanging</var> and <var>OnChange</var> event handlers in the canvas.
</p>
<p>
The device context (or handle) for the Canvas is modified when the
<var>BitmapHandle</var> or <var>MaskHandle</var> are assigned or released for
the class instance.
</p>
<p>
Canvas is used in the <var>Draw</var> method to get the rendered content
transferred to a destination canvas. Canvas is also used to auto-detect the
<var>TransparentColor</var> using the <var>Pixels</var> in the image.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.HandleAllocated">
<short>
Indicates if a handle has been assigned for the shared image in the class.
</short>
<descr>
<p>
<var>HandleAllocated</var> is a <var>Boolean</var> function which indicates
if a valid handle has been assigned for the internal
<var>TSharedRasterImage</var> instance in the class. The return value is
<b>True</b> when the handle in the shared image contains a <b>non-zero</b>
value.
</p>
<p>
Use <var>BitmapHandleAllocated</var> to determine if a <var>HBITMAP</var>
handle has been assigned for the Bitmap in the class instance.
</p>
<p>
Use <var>MaskHandleAllocated</var> to determine if a <var>HBITMAP</var>
handle has been assigned for the Mask in the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TRasterImage.HandleAllocated.Result">
<short>
<b>True</b> when a handle has been assigned for the shared image.
</short>
</element>
<element name="TRasterImage.BitmapHandle">
<short>
<var>BitmapHandle</var> - the Handle that has been allocated for the Bitmap.
</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.Masked">
<short>
<var>Masked</var> - returns <b>True</b> if a Mask is being applied.
</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.MaskHandle">
<short>The handle allocated for the Bitmap Mask.</short>
<descr/>
<seealso/>
</element>
<element name="TRasterImage.PixelFormat">
<short>Storage format for the Pixels in the Image.</short>
<descr>
<p>
<var>PixelFormat</var> is a <var>TPixelFormat</var> property which contains
the storage format for colors in <var>Pixels</var>. The default value is
<var>pfDevice</var> and indicates that the source device determines the pixel
format. The value is PixelFormat indicates the number of bits required to
store the color, and the maximum number of colors allowed for a given pixel.
</p>
<p>
See <link id="TPixelFormat">TPixelFormat</link> for the values in the
enumeration and their meanings.
</p>
<p>
PixelFormat is essentially a read-only property in <var>TRasterImage</var>.
The read and write access specifiers are declared as abstract virtual
methods, and are overridden in descendent classes to access raw image data
for a specific image format.
</p>
</descr>
<seealso>
<link id="TPixelFormat"/>
</seealso>
</element>
<element name="TRasterImage.RawImage">
<short>Provides access to the raw image data for the image type.</short>
<descr>
<p>
<var>RawImage</var> is a read-only TRawImage property which provides access
to the raw image data for the image type. It provides access to the raw image
descriptor and pointers to the bytes values used in the Bitmap, Mask, and
Palette for the image. The value for the property is captured using the
pointer returned by the GetRawImagePtr method.
</p>
<p>
Always use <var>BeginUpdate</var> and <var>EndUpate</var> to surround any
action which modifies member values in RawImage.
</p>
</descr>
<seealso>
<link id="TRasterImage.BeginUpdate"/>
<link id="TRasterImage.EndUpdate"/>
<link id="#lazutils.graphtype.TRawImage">TRawImage</link>
</seealso>
</element>
<element name="TRasterImage.ScanLine">
<short>Provides indexed access to a scan line in the raw image data.</short>
<descr>
<p>
<var>ScanLine</var> is a read-only indexed <var>Pointer</var> property which
provides access to a scan line in the raster image. The scan line consists of
a single row of pixels in the the raw image data.
</p>
<p>
<var>Row</var> contains the row number read from the <var>TRawImage</var>
instance provided by the <var>GetRawImage</var> method. Row number values
start at <b>0</b> (<b>zero</b>).
</p>
<p>
The return value is a Pointer to the byte values for the requested row in the
raw image data.
</p>
<p>
Reading a value in ScanLines should always be performed inside a
<b>BeginUpdate ... EndUpdate</b> sequence.
</p>
<p>
ScanLine is a platform-specific property, and may not be implemented for all
platforms or widgetsets.
</p>
</descr>
<seealso/>
<notes>
<note>Which platforms support it? Win, Qt, macOS Carbon...</note>
</notes>
</element>
<element name="TRasterImage.ScanLine.Row">
<short>Row number for the pixels accessed in the raw image data.</short>
</element>
<element name="TRasterImage.TransparentColor">
<short>Color used for transparent pixels in the image.</short>
<descr>
<p>
<var>TransparentColor</var> is a <var>TColor</var> property which indicates
the color used for transparent pixels in the raw image data. The default
value for the property is
<var>clDefault</var>.
</p>
<p>
TransparentColor is used along with <var>TransparentMode</var> to determine
whether a fixed color is used for transparency, or if the transparent color
is read from a specified pixel in the raw image data.
</p>
<p>
When TransparentColor contains <var>clDefault</var>, the
<var>RequestTransparentColor</var> method is used to get the transparency
color value from the bottom-left pixel in the raw image data.
</p>
<p>
When setting a new value for the property, the TransparentMode property is
updated as well. When clDefault is assigned to the property, TransparentMode
is set to <var>tmAuto</var>. For other color values, TransparentMode is set
to <var>tmFixed</var>.
</p>
<p>
<var>MaskHandleAllocated</var> is called to determine if a HBITMAP handle has
been allocated for the MaskHandle property. When <b>True</b>, the
<var>MaskHandle</var> is reset to 0 to indicate the handle is no longer in
use or is invalid.
</p>
<p>
The <var>Changed</var> method is called to update the internal save stream
for the image (when needed), set <var>Modified</var> to <b>True</b>, and
signal the <var>OnChange</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TRasterImage.RequestTransparentColor"/>
<link id="TRasterImage.TransparentMode"/>
<link id="TRasterImage.MaskHandleAllocated"/>
<link id="TRasterImage.MaskHandle"/>
<link id="TRasterImage.Changed"/>
<link id="TGraphic.Transparent"/>
<link id="TGraphic.Modified"/>
<link id="TGraphic.OnChange"/>
<link id="TColor"/>
</seealso>
</element>
<element name="TRasterImage.TransparentMode">
<short>Determines how transparent pixels are represented in the image.</short>
<descr>
<p>
<var>TransparentMode</var> is a <var>TTransparentMode</var> property which
indicates how transparent pixels in the image are represented in the raw
image data. It is related to the <var>TransparentColor</var> and
<var>Masked</var> properties. TransparentMode can contain one of the
following values from the TTransparentMode enumeration:
</p>
<dl>
<dt>tmAuto</dt>
<dd>
Transparent pixels are represented using the color stored at the bottom-left
pixel in the raw image data. TransparentColor is set to clDefault.
</dd>
<dt>tmFixed</dt>
<dd>
Transparent pixels are represented using the color stored in the
TransparentColor property. Masked is set to <b>True</b>.
</dd>
</dl>
<p>
The default value for the property is <var>tmAuto</var>.
</p>
</descr>
<seealso>
<link id="TRasterImage.TransparentColor"/>
<link id="TRasterImage.Masked"/>
<link id="TTransparentMode"/>
</seealso>
</element>
<element name="TSharedCustomBitmap">
<short>Implements the base class for a reference-counted shared image.</short>
<descr>
<p>
<var>TSharedCustomBitmap</var> is a <var>TSharedRasterImage</var> descendant
which implements the base class for reference-counted shared images, like:
TSharedBitmap, TSharedPixmap, TSharedJPEGImage, TSharedPortableNetworkGraphic
and TSharedPortableAnyMapGraphic.
</p>
</descr>
<seealso>
<link id="TSharedRasterImage"/>
<link id="TSharedBitmap"/>
<link id="TSharedPixmap"/>
<link id="TSharedJPEGImage"/>
<link id="TSharedPortableNetworkGraphic"/>
<link id="TSharedPortableAnyMapGraphic"/>
</seealso>
</element>
<!-- private -->
<element name="TSharedCustomBitmap.FHandleType"/>
<element name="TSharedCustomBitmap.FImage"/>
<element name="TSharedCustomBitmap.FHasMask"/>
<element name="TSharedCustomBitmap.FPalette"/>
<element name="TSharedCustomBitmap.GetHeight">
<short>Gets the value for the Height property.</short>
<descr/>
<seealso>
<link id="TSharedCustomBitmap.Height"/>
</seealso>
</element>
<element name="TSharedCustomBitmap.GetHeight.Result">
<short>Value for the property.</short>
</element>
<element name="TSharedCustomBitmap.GetWidth">
<short>Gets the value for the Width property.</short>
<descr/>
<seealso>
<link id="TSharedCustomBitmap.Width"/>
</seealso>
</element>
<element name="TSharedCustomBitmap.GetWidth.Result">
<short>Value for the property.</short>
</element>
<element name="TSharedCustomBitmap.FreeHandle">
<short>Frees the Handle and the Palette for the shared Bitmap.</short>
<descr>
<p>
<var>FreeHandle</var> frees Palette then calls inherited
<var>FreeHandle</var>.
</p>
</descr>
<seealso>
<link id="TSharedImage.FreeHandle"/>
</seealso>
</element>
<element name="TSharedCustomBitmap.FreePalette">
<short>Frees the handle in the Palette property.</short>
<descr>
<p>
<var>FreePalette</var> is a procedure used to free the handle assigned for
the <var>Palette</var>. FreePalette calls <var>DeleteObject</var> to release
the Palette handle. The Palette handle is set to <b>0</b> (<b>zero</b>) to
indicate that the handle is no longer in use or is invalid.
</p>
<p>
No actions are performed in the method when the Palette handle contains
<b>0</b> on entry.
</p>
</descr>
<seealso/>
</element>
<element name="TSharedCustomBitmap.FreeImage">
<short>
Frees raw image data for the shared bitmap and resets its image descriptor.
</short>
<descr>
<p>
Calls the <var>FreeData</var> method in the internal <var>TRawImage</var>
member to free the raw image data. Sets the <var>Format</var> in its
<var>Description</var> property to <var>ricfNone</var>.
</p>
<p>
FreeImage is called from the destructor when the class instance is destroyed.
</p>
</descr>
<seealso>
<link id="TSharedCustomBitmap.Destroy"/>
<link id="#lazutils.graphtype.TRawImage">TRawImage</link>
</seealso>
</element>
<element name="TSharedCustomBitmap.ReleasePalette">
<short>Returns the Handle of the released Palette.
</short>
<descr>
<p>
<var>ReleasePalette</var> is a <var>HPALETTE</var> function used to release
the internal palette handle for the shared bitmap. The return value contains
the existing palette handle on entry.
</p>
<p>
Sets the value in the internal palette handle to <b>0</b> to indicate that
the palette handle is no longer in use or is invalid.
</p>
<p>
Use FreePalette to remove the palette handle in widgetset classes.
</p>
</descr>
<seealso/>
</element>
<element name="TSharedCustomBitmap.ReleasePalette.Result">
<short/>
</element>
<element name="TSharedCustomBitmap.GetPixelFormat">
<short>Gets the value for the PixelFormat property.</short>
<descr/>
<seealso>
<link id="TSharedCustomBitmap.PixelFormat"/>
</seealso>
</element>
<element name="TSharedCustomBitmap.GetPixelFormat.Result">
<short>Value for the property.</short>
</element>
<element name="TSharedCustomBitmap.IsEmpty">
<short>Determines if the shared bitmap is empty.</short>
<descr>
<p>
<var>IsEmpty</var> is an overridden method in <var>TSharedCustomBitmap</var>
used to determine if the shared bitmap is empty. IsEmpty calls the inherited
method on entry, and adds additional logic needed for the Bitmap image format.
</p>
<p>
The return value is <b>True</b> when all of the following conditions are met:
</p>
<ul>
<li>The Handle is unassigned (contains 0).</li>
<li>The internal save stream for the image is not assigned.</li>
<li>The color format used for raw image data is ricfNone.</li>
<li>The raw image data is Nil.</li>
<li>The raw image data size is 0.</li>
</ul>
</descr>
<seealso>
<link id="TSharedRasterImage.IsEmpty"/>
</seealso>
</element>
<element name="TSharedCustomBitmap.IsEmpty.Result">
<short><b>True</b> if the shared bitmap is empty.</short>
</element>
<element name="TSharedCustomBitmap.Create">
<short>
<var>Create</var> - constructor for
<var>TSharedCustomBitmap</var>: calls inherited
<var>Create</var> and initializes the image.
</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance, and
calls the inherited constructor on entry. Create calls the <var>Init</var>
method in the internal <var>TRawImage</var> instance uses in the class. This
ensures that resources are allocated and initialized, and properties are set
to their default values in both the raw image and its image descriptor.
</p>
</descr>
<seealso>
<link id="#lazutils.graphtype.TRawImage.Init">TRawImage.Init</link>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TSharedCustomBitmap.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for
<var>TSharedCustomBitmap</var>.
</p>
<p>
Destroy frees the internal save stream for the class instance. It also calls
FreeHandle and FreeImage to free the handle and the raw image data for the
shared bitmap. Calls the inherited destructor prior to exiting from the
method.
</p>
</descr>
<seealso>
<link id="TSharedCustomBitmap.FreeHandle"/>
<link id="TSharedCustomBitmap.FreeImage"/>
<link id="TSharedRasterImage.Destroy"/>
</seealso>
</element>
<element name="TSharedCustomBitmap.HandleAllocated">
<short>
Determines if the handle for the shared bitmap has been allocated.
</short>
<descr>
<p>
<var>HandleAllocated</var> is an overridden method used to determine if the
handle for the shared bitmap has been allocated. HandleAllocated implements
the abstract virtual method defined in <var>TSharedImage</var>.
</p>
<p>
The return value is <b>True</b> when the internal handle has a non-zero value.
</p>
</descr>
<seealso>
<link id="TSharedImage.HandleAllocated"/>
</seealso>
</element>
<element name="TSharedCustomBitmap.HandleAllocated.Result">
<short><b>True</b> when the handle has a non-zero value.</short>
</element>
<element name="TSharedCustomBitmap.ImageAllocated">
<short>
<var>ImageAllocated</var> - returns <b>True</b> if an image has been
allocated.
</short>
<descr>
<p>
<var>ImageAllocated</var> is a <var>Boolean</var> function which indicates if
the internal raw image data has been allocated for the shared bitmap. The
return value is <b>True</b> when the <var>TRawImage</var> instance in the
class has a value other than <var>ricfNone</var> in its image descriptor.
</p>
</descr>
<seealso>
<link id="#lazutils.graphtype.TRawImage.Description">TRawImage.Description</link>
<link id="#lazutils.graphtype.TRawImageDescription.Format">TRawImageDescription.Format</link>
<link id="#lazutils.graphtype.TRawImageColorFormat">TRawImageColorFormat</link>
</seealso>
</element>
<element name="TSharedCustomBitmap.ImageAllocated.Result">
<short>
<b>True</b> when the color format for the raw image data has been assigned.
</short>
</element>
<element name="TSharedCustomBitmap.HandleType">
<short>
<var>HandleType</var> the type of Bitmap Handle that has been allocated.
</short>
<descr>
<p>
HandleType is a TBitmapHandleType property which indicates the Bitmap handle
type and the storage mechanism used for the Bitmap header and data.
</p>
<remark>
Use of HandleType is not implemented in the current LCL version.
</remark>
</descr>
<seealso/>
</element>
<element name="TSharedCustomBitmap.Height">
<short>The <var>Height</var> of the Bitmap.</short>
<descr>
<p>
<var>Height</var> is a read-only <var>Integer</var> property which contains
the height for the shared bitmap image as indicated in the descriptor for the
raw image data. The property value is always <b>0</b> (<b>zero</b>) when the
descriptor for the internal raw image data contains <var>ricfNone</var>.
</p>
</descr>
<seealso>
<link id="#lazutils.graphtype.TRawImage.Description">TRawImage.Description</link>
<link id="#lazutils.graphtype.TRawImageDescription.Format">TRawImageDescription.Format</link>
<link id="#lazutils.graphtype.TRawImageColorFormat">TRawImageColorFormat</link>
</seealso>
</element>
<element name="TSharedCustomBitmap.PixelFormat">
<short>Storage format for pixels in the raw image data.</short>
<descr>
<p>
<var>PixelFormat</var> is a read-only <var>TPixelFormat</var> property with
the storage format used for pixel data in the raw image. It also determines
the number of colors (or color depth) allowed in the raw image data.
</p>
<p>
See <var>TPixelFormat</var> for more information about the values and
meanings in the enumeration.
</p>
</descr>
<seealso>
<link id="TPixelFormat"/>
<link id="#lazutils.graphtype.TRawImageDescription.Depth">TRawImageDescription.Depth</link>
</seealso>
</element>
<element name="TSharedCustomBitmap.Width">
<short>The Width of the Bitmap.</short>
<descr>
<p>
<var>Width</var> is a read-only <var>Integer</var> property which contains
the width for the shared bitmap image as indicated in the descriptor for the
raw image data. The property value is always <b>0</b> (<b>zero</b>) when the
descriptor for the internal raw image data contains <var>ricfNone</var>.
</p>
</descr>
<seealso>
<link id="#lazutils.graphtype.TRawImage.Description">TRawImage.Description</link>
<link id="#lazutils.graphtype.TRawImageDescription.Format">TRawImageDescription.Format</link>
<link id="#lazutils.graphtype.TRawImageColorFormat">TRawImageColorFormat</link>
</seealso>
</element>
<element name="TCustomBitmap">
<short>
<var>TCustomBitmap</var> - the base class for <var>TBitmap</var>.
</short>
<descr>
<p>
<var>TCustomBitmap</var> is a <var>TRasterImage</var> descendant which
implements the base class for TBitmap. It contains image data using the
<b>.bmp (Windows bitmap)</b> or <b>.xpm (XPixMap)</b> formats. Image data can
be loaded from a file, stream, or resource. The loading routine automatically
recognizes the format, and can be used to load images from a Delphi form
streams (.dfm files).
</p>
<p>
When the handle is created, it is up to the widgetset interface (gtk, qt,
win32, etc.) to automatically convert it to the best internal format for the
platform. That is the reason the Handle is interface dependent. To access the
raw image data, see <var>TLazIntfImage</var> in <file>IntfGraphics.pas</file>.
</p>
<p>
Do not create instances of TCustomBitmap; use the TBitmap descendant.
</p>
</descr>
</element>
<!-- private -->
<element name="TCustomBitmap.FPixelFormat"/>
<element name="TCustomBitmap.FPixelFormatNeedsUpdate"/>
<element name="TCustomBitmap.FMaskHandle"/>
<element name="TCustomBitmap.GetHandleType">
<short>Gets the value for the HandleType property.</short>
<descr/>
<seealso>
<link id="TCustomBitmap.HandleType"/>
</seealso>
</element>
<element name="TCustomBitmap.GetHandleType.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomBitmap.GetMonochrome">
<short>Gets the value for the Monochrome property.</short>
<descr/>
<seealso>
<link id="TCustomBitmap.Monochrome"/>
</seealso>
</element>
<element name="TCustomBitmap.GetMonochrome.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomBitmap.SetBitmapHandle">
<short>Sets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TCustomBitmap.Handle"/>
</seealso>
</element>
<element name="TCustomBitmap.SetBitmapHandle.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomBitmap.SetHandleType">
<short>Sets the value for the HandleType property.</short>
<descr/>
<seealso>
<link id="TCustomBitmap.HandleType"/>
</seealso>
</element>
<element name="TCustomBitmap.SetHandleType.Value">
<short>New value for the property.</short>
</element>
<element name="TCustomBitmap.SetMonochrome">
<short>Sets the value for the Monochrome property.</short>
<descr/>
<seealso>
<link id="TCustomBitmap.Monochrome"/>
</seealso>
</element>
<element name="TCustomBitmap.SetMonochrome.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomBitmap.UpdatePixelFormat">
<short>Updates the value in PixelFormat from the shared Bitmap image.</short>
<descr>
<p>
Called when the value for <var>PixelFormat</var> is retrieved and the image
descriptor has not already been read for the shared image.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomBitmap.MaskHandleNeeded">
<short>
Ensures that a handle is allocated for the image mask (when needed).
</short>
<descr>
<p>
Implements the abstract virtual method defined in the ancestor class.
</p>
</descr>
<seealso>
<link id="TRasterImage.MaskHandleNeeded"/>
</seealso>
</element>
<element name="TCustomBitmap.PaletteNeeded">
<short>
Ensures that a handle is allocated for the Palette in the image.
</short>
<descr>
<p>
<var>PaletteNeeded</var> has an empty implementation in
<var>TCustomBitmap</var>.
</p>
</descr>
<seealso>
<link id="TRasterImage.PaletteNeeded"/>
</seealso>
</element>
<element name="TCustomBitmap.CanShareImage">
<short>Indicates if the image uses the specified shared image class.</short>
<descr>
<p>
<var>CanShareImage</var> is an overridden method which indicates if the image
uses the specified shared image class. The image can be shared only when it
uses the same shared image class type.
</p>
</descr>
<seealso>
<link id="TRasterImage.CanShareImage"/>
</seealso>
</element>
<element name="TCustomBitmap.CanShareImage.Result">
<short/>
</element>
<element name="TCustomBitmap.CanShareImage.AClass">
<short>Shared image class type compared in the method.</short>
</element>
<element name="TCustomBitmap.Changed">
<short>
Performs actions needed when the image data for the bitmap has been changed.
</short>
<descr>
<p>
<var>Changed</var> is an overridden method in <var>TCustomBitmap</var>.
Changed examines the value in <var>Sender</var> to determine the origin for
the change.
</p>
<p>
When Sender is the <var>Canvas</var> for the class instance, the image was
changed after an update to its <var>Canvas</var>. The raw image data in the
shared image is no longer valid, and it is freed. The inherited method is
called to free the save stream for the shared image, set the value in
<var>Modified</var>, and signal the <var>OnChange</var> event handler (when
assigned).
</p>
</descr>
<seealso>
<link id="TRasterImage.Changed"/>
</seealso>
</element>
<element name="TCustomBitmap.Changed.Sender">
<short>Object instance for the change notification.</short>
</element>
<element name="TCustomBitmap.CreateDefaultBitmapHandle">
<short>
Creates a handle for the bitmap using the bitmap handle type in the bitmap
image data.
</short>
<descr>
<p>
<var>CreateDefaultBitmapHandle</var> is an overridden method in
<var>TCustomBitmap</var> used to get the default bitmap handle needed to
represent the image. The device description information in <var>ADesc</var>
is used to determine the bit depth for the image data.
</p>
<p>
For <b>DDB</b> (Device-Dependent Bitmaps), the <var>CreateBitmap</var>
routine is called to get the handle used as the return value.
</p>
<p>
For <b>DIB</b> (Device-Independent Bitmaps), the <var>CreateDIBSection</var>
routine is called to get the handle. For platforms where CreateDIBSection is
not implemented, the CreateBitmap routine is used as the fallback.
</p>
<p>
CreateDefaultBitmapHandle is called from the <var>BitmapHandleNeeded</var>
method in the ancestor class.
</p>
</descr>
<seealso>
<link id="TRasterImage.CreateDefaultBitmapHandle"/>
</seealso>
</element>
<element name="TCustomBitmap.CreateDefaultBitmapHandle.Result">
<short>Default handle for the bitmap.</short>
</element>
<element name="TCustomBitmap.CreateDefaultBitmapHandle.ADesc">
<short>Device description information for the bitmap.</short>
</element>
<element name="TCustomBitmap.FreeMaskHandle">
<short>
<var>FreeMaskHandle</var> - method to release Mask handle.
</short>
<descr>
<p>
Frees the handle allocated for the image Mask in the <var>MaskHandle</var>
property. <var>FreeMaskHandle</var> sets the value in MaskHandle to <b>0</b>
(<b>zero</b>) to indicate that the handle is no longer need or is invalid. No
actions are performed in the method when MaskHandle is already set to
<b>0</b>.
</p>
<p>
FreeMaskHandle calls the <var>DeleteObject</var> routine to remove the handle
in the widgetset class.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomBitmap.GetBitmapHandle">
<short>Gets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TCustomBitmap.Handle"/>
<link id="TRasterImage.GetBitmapHandle"/>
</seealso>
</element>
<element name="TCustomBitmap.GetBitmapHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomBitmap.GetMaskHandle">
<short>Gets the value for the MaskHandle property.</short>
<descr/>
<seealso>
<link id="TRasterImage.MaskHandle"/>
<link id="TRasterImage.GetMaskHandle"/>
</seealso>
</element>
<element name="TCustomBitmap.GetMaskHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomBitmap.GetPalette">
<short>Gets the value for the Palette property.</short>
<descr/>
<seealso>
<link id="TGraphic.GetPalette"/>
<link id="TGraphic.Palette"/>
</seealso>
</element>
<element name="TCustomBitmap.GetPalette.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomBitmap.GetPixelFormat">
<short>Gets the value for the PixelFormat property.</short>
<descr/>
<seealso>
<link id="TRasterImage.PixelFormat"/>
<link id="TRasterImage.GetPixelFormat"/>
</seealso>
</element>
<element name="TCustomBitmap.GetPixelFormat.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomBitmap.GetRawImagePtr">
<short>Gets a pointer with the raw image data.</short>
<descr>
<p>
Calls RawImageNeeded to ensure that the image descriptor, save stream, and
handle are valid for the shared Bitmap image. Calls the CreateData method in
the raw image pointer (when needed) prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TRasterImage.GetRawImagePtr"/>
</seealso>
</element>
<element name="TCustomBitmap.GetRawImagePtr.Result">
<short>Pointer to the TRawImage instance for the shared bitmap image.</short>
</element>
<element name="TCustomBitmap.GetRawImageDescriptionPtr">
<short>Gets a pointer to the image descriptor for the shared Bitmap image.
</short>
<descr>
<p>Calls <var>RawimageNeeded</var> to ensure that the image descriptor is
valid.
</p>
</descr>
<seealso>
<link id="TRasterImage.GetRawImageDescriptionPtr"/>
</seealso>
</element>
<element name="TCustomBitmap.GetRawImageDescriptionPtr.Result">
<short>
Pointer to the TRawImageDescription instance for the shared bitmap image.
</short>
</element>
<element name="TCustomBitmap.GetSharedImageClass">
<short>
Gets the class reference used to create new shared image instances in the
class.
</short>
<descr>
<p>
<var>GetSharedImageClass</var> is an overridden method in
<var>TCustomBitmap</var>. The return value is a
<var>TSharedRasterImageClass</var> class reference used to create a shared
image in the class instance. The return value is actually
<var>TSharedCustomBitmap</var> in the method implementation.
</p>
<p>
GetSharedImageClass is called from the Assign method when a reference to an
existing image is stored in the class instance. It is also used in
CanShareImage to determine is the request image type is the one used in the
current class instance.
</p>
</descr>
<seealso>
<link id="TRasterImage.GetSharedImageClass"/>
</seealso>
</element>
<element name="TCustomBitmap.GetSharedImageClass.Result">
<short>TSharedCustomBitmap class type for the shared image.</short>
</element>
<element name="TCustomBitmap.HandleNeeded">
<short>Ensures that the handle for the bitmap has been assigned.</short>
<descr>
<p>Calls <var>BitmapHandleNeeded</var> to create handles for both the image
and its mask (when needed).
</p>
</descr>
<seealso>
<link id="TRasterImage.BitmapHandleNeeded"/>
<link id="TRasterImage.HandleNeeded"/>
</seealso>
</element>
<element name="TCustomBitmap.InternalReleaseBitmapHandle">
<short/>
<descr/>
<seealso>
<link id="TSharedRasterImage.ReleaseHandle"/>
</seealso>
</element>
<element name="TCustomBitmap.InternalReleaseBitmapHandle.Result">
<short/>
</element>
<element name="TCustomBitmap.InternalReleaseMaskHandle">
<short/>
<descr/>
<seealso></seealso>
</element>
<element name="TCustomBitmap.InternalReleaseMaskHandle.Result">
<short/>
</element>
<element link="#lcl.graphics.TRasterImage.InternalReleasePalette" name="TCustomBitmap.InternalReleasePalette">
<short/>
<descr/>
<seealso>
<link id="TSharedCustomBitmap.ReleasePalette"/>
</seealso>
</element>
<element name="TCustomBitmap.InternalReleasePalette.Result">
<short/>
</element>
<element name="TCustomBitmap.RawImageNeeded">
<short>Ensures that the RawImage data is allocated prior to use.</short>
<descr>
<p>
Ensures that the <var>RawImage</var> property is allocated prior to accessing
values in the raw image data.
</p>
<p>
<var>ADescOnly</var> indicates whether the image descriptor or the the
complete raw image data is required. When ADescOnly is <b>True</b>, only the
<var>TRawImageDescription</var> in the raw image is needed. When set to
<var>False</var>, all values in the <var>TRawImage</var> instance are
required.
</p>
<p>
RawImageNeeded is called from methods access the raw image data, and occurs
before the value in RawImage is accessed. For example:
</p>
<ul>
<li>SetSize</li>
<li>UpdatePixelFormat</li>
<li>GetMonochrome</li>
<li>UnshareImage</li>
<li>GetRawImagePtr</li>
<li>GetRawImageDescriptionPtr</li>
</ul>
</descr>
<seealso/>
</element>
<element name="TCustomBitmap.RawImageNeeded.ADescOnly">
<short>
<b>True</b> when only the image descriptor in the raw image data is needed.
</short>
</element>
<element name="TCustomBitmap.SetHandle">
<short>
Re-implements the method from the ancestor class.
</short>
<descr>
<p>
<var>SetHandle</var> is an overridden method in <var>TCustomBitmap</var>, and
re-implements the method from the <var>TRasterImage</var> ancestor class.
<var>AValue</var> contains the new handle instance assigned to the
<var>BitmapHandle</var> property.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Value parameter.
</version>
<seealso>
<link id="TRasterImage.BitmapHandle"/>
<link id="TRasterImage.SetHandle"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TCustomBitmap.SetHandle.Value">
<short>New value used as the handle for the bitmap.</short>
</element>
<element name="TCustomBitmap.SetPixelFormat">
<short>Sets the value for the PixelFormat property.</short>
<descr>
<p>
Implements the abstract virtual method defined in the <var>TRasterImage</var>
ancestor.
</p>
<p>
Frees the raw image data in the class instance. No actions are performed in
the method when the new property value is the same as the existing property
value.
</p>
</descr>
<seealso>
<link id="TRasterImage.PixelFormat"/>
<link id="TRasterImage.SetPixelFormat"/>
</seealso>
</element>
<element name="TCustomBitmap.SetPixelFormat.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomBitmap.UnshareImage">
<short>Frees the shared image in the bitmap, and creates a new one.</short>
<descr>
<p>
<var>UnshareImage</var> is an overridden method used to free the shared image
in the bitmap, and create a new one. UnshareImage implements the abstract
virtual method defined in the ancestor class.
</p>
<p>
UnshareImage calls <var>GetSharedImageClass</var> to get the class type used
for the shared image, and creates a new instance of the class. It is cast to
<var>TSharedCustomBitmap</var>, and its <var>Reference</var> method is called
to increment the reference count for the shared image.
</p>
<p>
<var>CopyContent</var> indicates whether the existing image data is copied
into the new shared image instance. When set to <b>True</b>, the content in
the existing shared image is copied and stored in the new shared image
instance. When set to <var>False</var>, only the image descriptor in the
shared image is copied. This gets the metadata for the image.
</p>
<p>
UnshareImage calls <var>FreeCanvasContext</var> to free the device context
for the Canvas used in the image.
</p>
</descr>
<seealso>
<link id="TRasterImage.UnshareImage"/>
</seealso>
</element>
<element name="TCustomBitmap.UnshareImage.CopyContent">
<short><b>True</b> copies the existing content in the shared image.</short>
</element>
<element name="TCustomBitmap.UpdateHandles">
<short>
Sets the handles for the image and mask in the shared Bitmap to the specified
values.
</short>
<descr>
<p>
<var>UpdateHandles</var> is an overridden <var>Boolean</var> function which
implements the abstract virtual method defined in <var>TRasterImage</var>.
UpdateHandles is used to set the handles for the shared bitmap image and its
mask to the values specified in <var>ABitmap</var> and <var>AMask</var>.
</p>
<p>
The return value is <b>True</b> when the values in ABitmap and AMask are
successfully applied in the class instance. The return value is <b>False</b>
when ABitmap and Mask have the same values as the existing handles in the
class instance, and the action is not needed.
</p>
<p>
The <var>FreeHandle</var> method in the internal shared image is called
before applying the value in ABitmap.
</p>
<p>
<var>FreeMaskHandle</var> is called to free the value in
<var>MaskHandle</var> before applying the value in AMask.
</p>
<p>
UpdateHandles is used in the implementation of the
<var>MaskHandleNeeded</var> and <var>SetHandles</var> methods.
</p>
</descr>
<seealso>
<link id="TRasterImage.UpdateHandles"/>
</seealso>
</element>
<element name="TCustomBitmap.UpdateHandles.Result">
<short><b>True</b> when the handle(s) are successfully applied.</short>
</element>
<element name="TCustomBitmap.UpdateHandles.ABitmap">
<short>Handle assigned for the bitmap and shared image.</short>
</element>
<element name="TCustomBitmap.UpdateHandles.AMask">
<short>Handle assigned to the mask in the image.</short>
</element>
<element name="TCustomBitmap.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 constructor on entry. Create sets the default value for
the
<var>PixelFormat</var> property to
<var>pfDevice</var>.
</p>
</descr>
<seealso>
<link id="TRasterImage.PixelFormat"/>
<link id="TPixelFormat"/>
</seealso>
</element>
<element name="TCustomBitmap.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy calls <var>FreeMaskHandle</var> to free the handle in
<var>MaskHandle</var> (when assigned). Destroy calls the inherited destructor
prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TCustomBitmap.FreeMaskHandle"/>
<link id="TRasterImage.MaskHandle"/>
<link id="TRasterImage.Destroy"/>
</seealso>
</element>
<element name="TCustomBitmap.Assign">
<short>
Copies values from the specified persistent object into the class instance.
</short>
<descr>
<p>
<var>Assign</var> is an overridden method in <var>TCustomBitmap</var> used to
copy property values from the persistent object in <var>Source</var> into the
current class instance. Assign calls the inherited method on entry using
Source as an argument.
</p>
<p>
When Source is a TCustomBitmap descendant, values in its
<var>PixelFormat</var> and <var>PixelFormatNeedsUpdate</var> members are
copied into the members in the class instance.
</p>
</descr>
</element>
<element name="TCustomBitmap.Assign.Source">
<short>Persistent object with values copied in the method.</short>
</element>
<element name="TCustomBitmap.Clear">
<short>Clears the content for the bitmap image.</short>
<descr>
<p>
<var>Clear</var> is an overridden method in <var>TCustomBitmap</var>. It
extends the method defined in <var>TRasterImage</var>. It sets the
<var>PixelFormat</var> property to its default value (<var>pfDevice</var>),
and calls the inherited method to free the internal save stream for the
shared image.
</p>
</descr>
<seealso>
<link id="TCustomBitmap.Changed"/>
<link id="TRasterImage.PixelFormat"/>
<link id="TRasterImage.Clear"/>
</seealso>
</element>
<element name="TCustomBitmap.FreeImage">
<short>Releases the resources for the image when it is discarded.</short>
<descr>
<p>
<var>FreeImage</var> is an overridden method used to free the bitmap image.
FreeImage calls the inherited method on entry to invalidate the handle used
for the shared image. This also causes the device context for the
<var>Canvas</var> to be freed and the shared image is release and freed.
</p>
<p>
FreeImage is called when a new value is assigned to the
<var>PixelFormat</var> property.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomBitmap.LazarusResourceTypeValid">
<short>Determines if the specified resource type is valid for the image
format.
</short>
<descr>
<p>
<var>LazarusResourceTypeValid</var> is a <var>Boolean</var> function used to
determine if the value in <var>ResourceType</var> is a valid resource type
for the image format.
</p>
<p>
LazarusResourceTypeValid is an overridden method in <var>TCustomBitmap</var>,
and re-implements the method defined in the ancestor class. The return value
is <b>True</b> when ResourceType contains one of the values:
</p>
<dl>
<dt>'BMP'</dt>
<dd>Bitmap resource type.</dd>
<dt>'BITMAP'</dt>
<dd>Bitmap resource type.</dd>
<dt>'XPM'</dt>
<dd>Pixmap resource type.</dd>
</dl>
<p>
Case is not significant for the value in ResourceType; it is converted to
uppercase prior to checking its value.
</p>
<p>
The return value is <b>False</b> if ResourceType contains any other value.
</p>
<p>
LazarusResourceTypeValid is used in the implementation of the
<var>LoadFromLazarusResource</var> method.
</p>
</descr>
<seealso>
<link id="TGraphic.LoadFromLazarusResource"/>
<link id="TPicture.LoadFromLazarusResource"/>
</seealso>
</element>
<element name="TCustomBitmap.LazarusResourceTypeValid.Result">
<short>
Returns <b>True</b> if the resource type is valid for the image format.
</short>
</element>
<element name="TCustomBitmap.LazarusResourceTypeValid.ResourceType">
<short>The resource type examined in the method.</short>
</element>
<element name="TCustomBitmap.BitmapHandleAllocated">
<short>
Returns <b>True</b> if a handle has been allocated for the Bitmap.
</short>
<descr>
<p>
<var>BitmapHandleAllocated</var> is an overridden <var>Boolean</var> function
used to determine if a handle has been allocated for the bitmap.
BitmapHandleAllocated implements the abstract virtual method defined in the
ancestor class.
</p>
<p>
The return value is <b>True</b> when the handle in the internal shared image
has a <b>non-zero</b> value.
</p>
<p>
BitmapHandleAllocated is used in the implementation of the
<var>MaskHandleNeeded</var> method.
</p>
</descr>
<seealso>
<link id="TRasterImage.BitmapHandleAllocated"/>
</seealso>
</element>
<element name="TCustomBitmap.BitmapHandleAllocated.Result">
<short/>
</element>
<element name="TCustomBitmap.MaskHandleAllocated">
<short>Determines if the mask handle has been allocated for the image.</short>
<descr>
<p>
<var>MaskHandleNeeded</var> is an overridden <var>Boolean</var> function in
<var>TCustomBitmap</var>, and is used to determine if <var>MaskHandle</var>
has been allocated for the image mask. It implements the abstract virtual
method defined in the ancestor class.
</p>
<p>
The return value is <b>True</b> when the <var>MaskHandle</var> property
contains a <b>non-zero</b> value.
</p>
<p>
MaskHandleAllocated is used in the implementation of methods like:
</p>
<ul>
<li>BitmapHandleNeeded</li>
<li>SetTransparentColor</li>
<li>SetBitmapHandle</li>
<li>CreateMask</li>
<li>Assign</li>
</ul>
</descr>
<seealso>
<link id="TRasterImage.MaskHandleAllocated"/>
<link id="TRasterImage.MaskHandle"/>
<link id="TRasterImage.Masked"/>
</seealso>
</element>
<element name="TCustomBitmap.MaskHandleAllocated.Result">
<short>
Returns <b>True</b> if a mask handle has been allocated for the image.
</short>
</element>
<element name="TCustomBitmap.PaletteAllocated">
<short>
Indicates whether a handle has been allocated for a palette in the image.
</short>
<descr>
<p>
<var>PaletteAllocated</var> is an overridden <var>Boolean</var> function in
<var>TCustomBitmap</var>, and indicates whether a handle has been allocated
for a palette in the image. PaletteAllocated implements the abstract virtual
method defined in the ancestor class.
</p>
<p>
The return value is <b>True</b> when palette handle in the internal shared
image contains a <b>non-zero</b> value.
</p>
</descr>
<seealso>
<link id="TRasterImage.PaletteAllocated"/>
</seealso>
</element>
<element name="TCustomBitmap.PaletteAllocated.Result">
<short>
Returns <b>True</b> if a palette handle has been allocated for the image.
</short>
</element>
<element name="TCustomBitmap.ReleaseHandle">
<short>Releases the bitmap handle for the shared image.</short>
<descr>
<p>
Calls <var>HandleNeeded</var> to ensure that the handles for the bitmap and
mask reflect the values for the raw image data. Calls the
<var>ReleaseHandle</var> method in the shared image to free the handle for
the bitmap.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomBitmap.ReleaseHandle.Result">
<short>Returns <b>True</b> when the handle is successfully released.</short>
</element>
<element name="TCustomBitmap.SetHandles">
<short>
Sets handles for the bitmap and the mask to the specified values.
</short>
<descr>
<p>
<var>SetHandles</var> is a procedure used to set the handles for the bitmap
and the mask to the values specified in <var>ABitmap</var> and
<var>AMask</var>. SetHandles ensures that the <var>Canvas</var> context,
shared image, and save stream are unshared and freed. SetHandles calls
<var>UpdateHandles</var> to store the specified handles for the shared image
and its mask.
</p>
<p>
SetHandles is called from methods that load image data using
<var>TLazIntfImage</var> from the LCL interface. It is also called when
values are assigned to the <var>BitmapHandle</var> or <var>MaskHandle</var>
properties.
</p>
</descr>
<seealso>
<link id="TRasterImage.SetHandles"/>
</seealso>
</element>
<element name="TCustomBitmap.SetHandles.ABitmap">
<short>New Bitmap handle for the image.</short>
</element>
<element name="TCustomBitmap.SetHandles.AMask">
<short>New Mask handle for the image.</short>
</element>
<element name="TCustomBitmap.SetSize">
<short>
Sets the Height and Width for the image to the specified values.
</short>
<descr>
<p>
<var>SetSize</var> is an overridden method in <var>TCustomBitmap</var> used
to change the <var>Height</var> and <var>Width</var> for the bitmap image to
the specified values. SetSize implements the abstract virtual method defined
in the ancestor class.
</p>
<p>
Calls RawImageNeeded to ensure that the image header in RawImage is valid for
the image.
</p>
<p>
The values in AWidth and AHeight contain the new dimensions for the image.
Both values must contain a positive value or 0. The default value for an
argument is set to 0 when a negative value is found. Their values are
assigned to the image desriptor in the shared imaged to change the size for
the image content. No additional actions are performed in the method if
either value is not successfully applied to the raw image descriptor.
</p>
<p>
Calls UnshareImage and RawImageNeeded to re-create the raw image data for the
shared image.
</p>
<p>
Copies existing pixel data for the image into the resized image. When the new
image size is smaller, only the portion of the image that fits within the new
dimensions is copied. Uses the CopyPixels method in the TLazIntfImage
instance to copy the image content.
</p>
<p>
Ensures that the Canvas context, BitMapHandle, and MaskHandle are updated for
the image. Calls the Changed method to update the shared image data and
signal the OnChange event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TRasterImage.SetSize"/>
</seealso>
</element>
<element name="TCustomBitmap.SetSize.AWidth">
<short>New width for the image.</short>
</element>
<element name="TCustomBitmap.SetSize.AHeight">
<short>New height for the image.</short>
</element>
<element name="TCustomBitmap.Handle">
<short>The operating system Handle associated with this bitmap.</short>
<descr>
<p>In <var>TCustomBitmap</var>, the handle is provided by the internal shared
image class (<var>TSharedCustomBitmap</var>) and stored in the
<var>BitmapHandle</var> property.
</p>
</descr>
<seealso>
<link id="TRasterImage.BitmapHandle"/>
<link id="TSharedCustomBitmap"/>
</seealso>
</element>
<element name="TCustomBitmap.HandleType">
<short>Handle type for the Bitmap.</short>
<descr>
<p>
<var>HandleType</var> is a
<var>TBitmapHandleType</var> property which indicates the handle type used
for the bitmap image data. HandleType identifies whether the bitmap handle is
classified as a Device-Dependent Bitmap (DDB) or a Device-Independent Bitmap
(DIB).
</p>
<p>See <link id="TBitmapHandleType">TBitmapHandleType</link> for more
information about the handle types and their specifics.
</p>
<p>The value for the property is read from the internal shared image in the
class instance. Setting a new value for the property has no effect in the
current implementation; the value is always read from the raw image data.
</p>
</descr>
<seealso>
<link id="TBitmapHandleType"/>
<link id="TSharedCustomBitmap.HandleType"/>
</seealso>
</element>
<element name="TCustomBitmap.Monochrome">
<short><b>True</b> when the image contains monochrome image data.</short>
<descr>
<p>
<var>Monochrome</var> is a <var>Boolean</var> property which indicates
whether the raw image data is represented using pixels of a single color.
</p>
<p>
The property value is <b>True</b> when the descriptor for the shared raw
image data has a color depth of <b>1</b>. The <var>PixelFormat</var> property
will also contain the value <var>pf1bit</var>.
</p>
<p>
Setting a new value in Monochrome causes the value in PixelFormat to be
changed. When set to <b>True</b>, PixelFormat is set to <var>pf1bit</var>.
When set to <b>False</b>, the value <var>pfDevice</var> is assigned to the
PixelFormat property.
</p>
<p>
Changing the value in Monochrome (and PixelFormat) causes the image data to
be discarded, and the Handle for the internal shared image is freed.
</p>
<p>
No actions are performed when Monochrome is set to the existing value for the
property.
</p>
</descr>
<seealso>
<link id="TRasterImage.PixelFormat"/>
<link id="TCustomBitmap.Handle"/>
</seealso>
</element>
<element name="TFPImageBitmap">
<short>
Implements a Bitmap using the FPImage reader and writer from the FCL.
</short>
<descr>
<p>
Use this class to easily create a <var>TCustomBitmap</var> descendant using
an FPImage reader and writer.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.GetMimeType">
<short>
Gets the MIME type used for the image data in the image type.
</short>
<descr>
<p>
GetMimeType is an overridden String function used to get the MIME type for
the image data in the class instance.
</p>
<p>
Calls GetFileExtensions to get the delimited list of file extensions
supported for the image type. The list is an empty string in TFPImageBitmap.
Descendent classes provide value(s) which reflect the image formats supported
in their implementations.
</p>
<p>
GetMimeType extracts the first file extension in the list (separated by a
SemiColon character), and uses the file extension in the return value. For
example:
</p>
<ul>
<li>'image/bmp'</li>
<li>'image/gif'</li>
<li>'image/jpg'</li>
<li>'image/png'</li>
<li>'image/tiff'</li>
<li>'image/xpm'</li>
</ul>
<remark>
GetMimeType is not implemented in the current LCL version.
</remark>
</descr>
<seealso>
<link id="TFPImageBitmap.GetFileExtensions"/>
<link id="TRasterImage.GetMimeType"/>
<link id="TGraphic.GetMimeType"/>
</seealso>
</element>
<element name="TFPImageBitmap.GetMimeType.Result">
<short>MIME type used for the image data in the class.</short>
</element>
<element name="TFPImageBitmap.GetReaderClass">
<short>
Gets the class reference used to create new instances of the FCL-compatible
image reader.
</short>
<descr>
<p>
Defined as an abstract virtual method in TFPImageBitmap. Must be implemented
in a descendent class which provides support for a specific image format.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.GetReaderClass.Result">
<short>
TFPCustomImageReaderClass descendent used for the image class type.
</short>
</element>
<element name="TFPImageBitmap.GetWriterClass">
<short>
Gets the class reference used to create new instances of the FCL-compatible
image writer.
</short>
<descr>
<p>
Defined as an abstract virtual method in TFPImageBitmap. Must be implemented
in a descendent class which provides support for a specific image format.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.GetWriterClass.Result">
<short>
TFPCustomImageWriterClass descendent used for the image class type.
</short>
</element>
<element name="TFPImageBitmap.InitializeReader">
<short>Configures the reader class instance for the image type.</short>
<descr>
<p>
<var>InitializeReader</var> is a virtual method used to configure the
FCL-compatible image reader class instance in <var>AReader</var>.
InitializeReader assigns the <var>Progress</var> method to the
<var>OnProgress</var> event handler in AReader.
</p>
<p>
<var>AImage</var> is not used in the current implementation.
</p>
<p>
InitializeReader is called from the <var>ReadStream</var> method prior to any
operation that reads the image descriptor, header, or data.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.InitializeReader.AImage">
<short>Not used in the current implementation.</short>
</element>
<element name="TFPImageBitmap.InitializeReader.AReader">
<short>FCL image reader instance updated in the method.</short>
</element>
<element name="TFPImageBitmap.InitializeWriter">
<short>Configures the writer class instance for the image type.</short>
<descr>
<p>
<var>InitializeWriter</var> is a virtual method used to configure the
FCL-compatible image writer class instance in <var>AWriter</var>.
InitializeWriter assigns the <var>Progress</var> method to the
<var>OnProgress</var> event handler in <var>AWriter</var>. When AWriter
implements the <var>ILazImageWriter</var> interface, its
<var>Initialize</var> method is called to store the data for the LCL
interface image in <var>AImage</var>.
</p>
<p>
InitializeWriter is called from the <var>WriteStream</var> method prior to
any operation that writes the raw image data to a stream.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.InitializeWriter.AImage">
<short>
LCL interface image with the image data for the write class instance.
</short>
</element>
<element name="TFPImageBitmap.InitializeWriter.AWriter">
<short>FCL image write instance updated in the method.</short>
</element>
<element name="TFPImageBitmap.FinalizeReader">
<short>
Finalizes the FCL image reader when a read operation has been completed.
</short>
<descr>
<p>
<var>FinalizeReader</var> has an empty implementation in
<var>TFPImageBitmap</var>. In a descendent class, it is used to update
properties in the class instance to reflect values encountered by the image
reader.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.FinalizeReader.AReader">
<short>FCL reader class instance examined in the method.</short>
</element>
<element name="TFPImageBitmap.FinalizeWriter">
<short>
<var>FinalizeWriter</var> - ends the Image writing process.
</short>
<descr>
<p>
<var>FinalizeWriter</var> is a virtual method used to finalize the
FCL-compatible image writer class instance in <var>AWriter</var>. When
AWriter implements the <var>ILazImageWriter</var> interface, its
<var>Finalize</var> method is called to release image data in the LCL
interface image.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.FinalizeWriter.AWriter">
<short>FCL image writer class examined in the method.</short>
</element>
<element name="TFPImageBitmap.ReadStream">
<short>Read the image data from the specified Stream.</short>
<descr>
<p>
<var>ReadStream</var> is an overridden method used to read the image data
from the stream specified in <var>AStream</var>.
</p>
<p>
ReadStream creates an instance of the <var>TFPCustomImageReader</var> class
used to read the image type from a stream. It calls
<var>InitializeReader</var> to configure the reader class instance. If the
image reader class supports the <var>ILazImageReader</var> interface, it is
configure to update its description from the image data. Otherwise, the
<var>GetDescriptionFromDevice</var> routine is called to store the defaults
for the LCL interface image.
</p>
<p>
ReadStream calls the <var>ImageRead</var> method in the
<var>TFPCustomImageReader</var> instance to load the image data from AStream.
<var>FinalizeReader</var> is called when the operation is completed. The
shared image for the image type is freed, and the raw image data from the LCL
interface image is loaded into the shared image. The mask information in raw
image data is applied to the shared image. The image is flagged to update the
value for the <var>PixelFormat</var> property in the calling routine.
</p>
</descr>
<seealso>
<link id="TRasterImage.ReadStream"/>
</seealso>
</element>
<element name="TFPImageBitmap.ReadStream.AStream">
<short>TMemoryStream instance with the image data read in the method.</short>
</element>
<element name="TFPImageBitmap.ReadStream.ASize">
<short>Not used in the current implementation.</short>
</element>
<element name="TFPImageBitmap.WriteStream">
<short>Write the data to a stream.</short>
<descr>
<p>
<var>WriteStream</var> is an overridden procedure in
<var>TFPImageBitmap</var> used to write the image content to the stream
specified in <var>AStream</var>. WriteStream implements the abstract virtual
method defined in <var>TRasterImage</var>.
</p>
<p>
WriteStream creates temporary <var>TLazIntfImage</var> and
<var>TFPCustomImageWriter</var> instances that are used to write the data for
the internal <var>TRawImage</var> instance used in the class. Raw image data
is stored in the TLazIntfImage instance, and its <var>SaveToStream</var>
method is called to write the values to AStream.
</p>
<p>
No actions are performed in the method when the data size for the raw image
is <b>0</b>.
</p>
</descr>
<seealso>
<link id="TRasterImage.WriteStream"/>
</seealso>
</element>
<element name="TFPImageBitmap.WriteStream.Stream">
<short>Stream where the image data is stored.</short>
</element>
<element name="TFPImageBitmap.GetFileExtensions">
<short>
Returns a list of the file extensions available for the image type.
</short>
<descr>
<p>Always returns an empty string ('') in TFPImageBitmap.
</p>
</descr>
<seealso>
<link id="TGraphic.GetFileExtensions"/>
</seealso>
</element>
<element name="TFPImageBitmap.GetFileExtensions.Result">
<short>List of file extensions supported for the image type.</short>
</element>
<element name="TFPImageBitmap.IsStreamFormatSupported">
<short>
Determines if the specified stream contains image data supported for the
image type.
</short>
<descr>
<p>
<var>IsStreamFormatSupported</var> is an overridden <var>TFPImageBitmap</var>
class function used to determine if the stream specified in
<var>Stream</var> contains image data supported in the image type.
</p>
<p>
IsStreamFormatSupported creates a temporary instance of the
<var>TFPCustomImageReader</var> used for the image type, and calls its
<var>CheckContents</var> method to examine the values in Stream. The return
value is <b>True</b> when the FCL image reader recognizes the image format.
</p>
<p>
IsStreamFormatSupported saves the position in Stream on entry, and restores
the position prior to exiting from the method.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.IsStreamFormatSupported.Result">
<short>
<b>True</b> when the stream contains a image data in a supported format.
</short>
</element>
<element name="TFPImageBitmap.IsFileExtensionSupported">
<short>
Indicates whether the given file extension is supported for the image type.
</short>
<descr>
<p>
<var>IsFileExtensionSupported</var> is a <var>Boolean</var> class function
used to determine if the file extension in <var>FileExtension</var> is valid
for the image type. If FileExtension includes a period character ('.'), it is
removed before use.
</p>
<p>
The return value is <b>True</b> when FileExtension is included in the value
returned by the <var>GetFileExtensions</var> method. No actions are performed
in the method when FileExtension is an empty string (<b>''</b>).
</p>
<p>
IsFileExtensionSupported is used in the implementation of
<var>LazarusResourceTypeValid</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TFPImageBitmap.IsFileExtensionSupported.Result">
<short>
<b>True</b> when the file extension is valid for the image type.
</short>
</element>
<element name="TFPImageBitmap.IsFileExtensionSupported.FileExtension">
<short>File extension checked for the image type.</short>
</element>
<element name="TFPImageBitmap.LazarusResourceTypeValid">
<short>Determines if the specified resource type is valid for the image
format.
</short>
<descr>
<p>
<var>LazarusResourceTypeValid</var> is a <var>Boolean</var> function used to
determine if the value in <var>ResourceType</var> is a valid resource type
for the image format.
</p>
<p>
LazarusResourceTypeValid is an overridden method, and re-implements the
method defined in the ancestor class. The return value is <b>True</b> when
ResourceType contains is one the file extensions returned from
IsFileExtensionSupported. The return value is <b>False</b> if ResourceType
contains any other value.
</p>
<p>
LazarusResourceTypeValid is used in the implementation of the
<var>LoadFromLazarusResource</var> method.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap.IsFileExtensionSupported"/>
<link id="TCustomBitmap.LazarusResourceTypeValid"/>
<link id="TGraphic.LazarusResourceTypeValid"/>
<link id="TGraphic.LoadFromLazarusResource"/>
</seealso>
</element>
<element name="TFPImageBitmap.LazarusResourceTypeValid.Result">
<short>
<b>True</b> when the resource type name is one file extensions for the image
format.
</short>
</element>
<element name="TFPImageBitmap.LazarusResourceTypeValid.ResourceType">
<short>Resource type examined in the method.</short>
</element>
<element name="TFPImageBitmapClass">
<short>Class reference used to create new instances of TFPImageBitmap.</short>
<descr/>
<seealso>
<link id="TFPImageBitmap"/>
</seealso>
</element>
<element name="TSharedBitmap">
<short>Defines a reference-counted shared Bitmap graphic.</short>
<descr>
<p>
TSharedBitmap is a TSharedCustomBitmap descendant.
</p>
</descr>
<seealso>
<link id="TSharedCustomBitmap"/>
</seealso>
</element>
<element name="TBitmap">
<short>Implements a FCL-compatible reader/writer for a Bitmap image.</short>
<descr>
<p>
<var>TBitmap</var> is a <var>TFPImageBitmap</var> descendant which represents
the data for a Bitmap image. The image can be loaded from a file, stream or
resource which uses <b>.bmp (windows bitmap)</b> format.
</p>
<p>
TBitmap provides overridden methods which get the image reader
(<var>TLazReaderBMP</var>) and writer (<var>TLazWriteBMP</var>) class
references, as well as the shared image storage class
(<var>TSharedBitmap</var>).
</p>
<p>
An overridden LoadFromStream method is provided which handles reading the BMP
header using the correct endian-ness for the platform. The loading routine
automatically recognizes the format, so it is also used to load the images
from Delphi form streams (e.g. .dfm files) or FreePascal/Lazarus form streams
(.lfm).
</p>
<p>
When the handle for the image is created, it is up to the interface (GTK, QT,
Win32,etc.) to convert it automatically to the best internal format for the
widgetset. That is why the <var>Handle</var> is interface dependent.
</p>
<p>
To access the raw image data, see <var>TLazIntfImage</var>.
</p>
<remark>
Please note that the current implementation is dramatically different than
previous LCL implementations. Most of the low-level functionality for TBitmap
has been refactored into ancestor or descendent classes.
</remark>
</descr>
<seealso>
<link id="TFPImageBitmap"/>
<link id="TCustomBitmap"/>
<link id="TRasterImage"/>
<link id="TGraphic"/>
<link id="TSharedBitmap"/>
<link id="#lcl.intfgraphics.TLazIntfImage">TLazIntfImage</link>
<link id="#lcl.intfgraphics.TLazReaderBMP">TLazReaderBMP</link>
<link id="#lcl.intfgraphics.TLazWriterBMP">TLazWriterBMP</link>
</seealso>
</element>
<element name="TBitmap.InitializeReader">
<short>
Initializes the image reader to use the transparency settings in the class
instance.
</short>
<descr>
<p>
<var>InitializeReader</var> is an overridden procedure used to apply
transparency settings to the image reader in <var>AReader</var>.
InitializeReader calls the inherited method on entry to signal the
<var>OnProgress</var> event handler (when assigned).
</p>
<p>
InitializeReader ensures that AReader is derived from
<var>TLazReaderBMP</var>. No additional actions are performed in the method
when AReader is not a TLazReaderBMP class instance.
</p>
<p>
InitializeReader applies values from the <var>TransparentMode</var> and
<var>TransparentColor</var> properties to the mask settings in AReader.
</p>
<p>
<b>TransparentMode</b>
</p>
<p>
Determines whether the transparency color is auto-detected in the image data,
or a fixed transparency color is used.
</p>
<dl>
<dt>tmAuto</dt>
<dd>The bottom left pixel in the image data contains the transparency
color.</dd>
<dt>tmFixed</dt>
<dd>Uses a predefined color in TransparentColor as the transparency
color.</dd>
</dl>
<p>
<b>TransparentColor</b>
</p>
<p>
Determines the color used to represent transparent areas in the image data.
</p>
<dl>
<dt>clDefault</dt>
<dd>
Uses the bottom left pixel as the transparency color. This is a Lazarus
extension.
</dd>
<dt>clNone</dt>
<dd>Ignores transparency in the image data. This is a Lazarus extension.</dd>
</dl>
<p>
All other color constants represent the color for transparent pixels in the
image.
</p>
<p>
Values in TransparentMode and TransparentColor are assigned to the MaskMode
and MaskColor properties in AReader as required.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap.InitializeReader"/>
</seealso>
</element>
<element name="TBitmap.InitializeReader.AImage">
<short>Provides access to the raw data for the image.</short>
</element>
<element name="TBitmap.InitializeReader.AReader">
<short>Reader used to access raw data for the image.</short>
</element>
<element name="TBitmap.GetReaderClass">
<short>
Gets the class reference used to create the FCL-compatible reader for the
image.
</short>
<descr>
<p>
<var>GetReaderClass</var> is an overridden
<var>TFPCustomImageReaderClass</var> class function used to get the
FCL-compatible reader for the image type. The return value is a
<var>TLazReaderBMP</var> class reference in <var>TBitmap</var>.
</p>
<p>
GetReaderClass is called from the <var>ReadStream</var> method when the
reader is created and initialized. It is used to load a
<var>TLazIntfImage</var> instance with the image content supplied in a
stream. It is also used in the <var>IsStreamFormatSupported</var> method to
determine if the stream contains an image format that can be read using the
reader class type.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap.GetReaderClass"/>
<link id="TFPImageBitmap.ReadStream"/>
<link id="TFPImageBitmap.IsStreamFormatSupported"/>
<link id="#lcl.intfgraphics.TLazReaderBMP">TLazReaderBMP</link>
<link id="#lcl.intfgraphics.TLazReaderDIB">TLazReaderDIB</link>
<link id="#lcl.intfgraphics.ILazImageReader">ILazImageReader</link>
</seealso>
</element>
<element name="TBitmap.GetReaderClass.Result">
<short>Class reference used to create instances of the reader class.</short>
</element>
<element name="TBitmap.GetWriterClass">
<short>
Gets the class reference used to create instances of the FCL-compatible image
writer.
</short>
<descr>
<p>The return value is a <var>TLazWriterBMP</var> class reference in TBitmap.
</p>
<p>
<var>GetWriterClass</var> is called from the
<var>WriteStream</var> method when the image writer is used to write a
<var>TLazIntfImage</var> instance to a stream.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap.GetWriterClass"/>
<link id="TFPImageBitmap.WriteStream"/>
</seealso>
</element>
<element name="TBitmap.GetWriterClass.Result">
<short>Class reference used to create instances of the writer class.</short>
</element>
<element name="TBitmap.GetSharedImageClass">
<short>
Gets the class reference used to create new instances of a shared image.
</short>
<descr>
<p>
<var>GetSharedImageClass</var> provides a class reference used to create new
instances of the shared image class used in <var>TBitmap</var>.
</p>
<p>
The return value is a <var>TSharedBitmap</var> class reference in TBitmap.
</p>
<p>
GetSharedImageClass is called from methods like <var>Create</var>,
<var>Assign</var>, and <var>CanShareImage</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TBitmap.GetSharedImageClass.Result">
<short>
Class reference used to create new instances of the shared image class.
</short>
</element>
<element name="TBitmap.GetFileExtensions">
<short>Gets the file extensions supported for the image type.</short>
<descr>
<p>
<var>GetFileExtensions</var> is an overridden <var>String</var> class
function used to get a delimited list of file extensions used for graphic
files supported in the class. The <b>'.'</b> character is omitted from file
extension(s), and extensions are separated by a <b>SemiColon</b> (<b>;</b>)
character.
</p>
<p>
In TBitmap, the method returns the value <b>'bmp'</b> for the Windows Bitmap
format supported in the class.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap.GetFileExtensions"/>
<link id="TGraphic.GetFileExtensions"/>
</seealso>
</element>
<element name="TBitmap.GetFileExtensions.Result">
<short>File extensions used for the image type.</short>
</element>
<element name="TBitmap.GetResourceType">
<short>Gets the resource type identifier for the image format.</short>
<descr>
<p>
<var>GetResourceType</var> is an overridden method used to get the resource
type identifier for the image format. GetResourceType returns the value in the
<var>RT_BITMAP</var> constant for the Windows Bitmap image format.
</p>
</descr>
<seealso/>
</element>
<element name="TBitmap.GetResourceType.Result">
<short>Returns the RT_BITMAP constant.</short>
</element>
<element name="TBitmap.LoadFromStream">
<short>
Loads image data for the bitmap from the specified stream.
</short>
<descr>
<p>
<var>LoadFromStream</var> is an overridden method used to read data for the
bitmap image from the <var>TStream</var> instance specified in
<var>AStream</var>. <var>ASize</var> contains the number of bytes to read in
the method.
</p>
<p>
The inherited method has been adapted for reading from a TResourceStream
instance which can contain data as RT_BITMAP or RT_RCDATA resource types having
slightly different binary structures.
</p>
<p>
LoadFromStream is called when the ReadData method is executed (in the
TRasterImage ancestor) or when a TBitmap instance calls LoadFromResourceName or
LoadFromResourceID.
</p>
</descr>
<version>
Modified in LCL version 3.0 to provide support for loading image data from a
resource stream containing either the RT_RCDATA or RT_BITMAP resource types.
</version>
<seealso>
<link id="TRasterImage.LoadFromStream"/>
<link id="TRasterImage.ReadData"/>
<link id="TGraphic.LoadFromResourceName"/>
<link id="TGraphic.LoadFromResourceID"/>
<link id="#lcl.lcltype.TBitmapFileHeader">TBitmapFileHeader</link>
<link id="#lcl.lcltype.TResourceType">TResourceType</link>
<link id="#lcl.lcltype.RT_BITMAP">RT_BITMAP</link>
<link id="#lcl.lcltype.RT_RCDATA">RT_RCDATA</link>
<link id="#rtl.classes.TResourceStream">TResourceStream</link>
</seealso>
</element>
<element name="TBitmap.LoadFromStream.AStream">
<short>Stream instance with the image data loaded in the method.</short>
</element>
<element name="TBitmap.LoadFromStream.ASize">
<short>Number of bytes to read from the stream.</short>
</element>
<element name="TSharedPixmap">
<short>Implements a reference-counted shared Pixmap image type.</short>
<descr/>
<seealso>
<link id="TSharedCustomBitmap"/>
<link id="TPixmap"/>
</seealso>
</element>
<element name="TPixmap">
<short>Implements support for the XPM (Pixmap) image format.</short>
<descr>
<p>
<var>TPixMap</var> is a <var>TFPImageBitmap</var> descendant, and is a
wrapper used to handle the <b>Pixmap</b> (<b>'XPM'</b>) image format.
</p>
<p>
Pixmap is an image file format used by the X Window System. It is intended
primarily for creating icons, and supports transparent pixels. Derived from
the earlier XBM syntax, it is a plain text file using the XPM2 format or a C
programming language syntax, which can be included in a source code file.
</p>
<p>
<var>TPixmap</var> ensures that specified resources (image, file, or stream)
are of the correct type and format.
</p>
</descr>
<seealso/>
</element>
<element name="TPixMap.GetReaderClass">
<short>
Gets the class reference for a reader used during component streaming.
</short>
<descr/>
<seealso/>
</element>
<element name="TPixMap.GetReaderClass.Result">
<short>Class reference for a reader used during component streaming.</short>
</element>
<element name="TPixMap.GetWriterClass">
<short>
Gets the class reference for a writer used during component streaming.
</short>
<descr/>
<seealso/>
</element>
<element name="TPixMap.GetWriterClass.Result">
<short>Class reference for a writer used during component streaming.</short>
</element>
<element name="TPixMap.GetSharedImageClass">
<short>
Gets the class reference used to create the shared image in the class
instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TPixMap.GetSharedImageClass.Result">
<short>
class reference used to create the shared image in the class instance.
</short>
</element>
<element name="TPixmap.LazarusResourceTypeValid">
<short>
Determines if the specified resource type is valid for the image format.
</short>
<descr/>
<seealso/>
</element>
<element name="TPixmap.LazarusResourceTypeValid.Result">
<short>Returns <b>True</b> if the resource type is 'XPM'</short>
</element>
<element name="TPixmap.LazarusResourceTypeValid.ResourceType">
<short>Resource type examined in the method.</short>
</element>
<element name="TPixmap.GetFileExtensions">
<short>Gets the file extensions supported for the image type.</short>
<descr>
<p>
<var>GetFileExtensions</var> is an overridden <var>String</var> class
function used to get a delimited list of file extensions used for graphic
files supported in the class. The <b>'.'</b> character is omitted from file
extension(s), and extensions are separated by a <b>SemiColon</b> (<b>;</b>)
character.
</p>
<p>
In TPixmap, the method returns the value <b>'xpm'</b> for the Pixmap format
supported in the class.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap.GetFileExtensions"/>
<link id="TGraphic.GetFileExtensions"/>
</seealso>
</element>
<element name="TPixmap.GetFileExtensions.Result">
<short>File extension(s) supported for the image format.</short>
</element>
<element name="TSharedPortableNetworkGraphic">
<short>
<var>TSharedPortableNetworkGraphic</var> - a reference counted PNG Image.
</short>
<descr>
<p>
<var>TSharedPortableNetworkGraphic</var> is a <var>TSharedCustomBitmap</var>
descendant which implements a reference counted PNG image.
TSharedPortableNetworkGraphic is the type returned by the
<var>GetSharedImageClass</var> method in <var>TPortableNetworkGraphic</var>.
</p>
</descr>
<seealso>
<link id="TSharedCustomBitmap"/>
<link id="TPortableNetworkGraphic.GetSharedImageClass"/>
</seealso>
</element>
<element name="TPortableNetworkGraphic">
<short>Implements support for the PNG image format.</short>
<descr>
<p>
<var>TPortableNetworkGraphic</var> is a <var>TFPImageBitmap</var> descendant
which implements support for the <b>PNG</b> (<b>Portable Network
Graphics</b>) image format. PNG is a raster graphic file format that supports
loss-less data compression. PNG was developed as an improved, non-patented
replacement for GIF (Graphics Interchange Format).
</p>
<p>
PNG supports palette-based images (using 24-bit RGB or 32-bit RGBA colors),
grayscale images (with or without alpha channel transparency), and full-color
non-palette-based RGB or RGBA images. A PNG file contains a single image in
an extensible chunk structure, and uses encoding to compress repetitive pixel
values in the image.
</p>
<p>
PNG image files use the file extension <b>PNG</b> or <b>png</b>, and uses the
MIME media type <b>'image/png'</b>.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap"/>
</seealso>
</element>
<element link="#lcl.graphics.TFPImageBitmap.GetReaderClass" name="TPortableNetworkGraphic.GetReaderClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TPortableNetworkGraphic.GetReaderClass.Result">
<short/>
</element>
<element name="TPortableNetworkGraphic.GetWriterClass" link="#lcl.graphics.TFPImageBitmap.GetReaderClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TPortableNetworkGraphic.GetWriterClass.Result">
<short/>
</element>
<element name="TPortableNetworkGraphic.InitializeWriter" link="#lcl.graphics.TFPImageBitmap.InitializeWriter"/>
<element name="TPortableNetworkGraphic.InitializeWriter.AImage"/>
<element name="TPortableNetworkGraphic.InitializeWriter.AWriter"/>
<element link="#lcl.graphics.TRasterImage.GetSharedImageClass" name="TPortableNetworkGraphic.GetSharedImageClass">
<descr/>
<seealso/>
</element>
<element name="TPortableNetworkGraphic.GetSharedImageClass.Result">
<short/>
</element>
<element name="TPortableNetworkGraphic.IsStreamFormatSupported">
<short>
Determines if the specified stream contains image data supported for the
image type.
</short>
<descr/>
<seealso/>
</element>
<element name="TPortableNetworkGraphic.IsStreamFormatSupported.Result">
<short/>
</element>
<element name="TPortableNetworkGraphic.IsStreamFormatSupported.Stream">
<short/>
</element>
<element link="#lcl.graphics.TGraphic.GetFileExtensions" name="TPortableNetworkGraphic.GetFileExtensions">
<short/>
<descr/>
<seealso/>
</element>
<element name="TPortableNetworkGraphic.GetFileExtensions.Result">
<short/>
</element>
<element name="TSharedPortableAnyMapGraphic">
<short>
<var>TSharedPortableAnyMapGraphic</var> - a reference counted shared PNM.
</short>
<descr/>
<seealso>
<link id="TSharedCustomBitmap"/>
</seealso>
</element>
<element name="TPortableAnyMapGraphic">
<short>
Implements an image which supports for the Portable Any Map (PNM) graphic
format.
</short>
<descr>
<p>
<var>TPortableAnyMapGraphic</var> is a <var>TFPImageBitmap</var> descendant
which implements support for the Portable Any Map (PNM) graphic format.
</p>
<p>
<b>PNM</b> is a member of the NetPBM family of image formats and includes
<b>PBM</b>, <b>PGM</b>, and <b>PPM</b> image formats. The group is referred
to collectively as the Portable Any Map format, and uses the <b>.PNM</b> file
extension.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap"/>
</seealso>
</element>
<element link="#lcl.graphics.TFPImageBitmap.GetReaderClass" name="TPortableAnyMapGraphic.GetReaderClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TPortableAnyMapGraphic.GetReaderClass.Result">
<short/>
</element>
<element link="#lcl.graphics.TFPImageBitmap.GetWriterClass" name="TPortableAnyMapGraphic.GetWriterClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TPortableAnyMapGraphic.GetWriterClass.Result">
<short/>
</element>
<element link="#lcl.graphics.TRasterImage.GetSharedImageClass" name="TPortableAnyMapGraphic.GetSharedImageClass">
<descr/>
<seealso/>
</element>
<element name="TPortableAnyMapGraphic.GetSharedImageClass.Result">
<short/>
</element>
<element name="TPortableAnyMapGraphic.IsStreamFormatSupported">
<short>
Determines if the specified stream contains image data supported for the
image type.
</short>
<descr/>
<seealso/>
</element>
<element name="TPortableAnyMapGraphic.IsStreamFormatSupported.Result">
<short/>
</element>
<element name="TPortableAnyMapGraphic.IsStreamFormatSupported.Stream">
<short/>
</element>
<element link="#lcl.graphics.TGraphic.GetFileExtensions" name="TPortableAnyMapGraphic.GetFileExtensions">
<short/>
<descr/>
<seealso/>
</element>
<element name="TPortableAnyMapGraphic.GetFileExtensions.Result">
<short/>
</element>
<element name="TIconImageClass">
<short>Class reference used to create new instances of TIconImage.</short>
<descr/>
<seealso>
<link id="TIconImage"/>
</seealso>
</element>
<element name="TSharedIcon">
<short>Implements a reference-counted shared Icon image type.</short>
<descr>
<p>
<var>TSharedIcon</var> is a <var>TSharedRasterImage</var> descendant which
implements a reference counted shared Icon. TSharedIcon provides access to
the list of images available in the Icon as <var>TIconImage</var> instances
using the <var>Images</var> property. Methods are provided to add, delete,
clear, sort, and retrieve the images.
</p>
<p>
TSharedIcon is the type used to implement the internal shared image in
<var>TCustomIcon</var> (and descendant classes).
</p>
</descr>
<seealso/>
</element>
<!-- private -->
<element name="TSharedIcon.FImages"/>
<element name="TSharedIcon.FreeHandle">
<short>Frees the handle for the shared reference-counted icon.</short>
<descr>
<p>
<var>FreeHandle</var> is an overridden method in <var>TSharedIcon</var>. It
calls <var>DestroyIcon</var> to free the Handle for the shared Icon in the
widgetset class. It does not call the inherited method. No actions are
performed in the method when Handle contains <b>0</b> (<b>zero</b>).
</p>
</descr>
<seealso>
<link id="TSharedImage.FreeHandle"/>
</seealso>
</element>
<element name="TSharedIcon.UpdateFromHandle">
<short>
Frees the existing icon image and reloads it from the specified handle.
</short>
<descr>
<p>
Calls FreeHandle to free the existing handle for the Icon in the widgetset
class, and sets the handle to the value specified in NewHandle. Gets icon
information from the widgetset class and adds a new icon image to the list of
Images.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the NewHandle parameter.
</version>
<seealso>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TSharedIcon.UpdateFromHandle.NewHandle">
<short>
TLCLHandle instance assigned as the handle for the shared icon.
</short>
</element>
<element name="TSharedIcon.IsEmpty">
<short>
Indicates if the shared icon is empty (contains no icon images).
</short>
<descr/>
<seealso>
<link id="TSharedRasterImage.IsEmpty"/>
</seealso>
</element>
<element name="TSharedIcon.IsEmpty.Result">
<short/>
</element>
<element name="TSharedIcon.GetImage">
<short>Gets the value for the indexed Images property.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedIcon.GetImage.Result">
<short>
TIconImage instance at the specified position in the image list.
</short>
</element>
<element name="TSharedIcon.GetImage.AIndex">
<short>Ordinal position for the image retrieved from the image list.</short>
</element>
<element name="TSharedIcon.Create">
<short>
<var>Create</var> - constructor for <var>TSharedIcon</var>: performs inherited
<var>Create</var> then creates a list of images.
</short>
<descr/>
<seealso>
<link id="#rtl.System.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TSharedIcon.Destroy">
<short>
<var>Destroy</var> - destructor for <var>TSharedIcon</var>: frees the list of
images and performs inherited <var>Destroy</var>.
</short>
<descr/>
<seealso>
<link id="#rtl.System.TObject.Destroy">TObject.Destroy</link>
</seealso>
</element>
<element name="TSharedIcon.Clear">
<short>
<var>Clear</var> - remove the icon and free its resources.
</short>
<descr/>
<seealso/>
</element>
<element name="TSharedIcon.Delete">
<short>Removes the icon image with the specified index.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedIcon.Delete.AIndex">
<short>Ordinal position for the icon image removed in the method.</short>
</element>
<element name="TSharedIcon.GetIndex">
<short>
Gets the Index of an image with specified pixel format, height and width.
</short>
<descr/>
<seealso/>
</element>
<element name="TSharedIcon.GetIndex.Result">
<short>
Ordinal position for the icon image matching the requested value(s).
</short>
</element>
<element name="TSharedIcon.GetIndex.AFormat">
<short>Pixel format (color depth) to locate in the Images.</short>
</element>
<element name="TSharedIcon.GetIndex.AHeight">
<short>Height for the requested image.</short>
</element>
<element name="TSharedIcon.GetIndex.AWidth">
<short>Width for the requested image.</short>
</element>
<element name="TSharedIcon.GetImagesClass">
<short>
Gets the class reference used to create a new icon image in the Images
property.
</short>
<descr/>
<seealso/>
</element>
<element name="TSharedIcon.GetImagesClass.Result">
<short/>
</element>
<element name="TSharedIcon.Add">
<short>Adds the specified image to the list of Images in the icon.
</short>
</element>
<element name="TSharedIcon.Add.AIconImage">
<short/>
</element>
<element name="TSharedIcon.Sort">
<short>Sorts values in Images using the IconCompare routine.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedIcon.Count">
<short>
<var>Count</var> - returns the number of references to the shared icon.
</short>
</element>
<element name="TSharedIcon.Count.Result">
<short/>
</element>
<element name="TSharedIcon.Images">
<short>Provides indexed access to the images available in the Icon.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedIcon.Images.AIndex">
<short>Ordinal position for an icon image in the list of images.</short>
</element>
<element name="TIconImage">
<short>
<var>TIconImage</var> - a primitive Icon class with handles for the Bitmap,
Mask and Palette.
</short>
<descr/>
<seealso/>
</element>
<!-- private -->
<element name="TIconImage.FHeight"/>
<element name="TIconImage.FPixelFormat"/>
<element name="TIconImage.FWidth"/>
<element name="TIconImage.FImage"/>
<element name="TIconImage.FHandle"/>
<element name="TIconImage.FMaskHandle"/>
<element name="TIconImage.FPalette"/>
<element name="TIconImage.GetPalette">
<short>Gets the value for the Palette property.</short>
<descr/>
<seealso>
<link id="TIconImage.Palette"/>
</seealso>
</element>
<element name="TIconImage.GetPalette.Result">
<short>Value for the property.</short>
</element>
<element name="TIconImage.RawImageNeeded">
<short>
<var>RawImageNeeded</var> - if <var>ADescOnly</var> is <b>True</b>
(descriptor only), then we need a Raw Image.
</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.RawImageNeeded.ADescOnly">
<short/>
</element>
<element name="TIconImage.UpdateFromImage">
<short>Updates the icon image from the specified raw image data.</short>
<descr>
<p>
<var>UpdateFromImage</var> is a procedure used to update the icon image from
the specified raw image data.
</p>
<p>
<var>AImage</var> is a <var>TRawImage</var> instance with the image content
stored in the <var>RawImage</var> property in the class instance. The image
descriptor in AImage is examined to get the values stored in the Height and
Width properties. The color depth in AImage is converted and stored in the
<var>PixelFormat</var> property.
</p>
<p>
UpdateFromImage is called from the Create constructor when a
<var>TRawImage</var> or a <var>TIconInfo</var> argument is provided.
</p>
</descr>
<seealso>
<link id="TIconImage.PixelFormat"/>
<link id="TIconImage.Height"/>
<link id="TIconImage.Width"/>
<link id="#lazutils.graphtype.TRawImage">TRawImage</link>
</seealso>
</element>
<element name="TIconImage.UpdateFromImage.AImage">
<short>Raw image data stored in the method.</short>
</element>
<element name="TIconImage.Create">
<short>
Constructor for the class instance.
</short>
<descr>
<p>
<var>Create</var> is the overloaded constructor for the class instance. It
specifies a Raw image to be used, and calls the inherited Create method.
Variants are provided with parameters which specify the dimensions and/or
content for the icon image. The variant with the <var>TIconInfo</var> argument
is used to create a new icon image when a handle is assigned in
<var>TSharedIcon</var>.
</p>
</descr>
<seealso>
<link id="#rtl.system.TObject.Create">TObject.Create</link>
</seealso>
</element>
<element name="TIconImage.Create.AFormat">
<short>Pixel format (color depth) for the image data.</short>
</element>
<element name="TIconImage.Create.AHeight">
<short>Height in pixels for the image.</short>
</element>
<element name="TIconImage.Create.AWidth">
<short>Width in pixels for the image.</short>
</element>
<element name="TIconImage.Create.AImage">
<short>Raw image data used to load the content in the image.</short>
</element>
<element name="TIconImage.Create.AInfo">
<short>
Structure with Hotspot, Mask and Color information for the icon image.
</short>
</element>
<element name="TIconImage.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy ensures that existing values in <var>Handle</var>,
<var>MaskHandle</var>, and <var>Palette</var> are freed by calling
<var>DeleteObject</var>. The raw image data used the class instance is also
freed. Destroy calls the inherited destructor prior to exiting from the
method.
</p>
</descr>
<seealso>
<link id="#rtl.system.TObject.Destroy">TObject.Destroy</link>
</seealso>
</element>
<element name="TIconImage.ReleaseHandle">
<short>Releases the Handle for the icon image.</short>
<descr>
<p>
<var>ReleaseHandle</var> is a <var>HBITMAP</var> function used to release the
<var>Handle</var> assigned for the icon image. The return value contains the
HBITMAP value for Handle before it is released. ReleaseHandle sets the value
in Handle to <b>0</b> (<b>zero</b>) to indicate that the handle is no longer
in use or invalid.
</p>
<p>
ReleaseHandle is called when a <var>TCustomIcon</var> descendant calls its
<var>InternalReleaseBitmapHandle</var> method.
</p>
<p>
Use <var>ReleaseMaskHandle</var> to release the <var>MaskHandle</var> for the
icon image.
</p>
<p>
Use <var>ReleasePalette</var> to release the <var>Palette</var> handle used
in the icon image.
</p>
</descr>
<seealso/>
</element>
<element name="TIconImage.ReleaseHandle.Result">
<short/>
</element>
<element name="TIconImage.ReleaseMaskHandle">
<short>
<var>ReleaseMaskHandle</var> - returns mask Bitmap handle to operating system.
</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.ReleaseMaskHandle.Result">
<short/>
</element>
<element name="TIconImage.ReleasePalette">
<short>
<var>ReleasePalette</var> - returns Palette handle to operating system.
</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.ReleasePalette.Result">
<short/>
</element>
<element name="TIconImage.UpdateHandles">
<short>
<var>UpdateHandles</var> - returns <b>True</b> when Bitmap and Mask handles
have been updated.
</short>
<descr>
<p>
<var>UpdateHandles</var> is a <var>Boolean</var> function used to set the
handles for the Bitmap and its optional Mask to the specified values.
<var>DeleteObject</var> is called to remove existing handle value(s) in the
<var>Handle</var> and <var>MaskHandle</var> properties.
</p>
<p>
The return value is <b>True</b> when the value(s) in Handle and/or MaskHandle
are successfully set to the specified values.
</p>
<p>
UpdateHandles emulates the method with the same name in
<var>TCustomBitmap</var>. UpdateHandles is called when the <var>TIcon</var>
instance where the icon image is used calls its <var>UpdateHandles</var>
method.
</p>
</descr>
<seealso/>
</element>
<element name="TIconImage.UpdateHandles.Result">
<short><b>True</b> when the handles are successfully updated.</short>
</element>
<element name="TIconImage.UpdateHandles.ABitmap">
<short>Handle for the Bitmap stored in the method.</short>
</element>
<element name="TIconImage.UpdateHandles.AMask">
<short>Handle for the Mask stored in the method.</short>
</element>
<element name="TIconImage.Height">
<short>The <var>Height</var> of the Icon.</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.Width">
<short>The <var>Width</var> of the Icon.</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.PixelFormat">
<short>
<var>PixelFormat</var> - the format of the Pixels in the Image.
</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.Handle">
<short>
<var>Handle</var> - for the Bitmap.
</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.MaskHandle">
<short>
<var>MaskHandle</var> - Bitmap handle for the Mask.
</short>
<descr/>
<seealso/>
</element>
<element name="TIconImage.Palette">
<short>Handle for the <var>Palette</var>.
</short>
<descr>
<p>
<var>Palette</var> is a read-only <var>HPALETTE</var> property which provides
access to the color palette used in the Icon image.
</p>
<remark>
Palette is not implemented in the current LCL version.
</remark>
</descr>
<seealso/>
</element>
<element name="TIconImage.RawImage">
<short>Raw image data for the icon image.</short>
<descr>
<p>
<var>RawImage</var> is a read-only <var>TRawImage</var> property which
contains the raw image data for the icon image.
</p>
<p>
The property value is assigned in the <var>Create</var> method when a
TRawImage argument is provided. The <var>UpdateFromImage</var> method is used
to examine the raw image data and get the values stored in properties.
</p>
</descr>
<seealso>
<link id="TIconImage.Create"/>
<link id="TIconImage.UpdateFromImage"/>
<link id="#lazutils.graphtype.TRawImage">TRawImage</link>
</seealso>
</element>
<element name="TCustomIcon">
<short>
<var>TCustomIcon</var> - base class for TIcon.</short>
<descr>
<p>
<var>TCustomIcon</var> is a <var>TRasterImage</var> descendant which
implements the base class for TIcon. TIcon supports image files using the
<b>.ICO</b> file format. An .ICO file typically contains several images with
different sizes and/or color depths.
</p>
<p>
TCustomIcon extends the ancestor class to include an internal list of images,
and provides overridden methods which use the list of images in their
implementations. This includes the <var>ReadData</var> method used during LCL
component streaming. <var>ReadStream</var> is overridden to handle not only
multiple images but <b>PNG</b> and <b>DIB</b> image formats used in some Icon
files.
</p>
<p>
When loading an icon file, the largest/most colorful image is selected as the
current image. Other sizes and/or color depths are accessed by setting the
value in the <var>Current</var> property, or using <var>Size</var> when
Current is not already set, or by setting Current to the value from the
<var>GetBestIndexForSize</var> method.
</p>
<p>
Use the <var>Count</var>, <var>Add</var>, <var>Delete</var>,
<var>Remove</var>, <var>Clear</var>, and <var>AssignImage</var> methods to
maintain the images in the internal list.
</p>
<remark>
Please note that writing to an icon file is not currently implemented in
TCustomIcon (or descendent classes).
</remark>
</descr>
<seealso>
<link id="TRasterImage"/>
<link id="TIcon"/>
<link id="TSharedIcon"/>
</seealso>
</element>
<element name="TCustomIcon.GetCount">
<short>Gets the value for the Count property.</short>
<descr/>
<seealso>
<link id="TCustomIcon.Count"/>
<link id="TSharedIcon.Count"/>
<link id="TSharedIcon.Images"/>
</seealso>
</element>
<element name="TCustomIcon.GetCount.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomIcon.SetCurrent">
<short>Sets the value for the Current property.</short>
<descr/>
<seealso>
<link id="TCustomIcon.Current"/>
</seealso>
</element>
<element name="TCustomIcon.SetCurrent.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomIcon.FCurrent">
<short>
Local member variable used to hold the current sequence number.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.FRequestedSize">
<short>Member used for the requested icon size.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.MaskHandleNeeded">
<short>Ensures that a handle for the mask in the icon is valid.</short>
<descr/>
<seealso>
<link id="TRasterImage.MaskHandleNeeded"/>
</seealso>
</element>
<element name="TCustomIcon.PaletteNeeded">
<short>An empty implementation in TCustomIcon.</short>
<descr>
<p>
Palette information is handled in the .ICO image format.
</p>
</descr>
<seealso>
<link id="TRasterImage.PaletteNeeded"/>
</seealso>
</element>
<element name="TCustomIcon.CanShareImage">
<short>Indicates whether the image class type has a shared handle.</short>
<descr>
<p>
Determines whether the the image class type can be shared. Returns
<b>True</b> when <var>AClass</var> is derived from <var>TSharedIcon</var>.
</p>
<p>
This is a temporary work-around to make Assign work with cursors, icons and
icnsicons.
</p>
</descr>
<seealso>
<link id="TRasterImage.CanShareImage"/>
</seealso>
</element>
<element name="TCustomIcon.CanShareImage.Result">
<short>Returns <b>True</b> when AClass is derived from TSharedIcon.</short>
</element>
<element name="TCustomIcon.CanShareImage.AClass">
<short/>
</element>
<element name="TCustomIcon.CheckRequestedSize">
<short>
<var>CheckRequestedSize</var> - method to ensure correct size requested.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.GetIndex">
<short>
<var>GetIndex</var> - returns the Index value of the Icon with specified
format and size (.icn files can contain several versions of image).
</short>
<descr>
<p>
Gets the ordinal position in the internal image list for the icon with the
specified pixel format, height, and width. The return value is <b>-1</b> if
an image using all of the requested values was not found in the list.
</p>
<p>
Assign the return value to the <var>Current</var> property to use it as the
selected image for the icon.
</p>
<p>
Use <var>GetBestIndexForSize</var> to find the position of the image which
matches most closely the specified height and width.
</p>
</descr>
<seealso>
<link id="TCustomIcon.Current"/>
<link id="TCustomIcon.GetBestIndexForSize"/>
<link id="TSharedIcon.GetIndex"/>
<link id="TSharedIcon.Images"/>
</seealso>
</element>
<element name="TCustomIcon.GetIndex.Result">
<short>
Ordinal position for the image with the requested attributes, or -1 when not
found.
</short>
</element>
<element name="TCustomIcon.GetIndex.AFormat">
<short>Color depth for the requested icon image.</short>
</element>
<element name="TCustomIcon.GetIndex.AHeight">
<short>Height for the requested icon image.</short>
</element>
<element name="TCustomIcon.GetIndex.AWidth">
<short>Width for the requested icon image.</short>
</element>
<element name="TCustomIcon.GetBitmapHandle">
<short>Gets the value for the BitmapHandle property.</short>
<descr>
<p>Implements the abstract method defined in the ancestor class.
</p>
</descr>
<seealso>
<link id="TRasterImage.BitmapHandle"/>
<link id="TRasterImage.GetBitmapHandle"/>
</seealso>
</element>
<element name="TCustomIcon.GetBitmapHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomIcon.GetDefaultSize">
<short>
<var>GetDefaultSize</var> - returns default size for Icon.
</short>
<descr>
<p>
<var>GetDefaultSize</var> is a <var>TSize</var> class function used to get
the default size in new instances of the class. The return value uses the
SM_CXICON and SM_CYICON values returned from the GetSystemMetrics function in
its cx and cy members.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.GetDefaultSize.Result">
<short>TSize instance with the default width and height for an icon.</short>
</element>
<element name="TCustomIcon.GetMaskHandle">
<short>Gets the value for the MaskHandle property.</short>
<descr>
<p>
<var>GetMaskHandle</var> implements the abstract method defined in the
ancestor class.
</p>
</descr>
<seealso>
<link id="TRasterImage.MaskHandle"/>
<link id="TRasterImage.GetMaskHandle"/>
</seealso>
</element>
<element name="TCustomIcon.GetMaskHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomIcon.GetPalette">
<short>Gets the value for the Palette property.</short>
<descr/>
<seealso>
<link id="TGraphic.Palette"/>
<link id="TGraphic.GetPalette"/>
</seealso>
</element>
<element name="TCustomIcon.GetPalette.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomIcon.GetPixelFormat">
<short>Gets the value for the PixelFormat property.</short>
<descr>
<p>Implements the abstract virtual method defined in the ancestor class.
</p>
</descr>
<seealso>
<link id="TRasterImage.PixelFormat"/>
<link id="TRasterImage.GetPixelFormat"/>
</seealso>
</element>
<element name="TCustomIcon.GetPixelFormat.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomIcon.GetRawImagePtr">
<short>Gets a pointer to the raw image data for the icon.</short>
<descr>
<p>
<var>GetRawImagePtr</var> is an overridden method used to get a pointer to
the raw image data for the icon image. The return value is a
<var>PRawImage</var> type which points to the data in a <var>TIconImage</var>
instance in the shared image list for the icon.
</p>
<p>
GetRawImagePtr uses the value in <var>Current</var> to determine which image
is retrieved from the internal image list. When Current is <b>-1</b>, the
return value is <b>Nil</b>. Otherwise, the shared icon image at the position
in Current is accessed to get the return value for the method.
</p>
<p>
GetRawImagePtr is called from <var>AssignImage</var> a raw image is assigned
to the icon. It is also used to get mask image data in the
<var>MaskHandleNeeded</var> method.
</p>
</descr>
<seealso>
<link id="TCustomIcon.Current"/>
<link id="TCustomIcon.AssignImage"/>
<link id="TCustomIcon.MaskHandleNeeded"/>
<link id="TIconImage"/>
<link id="TRasterImage.GetRawImagePtr"/>
</seealso>
</element>
<element name="TCustomIcon.GetRawImagePtr.Result">
<short>
Pointer to the raw image data, or Nil when Current is not assigned.
</short>
</element>
<element link="#lcl.graphics.TRasterImage.GetRawImageDescriptionPtr" name="TCustomIcon.GetRawImageDescriptionPtr">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.GetRawImageDescriptionPtr.Result">
<short/>
</element>
<element link="#lcl.graphics.TGraphic.GetTransparent" name="TCustomIcon.GetTransparent">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.GetTransparent.Result">
<short/>
</element>
<element link="#lcl.graphics.TRasterImage.GetSharedImageClass" name="TCustomIcon.GetSharedImageClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.GetSharedImageClass.Result">
<short/>
</element>
<element name="TCustomIcon.GetStreamSignature">
<short>Gets the stream signature used for icon data.</short>
<descr>
<p>
<var>GetStreamSignature</var> is a <var>Cardinal</var> class function used to
get the signature which identifies the image content when stored in a stream.
GetStreamSignature is used in the implementation of the <var>ReadData</var>
method which reads the values for the class instance during LCL component
streaming.
</p>
<p>
GetStreamSignature is defined as a virtual method, and is overridden in
<var>TIcon</var> to use the value required for the icon image format.
</p>
</descr>
<seealso>
<link id="TIcon"/>
</seealso>
</element>
<element name="TCustomIcon.GetStreamSignature.Result">
<short>Cardinal value with the stream signature for the class.</short>
</element>
<element name="TCustomIcon.GetTypeID">
<short>Gets the icon type identifier used in the image list header.
</short>
<descr>
<p>
<var>GetTypeId</var> is a <var>Word</var> class function used to get the
image type identifier used for icon images. It is used in the implementation
of the
<var>WriteStream</var> method, and provides the value stored in the icon
image header.
</p>
<p>
Since TCustomIcon instances are not included in component streaming, the
return value is always returns <b>0</b>. GetTypeId is overridden in
<var>TIcon</var> to provide the value used in the derived class.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.GetTypeID.Result">
<short>Type identifier for images in the icon.</short>
</element>
<element name="TCustomIcon.HandleNeeded">
<short>Ensures that a handle for the image has been allocated.</short>
<descr>
<p>
<var>HandleNeeded</var> is an overridden procedure used to ensure that a
handle for the image has been allocated. HandleNeeded re-implements the
method defined in the ancestor class.
</p>
<p>
No actions are performed in the method when a valid valid has already been
assigned to the shared image in the class instance.
</p>
<p>
HandleNeeded calls the <var>CreateIconIndirect</var> routine for the
widgetset to get the value used as the Handle for the shared image.
</p>
</descr>
<seealso>
<link id="TRasterImage.HandleNeeded"/>
</seealso>
</element>
<element link="#lcl.graphics.TRasterImage.InternalReleaseBitmapHandle" name="TCustomIcon.InternalReleaseBitmapHandle">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.InternalReleaseBitmapHandle.Result">
<short/>
</element>
<element link="#lcl.graphics.TRasterImage.InternalReleaseMaskHandle" name="TCustomIcon.InternalReleaseMaskHandle">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.InternalReleaseMaskHandle.Result">
<short/>
</element>
<element link="#lcl.graphics.TRasterImage.InternalReleasePalette" name="TCustomIcon.InternalReleasePalette">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomIcon.InternalReleasePalette.Result">
<short/>
</element>
<element name="TCustomIcon.ReadData">
<short>Reads data for the class instance from a stream.</short>
<descr>
<p>
<var>ReadData</var> is an overridden method used to read the data for the
class instance from the TStream instance specified in <var>Stream</var>.
ReadData is the method called when TFiler reads a persistent object during
LCL component streaming.
</p>
<p>
ReadData saves the position in Stream on entry, and restores the original
position prior to exiting from the method.
</p>
<p>
ReadData checks the values in Stream to determine if a size prefix for the
content is stored in the stream. Delphi streaming does not include the size
prefix. Current Lazarus versions do. When the <var>LongInt</var> value used
as the StreamSignature is 0, the LoadFromStream method is called to load the
contents of the stream. Otherwise, the inherited method is called to complete
the operation.
</p>
<p>
ReadData is also called from the <var>LoadFromResourceHandle</var> method in
<var>TIcon</var>.
</p>
</descr>
<seealso>
<link id="TRasterImage.ReadData"/>
<link id="TGraphic.ReadData"/>
<link id="TIcon.LoadFromResourceHandle"/>
<link id="#rtl.classes.TFiler">TFiler</link>
</seealso>
</element>
<element name="TCustomIcon.ReadData.Stream">
<short/>
</element>
<element name="TCustomIcon.ReadStream">
<short>Reads the content for the icon from the specified stream.</short>
<descr>
<p>
<var>ReadStream</var> is an overridden procedure used to read the content for
the icon from the stream specified in <var>AStream</var>. ReadStream
implements the abstract virtual method defined in the ancestor class.
</p>
<p>
ReadStream verifies that AStream contains an icon image by checking for
header value(s) that are valid for .ICO data. If the header values are not
found, an <var>EInvalidGraphic</var> exception is raised.
</p>
<p>
For icon data, the icon directory must be read from the stream. The header
contains the number of icon directory entries included in the stream. The
icon directory entries are read from AStream, and include values for each
icon image that includes:
</p>
<ul>
<li>HotSpotX</li>
<li>HotSpotY</li>
<li>BytesInRes</li>
<li>ImageOffset</li>
</ul>
<p>
ReadStream positions the stream, and reads image data for the each of the
icon directory entries. It handles both DIB Bitmap and PNG (used in Windows
Vista) image data for the icon images. An FCL-compatible image reader is
created as required for the image type, and a <var>TLazIntfImage</var>
instance is used to capture the raw image data from the stream. Images read
from the stream are added to the internal list of images in the
<var>TSharedIcon</var> member for the class instance.
</p>
<p>
ReadStream calls <var>CheckRequestedSize</var> to use the <var>Width</var>
and/or <var>Height</var> specified in the class instance.
<var>GetBestIndexForSize</var> is called to determine the value in
<var>Current</var> with the requested image size.
</p>
</descr>
<seealso>
<link id="TRasterImage.ReadStream"/>
</seealso>
</element>
<element name="TCustomIcon.ReadStream.AStream">
<short>Stream instance with the image content read in the method.</short>
</element>
<element name="TCustomIcon.ReadStream.ASize">
<short>Number of bytes expected for the icon data.</short>
</element>
<element name="TCustomIcon.SetMasked">
<short>Sets the value for the Masked property.</short>
<descr>
<p>
<var>SetMasked</var> is an empty implementation in <var>TCustomIcon</var>.
</p>
</descr>
<seealso>
<link id="TRasterImage.Masked"/>
</seealso>
</element>
<element name="TCustomIcon.SetMasked.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomIcon.SetPixelFormat">
<short>Sets the value for the PixelFormat property.</short>
<descr>
<p>
Changing the value for <var>PixelFormat</var> raises an
<var>EInvalidGraphicOperation</var> exception in <var>TCustomIcon</var>.
</p>
</descr>
<seealso>
<link id="TRasterImage.SetPixelFormat"/>
<link id="TRasterImage.PixelFormat"/>
</seealso>
</element>
<element name="TCustomIcon.SetPixelFormat.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomIcon.SetTransparent">
<short>Sets the value for the Transparent property.</short>
<descr>
<p>
<var>SetTransparent</var> is an empty implementation in
<var>TCustomIcon</var>.
</p>
</descr>
<seealso>
<link id="TGraphic.Transparent"/>
<link id="TRasterImage.SetTransparent"/>
</seealso>
</element>
<element name="TCustomIcon.SetTransparent.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomIcon.UnshareImage">
<short>
Unshares the shared image when the content in the icon is changed.
</short>
<descr>
<p>
<var>UnshareImage</var> is an overridden procedure used to stop sharing the
image(s) for the icon. UnshareImage implements the abstract virtual method
defined in the ancestor class.
</p>
<p>
No actions are performed in the method when the <var>RefCount</var> for the
internal <var>TSharedIcon</var> instance is less than <b>1</b>.
</p>
<p>
When sharing is stopped, the internal TSharedIcon instance in the class is
re-created.
</p>
<p>
<var>CopyContent</var> indicates whether existing content from icon images is
copied into the new image list. When set to <b>True</b>,
<var>TIconImage</var> instances are re-created for each of the icon images
and their existing content is copied. When set to <b>False</b>, image data
for the icon is empty.
</p>
<p>
UnshareImage calls <var>FreeCanvasContext</var> to discard the device context
used in the Canvas.
</p>
<p>
UnshareImage calls the <var>Release</var> method for the old TSharedIcon
instance.
</p>
<p>
UnshareImage is called from methods which alter the handle or image content
for the icon, including:
</p>
<ul>
<li>SetHandle</li>
<li>Add</li>
<li>Assign</li>
<li>AssignImage</li>
<li>Delete</li>
</ul>
</descr>
<seealso>
<link id="TRasterImage.UnshareImage"/>
</seealso>
</element>
<element name="TCustomIcon.UnshareImage.CopyContent">
<short><b>True</b> if existing image content is copied in the method.</short>
</element>
<element name="TCustomIcon.UpdateCurrentView">
<short>
<var>UpdateCurrentView</var> - updates the current appearance of the Icon.
</short>
<descr>
<p>
<var>UpdateCurrentView</var> is a procedure used to refresh the canvas when
an icon image has been modified. UpdateCurrentView frees the device context
(or handle) for the <var>Canvas</var>, and calls the <var>Changed</var>
method.
</p>
<p>
UpdateCurrentView is called from methods like <var>Add</var> and
<var>Delete</var>, and when a new icon image is selected by setting the value
in the <var>Current</var> property.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.SetHandle">
<short>
Unshares an existing shared image handle and set the new value.
</short>
<descr>
<p>
<var>SetHandle</var> is a method used to set set the value for the shared
image handle in the icon instance. It ensures that an existing shared image
handle frees both its canvas context and the data in its TSharedImage instance.
</p>
<p>
It calls UpdateHandle to set the new shared handle for the icon instance to
AValue. Values in Current and Count are reset when the handle is changed.
Current is set 0 when multiple images are used in the icon. It is set to -1
when a single image is present. Changed is called to update the value in
Modified and signal the OnChange event handler (when assigned).
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the AValue parameter.
</version>
<seealso>
<link id="TRasterImage.SetHandle"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TCustomIcon.SetHandle.AValue">
<short>
New value for the shared image handle in the icon.
</short>
</element>
<element name="TCustomIcon.UpdateHandle">
<short>
Updates the handle in the shared icon image top the specified value.
</short>
<descr>
<p>
<var>UpdateHandle</var> is a <var>Boolean</var> function used to update the
shared icon image when the handle specified in <var>AValue</var> differs from
the handle in the shared image.
</p>
<p>
The return value is <b>True</b> when the handles have different values on
entry. UpdateHandle calls the <var>UpdateFromHandle</var> method in the
<var>TSharedIcon</var> instance using AValue as an argument.
</p>
<p>
No actions are performed in the method when the return value is <b>False</b>.
</p>
<p>
UpdateHandle is called when a new value is assigned to the <var>Handle</var>
property.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.UpdateHandle.Result">
<short>
<b>True</b> when the handle in the icon is different that the handle in the
shared icon image.
</short>
</element>
<element name="TCustomIcon.UpdateHandle.AValue">
<short>Handle compared to the shared icon image.</short>
</element>
<element name="TCustomIcon.UpdateHandles">
<short>
Sets the Bitmap and Mask handles for the current image in the icon.
</short>
<descr>
<p>
<var>UpdateHandles</var> is an overridden method used to set the Bitmap and
Mask handles for the
<var>Current</var> icon image to the specified values. UpdateHandles
implements the abstract virtual method defined in the ancestor class.
</p>
<p>
UpdateHandles uses the value in <var>Current</var> to determine the
<var>TIconImage</var> in the internal image list that is updated in the
method.
</p>
<p>
When Current is set to <b>-1</b>, an icon image has not been selected and no
actions are performed in the method. The return value is <b>False</b> if the
handles could not be applied to icon image.
</p>
<p>
UpdateHandles calls the <var>UpdateHandles</var> method for the TIconImage
indicated in Current using the values in <var>ABitmap</var> and
<var>AMask</var> as arguments. The return value is <b>True</b> if the handles
are successfully applied to the icon image.
</p>
<p>
UpdateHandles is called from methods like:
</p>
<ul>
<li>BitmapHandleNeeded</li>
<li>MaskHandleNeeded</li>
<li>UpdateHandle</li>
<li>Assign</li>
</ul>
</descr>
<seealso>
<link id="TRasterImage.UpdateHandles"/>
</seealso>
</element>
<element name="TCustomIcon.UpdateHandles.Result">
<short>
<b>True</b> if the new handles are successfully applied to the icon image.
</short>
</element>
<element name="TCustomIcon.UpdateHandles.ABitmap">
<short>Bitmap handle for the current image in the icon.</short>
</element>
<element name="TCustomIcon.UpdateHandles.AMask">
<short>Mask handle for the current image in the icon.</short>
</element>
<element name="TCustomIcon.WriteStream">
<short>
Writes the content for the multi-image icon to the specified stream.
</short>
<descr>
<p>
<var>WriteStream</var> is an overridden method used to write the content for
the multi-image icon to the stream specified in
<var>AStream</var>. WriteStream implements the abstract virtual method
defined in the ancestor class.
</p>
<p>
WriteStream performs actions needed to write the header, icon directory, and
content for each of the images used in the multi-image icon to the
TMemoryStream instance. It handles both PNG and DIB Bitmap icon images, and
creates Mask data for images when it is not already present.
</p>
<p>
For icon images used in <var>TCursorImage</var>, the X and Y coordinates for
the HotSpot are also included in the image data.
</p>
<p>
WriteStream is called from <var>SaveStreamNeeded</var> when the
<var>SaveToStream</var> method is performed.
</p>
</descr>
<seealso>
<link id="TRasterImage.WriteStream"/>
</seealso>
</element>
<element name="TCustomIcon.WriteStream.AStream">
<short>TMemoryStream instance where icon data is stored.</short>
</element>
<element name="TCustomIcon.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 constructor on entry. Create sets the default values for
properties, including:
</p>
<dl>
<dt>Current</dt>
<dd>Set to -1 to indicate that an icon image has not been selected.</dd>
<dt>Masked</dt>
<dd>
Set to <b>True</b>. By definition, an icon is masked. Does not account for
icon images with an alpha channel.
</dd>
</dl>
<p>
Create initializes the internal member used to track the size for a requested
icon.
</p>
</descr>
<seealso>
<link id="TCustomIcon.Current"/>
<link id="TRasterImage.Masked"/>
<link id="TGraphic.Create"/>
</seealso>
</element>
<element name="TCustomIcon.Add">
<short>
<var>Add</var> - an Icon formatted as <var>AFormat</var>, with specified
<var>Height</var> and <var>Width</var>.
</short>
<descr>
<p>
<var>Add</var> is procedure used to create an image for the icon with the
attributes specified in <var>AFormat</var>, <var>AHeight</var>, and
<var>AWidth</var>. Add calls <var>GetIIndex</var> to determine if an icon
image with the requested attributes already exists in the image list for the
icon. An <var>EInvalidGraphicOperation</var> exception is raised when the
image already exists in the internal image list.
</p>
<p>
Add calls <var>UnshareImage</var> to release the shared image handle, and
adds a new image class instance to the shared icon. If the icon image is the
first one in the list, the value in <var>Current</var> is set to <b>0</b>
(<b>zero</b>) and the <var>UpdateCurrentView</var> method is called.
</p>
<p>
Use Current to make an icon image active for the class instance. Use
<var>AssignImage</var> to store the image at the position in Current.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.Add.AFormat">
<short>Pixel format (color depth) for the icon image.</short>
</element>
<element name="TCustomIcon.Add.AHeight">
<short>Height in pixels for the icon image.</short>
</element>
<element name="TCustomIcon.Add.AWidth">
<short>Width in pixels for the icon image.</short>
</element>
<element name="TCustomIcon.Assign">
<short>
Copies values from the specified persistent object into the current class
instance.
</short>
<descr>
<p>
<var>Assign</var> is an overridden method used to copy values from the
persistent object in <var>Source</var> into the current class instance.
Assign calls <var>BeginUpdate</var> to increment the active update counter,
and calls <var>EndUpdate</var> prior to exiting from the method.
</p>
<p>
Assign handles specific class types in Source, including:
</p>
<dl>
<dt>TRasterImage</dt>
<dd>
Calls Clear to remove existing image content, and calls Add to create and
icon image with the attributes in the PixelFormat, Height, and Width
properties in Source. Calls AssignImage to store the image content from
Source in the icon image. If the shared image class in Source is different
than the one for the current class instance, UnshareImage is called.
</dd>
<dt>TCustomIcon</dt>
<dd>
Sets the value in Current to the value found in Source.
</dd>
</dl>
<p>
When Source is derived from another class type, the inherited Assign method
is called.
</p>
</descr>
<seealso>
<link id="TRasterImage.Assign"/>
<link id="#rtl.classes.TPersistent.Assign">TPersistent.Assign</link>
</seealso>
</element>
<element name="TCustomIcon.Assign.Source">
<short>
Persistent object with values copied into the current class instance.
</short>
</element>
<element name="TCustomIcon.AssignImage">
<short>
Copies image data from the source image to the current icon image.
</short>
<descr>
<p>
<var>AssignImage</var> is used to copy image data from <var>ASource</var> to
the currently selected image for the icon.
</p>
<p>
AssignImage is typically used to assign the icon image when <var>Add</var> is
used to create a new icon image with the required attributes (PixelFormat,
Height, Width). AssignImage is called from the <var>Assign</var> method to
store a single raster image to the icon.
</p>
</descr>
<seealso>
<link id="TCustomIcon.Add"/>
<link id="TCustomIcon.Assign"/>
</seealso>
</element>
<element name="TCustomIcon.AssignImage.ASource">
<short>Image with the values assigned to the current icon image.</short>
</element>
<element name="TCustomIcon.Clear">
<short>Removes the image content for the icon.</short>
<descr>
<p>
<var>Clear</var> is an overridden method used to remove the image content for
the icon. Clear frees the internal save stream for the image. The internal
shared image is also freed and re-created. The value in <var>Current</var> is
set to <b>-1</b> to indicate that an icon image has not been selected.
</p>
<p>
Clear calls the <var>Changed</var> method to set the value in
<var>Modified</var> and signal the <var>OnChange</var> event handler (when
assigned).
</p>
<p>
No actions are performed in the method when <var>Empty</var> returns
<b>True</b>.
</p>
<remark>
Clear does not call the method inherited from TRasterImage.
</remark>
</descr>
<seealso>
<link id="TRasterImage.Clear"/>
</seealso>
</element>
<element name="TCustomIcon.Delete">
<short>
Deletes the image at the specified position in the list of images for the
icon.
</short>
<descr>
<p>
<var>Delete</var> is a procedure used to delete the icon image at the ordinal
position specified in <var>AIndex</var> from the list of images for the icon.
</p>
<p>
Delete calls <var>UnshareImage</var> to stop sharing the image list for the
icon. A copy of the images is kept and restored when the Delete method in
TSharedIcon has removed the image at the specified position.
</p>
<p>
When AIndex is also the <var>Current</var> image for the icon, Current is set
to <b>-1</b> and the <var>UpdateCurrentView</var> method is called.
Otherwise, the value in Current is decremented.
</p>
<p>
Use <var>Remove</var> to delete an icon image with specific PixelFormat,
Height, and Width values.
</p>
<p>
Use <var>Add</var> to add an icon image with specific PixelFormat, Height,
and Width values.
</p>
<p>
Use <var>Count</var> to determine the number of images in the list of images
for the icon.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.Delete.AIndex">
<short>Ordinal position for the icon image deleted in the method.</short>
</element>
<element name="TCustomIcon.Remove">
<short>Removes an icon image with the specified attributes.</short>
<descr>
<p>
<var>Remove</var> is used to locate and delete an icon image with the
attributes specified in <var>AFormat</var>, <var>AHeight</var>, and
<var>AWidth</var>.
</p>
<p>
Remove calls <var>GetIndex</var> to get the position in the internal image
list where the icon image with the specified attributes is stored. If an
image is found, the <var>Delete</var> method is called to the remove the icon
image.
</p>
<p>
The value in <var>Current</var> is modified when it represents an icon image
affected by the removal. Current is set to <b>-1</b> when it contains the
index for the icon image removed in the method.
</p>
</descr>
<seealso>
<link id="TCustomIcon.GetIndex"/>
<link id="TCustomIcon.Delete"/>
<link id="TCustomIcon.Current"/>
<link id="TCustomIcon.Count"/>
</seealso>
</element>
<element name="TCustomIcon.Remove.AFormat">
<short>Pixel format (color depth) for the icon image.</short>
</element>
<element name="TCustomIcon.Remove.AHeight">
<short>Height for the icon image.</short>
</element>
<element name="TCustomIcon.Remove.AWidth">
<short>Width for the icon image.</short>
</element>
<element name="TCustomIcon.GetDescription">
<short>
Gets metadata which describes the icon image at the specified position in the
image list.
</short>
<descr>
<p>
<var>GetDescription</var> is used to get image metadata which describes the
icon image at the position specified in <var>AIndex</var>.
<var>AFormat</var>, <var>AHeight</var>, and <var>AWidth</var> are output
parameters where the corresponding values from the <var>TIconImage</var>
instance are stored.
</p>
<p>
GetDescription accesses the image list in the internal <var>TSharedIcon</var>
instance used in the class.
</p>
</descr>
<seealso>
<link id="TIconImage"/>
<link id="TSharedIcon"/>
<link id="TPixelFormat"/>
</seealso>
</element>
<element name="TCustomIcon.GetDescription.AIndex">
<short>
<var>Aindex</var> - the Index value for the Icon.</short>
</element>
<element name="TCustomIcon.GetDescription.AFormat">
<short>
<var>AFormat</var> - the Pixel Format for the Icon.</short>
</element>
<element name="TCustomIcon.GetDescription.AHeight">
<short>
<var>AHeight</var> - the height of the Icon.</short>
</element>
<element name="TCustomIcon.GetDescription.AWidth">
<short>
<var>AWidth</var> - the width of the Icon.</short>
</element>
<element name="TCustomIcon.SetSize">
<short>Sets the size (width, height) for the image in the Icon.</short>
<descr>
<p>
<var>SetSize</var> is an overridden method used to set the size for the image
in the icon to the values specified in <var>AWidth</var> and
<var>AHeight</var>. SetSize implements the abstract virtual method defined in
the ancestor class. SetSize stores the argument values in an internal member
used to track the requested icon image size used in the
<var>GetBestIndexForSize</var> method.
</p>
<p>
SetSize raises an <var>EInvalidGraphicOperation</var> exception when an icon
size has been selected by setting a value in the <var>Current</var> property.
</p>
<p>
SetSize is called from the <var>ReadStream</var> method.
</p>
</descr>
<errors>
Raises an EInvalidGraphicOperation with the message in rsIconImageSizeChange
when Current contains a value other than -1.
</errors>
<seealso>
<link id="TCustomIcon.Current"/>
<link id="TCustomIcon.ReadStream"/>
<link id="TCustomIcon.GetBestIndexForSize"/>
<link id="TRasterImage.SetSize"/>
<link id="EInvalidGraphicOperation"/>
<link id="rsIconImageSizeChange"/>
</seealso>
</element>
<element name="TCustomIcon.SetSize.AWidth">
<short>New Width for the icon.</short>
</element>
<element name="TCustomIcon.SetSize.AHeight">
<short>New Height for the icon.</short>
</element>
<element name="TCustomIcon.GetFileExtensions">
<short>
Gets a delimited list of file extensions supported for the image type.
</short>
<descr>
<p>
<var>GetFileExtensions</var> is an overridden <var>String</var> class
function used to get a delimited list of file extensions supported for the
image type. In <var>TCustomIcon</var> and <var>TIcon</var>, the return value
is always <b>'ico'</b>.
</p>
</descr>
<seealso>
<link id="TGraphic.GetFileExtensions"/>
</seealso>
</element>
<element name="TCustomIcon.GetFileExtensions.Result">
<short>Delimited list of file extensions supported for the image type.</short>
</element>
<element name="TCustomIcon.LazarusResourceTypeValid">
<short>
Determines if the specified resource type is valid for the image format.
</short>
<descr>
<p>
<var>LazarusResourceTypeValid</var> is an overridden Boolean function used to
determine if the specified resource type is valid for the image format.
</p>
<p>
The return value is <b>True</b> when <var>ResourceType</var> contains
<b>'ICO'</b> or <b>'ICON'</b>. The inherited method is called to get the
return value when ResourceType contains any other resource type name. Case is
not significant when comparing the value in ResourceType; it is converted to
uppercase in the method.
</p>
</descr>
<seealso>
<link id="TGraphic.LazarusResourceTypeValid"/>
<link id="TCustomBitmap.LazarusResourceTypeValid"/>
<link id="TFPImageBitmap.LazarusResourceTypeValid"/>
<link id="TIcnsIcon.LazarusResourceTypeValid"/>
<link id="TCursorImage.LazarusResourceTypeValid"/>
</seealso>
</element>
<element name="TCustomIcon.LazarusResourceTypeValid.Result">
<short>
<b>True</b> when the resource type identifier is valid for the image format.
</short>
</element>
<element name="TCustomIcon.LazarusResourceTypeValid.ResourceType">
<short>Resource type identifier examined in the method.</short>
</element>
<element name="TCustomIcon.LoadFromResourceName">
<short>
Loads the icon with the specified resource name from the instance handle.
</short>
<descr>
<p>
<var>LoadFromResourceName</var> is an overridden procedure used to load a
resource with the name specified in <var>ResName</var> using the handle
provided in <var>Instance</var>. LoadFromResourceName re-implements the method
defined in the ancestor class, and does not call the inherited method.
</p>
<p>
LoadFromResourceName calls <var>GetResourceType</var> to get the
<var>Integer</var> resource type used in the class instance. No actions are
performed in the method when the <var>TResourceType</var> value is unassigned
(contains <b>Nil</b>).
</p>
<p>
LoadFromResourceName calls <var>FindResource</var> to get the resource handle
needed in the method. An <var>EResNotFound</var> exception is raised if a
resource with the specified name and type is not found in FindResource.
</p>
<p>
LoadFromResourceName calls <var>LoadFromResourceHandle</var> to load the icon
using the Instance and resource handle values.
</p>
<p>
Use <var>LoadFromResourceID</var> to load a resource by its Resource ID.
</p>
<p>
Use <var>LoadFromLazarusResource</var> to load a Lazarus resource from a
<b>.lrs</b> file with a give name.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="TCustomIcon.LoadFromResourceHandle"/>
<link id="TGraphic.GetResourceType"/>
<link id="#lcl.lcltype.TResourceType">TResourceType</link>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TCustomIcon.LoadFromResourceName.Instance">
<short>Handle where the content for the resource is stored.</short>
</element>
<element name="TCustomIcon.LoadFromResourceName.ResName">
<short>Name for the resource loaded in the method.</short>
</element>
<element name="TCustomIcon.LoadFromResourceID">
<short>
Load icon data from a resource with the specified integer resource identifier.
</short>
<descr>
<p>
<var>LoadFromResourceID</var> is an overridden procedure used to load a
resource with the specified Resource ID into the class instance.
LoadFromResourceID re-implements the method defined in the ancestor class,
and does not call the inherited method.
</p>
<p>
<var>Instance</var> contains the handle used to read the resource.
<var>ResID</var> contains an Integer pointer to the resource identifier
loaded in the method.
</p>
<p>
LoadFromResourceID calls <var>GetResourceType</var> to get the
<var>Integer</var> resource type used in the class instance. No actions are
performed in the method when the <var>TResourceType</var> value is unassigned
(contains <b>Nil</b>).
</p>
<p>
LoadFromResourceName calls <var>FindResource</var> to get the resource handle
needed in the method. An <var>EResNotFound</var> exception is raised if a
resource with the specified ID and type is not found in FindResource.
</p>
<p>
LoadFromResourceName calls <var>LoadFromResourceHandle</var> to load the icon
using the Instance and resource handle values.
</p>
<p>
Use <var>LoadFromResourceName</var> to load a resource with a given resource
name.
</p>
<p>
Use <var>LoadFromLazarusResource</var> to load a Lazarus resource from a
<b>.lrs</b> file with a give name.
</p>
</descr>
<errors>
Raises an EResNotFound exception if the resource handle for the specified ID
and type is not valid.
</errors>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TCustomIcon.LoadFromResourceID.Instance">
<short>Handle where the content for the resource is stored.</short>
</element>
<element name="TCustomIcon.LoadFromResourceID.ResID">
<short>Integer resource identifier loaded in the method.</short>
</element>
<element name="TCustomIcon.LoadFromResourceHandle">
<short>
Loads icon data from the specified instance and resource handles.
</short>
<descr>
<p>
LoadFromResourceHandle has an empty implementation in TCustomIcon. It is
re-implemented in TIcon descendant.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="TIcon.LoadFromResourceHandle"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TCustomIcon.LoadFromResourceHandle.Instance">
<short>Handle with the resource data loaded in the method.</short>
</element>
<element name="TCustomIcon.LoadFromResourceHandle.ResHandle">
<short>Resource handle with the icon data loaded in the method.</short>
</element>
<element name="TCustomIcon.BitmapHandleAllocated">
<short>Indicates if a handle for the icon image has been allocated.</short>
<descr>
<p>
<var>BitmapHandleAllocated</var> is an overridden <var>Boolean</var> function
which indicates if a handle for the icon image has been allocated in the
class instance. BitmapHandleAllocated implements the abstract virtual method
defined in the ancestor class.
</p>
<p>
The return value is <b>True</b> when <var>Current</var> has a valid image
index for the icon image, and the handle for the <var>TIconImage</var> in the
shared icon has a <b>non-zero</b> value.
</p>
<p>
BitmapHandleAllocated is called from methods that required a valid image
handle prior to performing actions using the image data. For example:
</p>
<ul>
<li>Assign</li>
<li>BitmapHandleNeeded</li>
<li>MaskHandleNeed</li>
<li>Draw</li>
<li>EndUpdate</li>
<li>SetMaskHandle</li>
</ul>
</descr>
<seealso>
<link id="TRasterImage.BitmapHandleAllocated"/>
</seealso>
</element>
<element name="TCustomIcon.BitmapHandleAllocated.Result">
<short>
<b>True</b> when a valid handle has been assigned for the shared icon image.
</short>
</element>
<element name="TCustomIcon.MaskHandleAllocated">
<short>
<b>True</b> if a handle has been allocated for the mask in the image.
</short>
<descr>
<p>
<var>MaskHandleAllocated</var> is an overridden method used to determine if a
handle for the image mask has been allocated in the class instance.
MaskHandleAllocated implements the abstract virtual method defined in the
ancestor class.
</p>
<p>
The return value is <var>True</var> when <var>Current</var> contains a value
other than -1, and the <var>MaskHandle</var> for the <var>TIconImage</var> in
the shared image list has a non-zero value.
</p>
<p>
MaskHandleAllocated is called from methods that required a valid handle prior
to performing actions using the mask image data. For example:
</p>
<ul>
<li>Assign</li>
<li>AssignImage</li>
<li>BitmapHandleNeeded</li>
<li>MaskHandleNeeded</li>
<li>CreateMask</li>
<li>SetTransparentColor</li>
<li>SetBitmapHandle</li>
<li>SetMaskHandle</li>
</ul>
</descr>
<seealso>
<link id="TCustomIcon.Assign"/>
<link id="TCustomIcon.AssignImage"/>
<link id="TCustomIcon.MaskHandleNeeded"/>
<link id="TRasterImage.BitmapHandle"/>
<link id="TRasterImage.Mask"/>
<link id="TRasterImage.MaskHandle"/>
<link id="TRasterImage.MaskHandleAllocated"/>
</seealso>
</element>
<element name="TCustomIcon.MaskHandleAllocated.Result">
<short>
<b>True</b> when the MaskHandle has been allocated for the icon image.
</short>
</element>
<element name="TCustomIcon.PaletteAllocated">
<short>
Determine if a handle has been allocated for the Palette in the icon.
</short>
<descr>
<p>
<var>PaletteAllocated</var> is an overridden method used to determine if a
handle has been allocated for the Palette in the icon image. PaletteAllocated
implements the abstract virtual method defined in the ancestor class.
</p>
<p>
The return value is <b>True</b> when <var>Current</var> contains a value
other than <b>-1</b>, and the palette handle in the <var>TIconImage</var>
instance for the shared icon image has a <b>non-zero</b> value.
</p>
<remark>
While provided as property in TCustomIcon, Palette is never assigned in the
TIconImage class instances used to represent the individual images in the
icon. Effectively, Palette is not implemented for TCustomIcon and
PaletteAllocated will always return <b>False</b>.
</remark>
</descr>
<seealso>
<link id="TRasterImage.PaletteAllocated"/>
<link id="TSharedIcon"/>
<link id="TIconImage.Palette"/>
</seealso>
</element>
<element name="TCustomIcon.PaletteAllocated.Result">
<short>
<b>True</b> when the Palette handle has been allocated for the icon.
</short>
</element>
<element name="TCustomIcon.SetHandles">
<short>Not implemented in TCustomIcon.</short>
<descr>
<p>SetHandles has an empty implementation in TCustomIcon.
</p>
</descr>
<seealso>
<link id="TRasterImage.SetHandles"/>
</seealso>
</element>
<element name="TCustomIcon.SetHandles.ABitmap">
<short>Handle for the Bitmap in the icon.</short>
</element>
<element name="TCustomIcon.SetHandles.AMask">
<short>Handle for the Mask in the icon.</short>
</element>
<element name="TCustomIcon.Sort">
<short>Sorts the images for the icon.</short>
<descr>
<p>
Sorts images in the internal image list for the icon. The <var>Sort</var>
method in <var>TSharedIcon</var> is called to perform the sort, and compares
the Width/PixelFormat values in the images to determine the sort order.
Preference is given to the value in Width; if two items have the same Width,
the value in PixelFormat is used for the comparison.
</p>
<p>
Sort keeps a reference to the image in <var>Current</var> when it is set to a
value other than <b>-1</b>. The image is used to restore the value in Current
when the sort operation is completed. The IndexOf method for the internal
image list is called determine the new position for the referenced image.
</p>
</descr>
<seealso>
<link id="TCustomIcon.Current"/>
<link id="TSharedIcon"/>
<link id="TIconImage"/>
</seealso>
</element>
<element name="TCustomIcon.GetBestIndexForSize">
<short>
Gets the ordinal position for the image closest to the requested size.
</short>
<descr>
<p>
The default icon size from <var>GetSystemMetrics</var> is used when
<var>ASize</var> does not have explicit values in its <var>cx</var> and
<var>cy</var> members. The best color depth is determined using the
<var>GetDeviceCaps</var> routine for the screen context.
</p>
<p>
GetBestIndexForSize iterates over the items in the internal image list to
find the TIconImage which most closely matches the required values. The
return value is <b>-1</b> if no images are stored in the internal image list
for the icon.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.GetBestIndexForSize.Result">
<short>
Ordinal position for the image, or -1 when no images are available.
</short>
</element>
<element name="TCustomIcon.GetBestIndexForSize.ASize">
<short>
TSize instance with the height and width for the requested image size.
</short>
</element>
<element name="TCustomIcon.Current">
<short>Ordinal position for the current image displayed for the icon.</short>
<descr>
<p>
<var>Current</var> is an <var>Integer</var> property which contains the
ordinal position for the selected image in the icon. Setting a new value for
the property causes the <var>UpdateCurrentView</var> method to be called to
update the <var>Canvas</var>, and the save stream for the shared image. The
<var>OnChange</var> event handler is signalled (when assigned).
</p>
<p>
Set Current to <b>-1</b> before calling <var>SetSize</var> (or changing
values in <var>Height</var> and <var>Width</var>) to avoid raising an
<var>EInvalidGraphicOperation</var> exception.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomIcon.Count">
<short>Number of images in the image list for the shared icon.</short>
<descr>
<p>
<var>Count</var> is a read-only <var>Integer</var> property which contains
the number of images in the internal image list for the icon. Read access for
the property value is redirected to the Count property in the internal
TSharedIcon instance used in the class.
</p>
<p>
Use methods like <var>Add</var>, <var>Delete</var>, <var>Remove</var>,
<var>Clear</var>, <var>Assign</var>, and <var>AssignImage</var> to maintain
the list of images available in the icon.
</p>
</descr>
<seealso/>
</element>
<element name="TIcon">
<short>
Implements an icon image type; small images typically associated with
applications, controls, etc.
</short>
<descr>
<p>
Icons can be loaded from .ICO files, or from Lazarus resources. An icon
resource typically contains several versions of the same image, in multiple
resolutions and color depths.
</p>
<p>
When loading, the largest/most colorful image is loaded as the
<var>Bitmap</var> property, and so can be handled as any other bitmap.
</p>
</descr>
<errors>
Writing to icon files is not (yet) implemented.
</errors>
</element>
<element name="TIcon.GetIconHandle">
<short>Gets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TIcon.Handle"/>
</seealso>
</element>
<element name="TIcon.GetIconHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TIcon.SetIconHandle">
<short>Sets the value for the Handle property.</short>
<descr/>
<seealso>
<link id="TIcon.Handle"/>
</seealso>
</element>
<element name="TIcon.SetIconHandle.AValue">
<short>New value for the property.</short>
</element>
<element link="#lcl.graphics.TCustomIcon.GetStreamSignature" name="TIcon.GetStreamSignature"/>
<element link="#lcl.graphics.TCustomIcon.GetStreamSignature.Result" name="TIcon.GetStreamSignature.Result"/>
<element link="#lcl.graphics.TCustomIcon.GetTypeID" name="TIcon.GetTypeID"/>
<element link="#lcl.graphics.TCustomIcon.GetTypeID.Result" name="TIcon.GetTypeID.Result"/>
<element name="TIcon.HandleNeeded">
<short>Ensures that handle values for the icon are valid.</short>
<descr>
<p>
Ensures that Handle values are valid for the icon. Configures the values in
IconInfo with the BitmapHandle and MaskHandle for the class instance. Calls
CreateIconIndirect for the widgetset to get the Handle used for the shared
image in the icon.
</p>
<p>
No actions are performed in the method when the Handle for the shared icon
image has already been assigned.
</p>
</descr>
<seealso>
<link id="TIcon.Handle"/>
<link id="TRasterImage.BitmapHandle"/>
<link id="TRasterImage.MaskHandle"/>
<link id="TRasterImage.HandleNeeded"/>
</seealso>
</element>
<!-- TODO: Needs description. -->
<element name="TIcon.LoadFromResourceHandle">
<short>
Loads icon data from the specified instance and resource handles.
</short>
<descr/>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="TCustomIcon.LoadFromResourceHandle"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TIcon.LoadFromResourceHandle.Instance">
<short>Handle with the resource data loaded in the method.</short>
</element>
<element name="TIcon.LoadFromResourceHandle.ResHandle">
<short>Resource handle with the icon data loaded in the method.</short>
</element>
<!-- TODO: Needs description. -->
<element name="TIcon.ReleaseHandle">
<short>Frees the Handle used for the Icon.</short>
<descr/>
<seealso/>
</element>
<element name="TIcon.ReleaseHandle.Result">
<short>HICON value removed from the handle in the class instance.</short>
</element>
<element name="TIcon.GetResourceType">
<short>Gets the Integer Resource Type for the class instance.</short>
<descr>
<p>
GetResourceType is an overridden TResourceType function in TIcon.
It is used to get the resource type identifier for the class instance. It
identifies the storage format used for graphic data in a resource.
</p>
<p>
The return value is RT_GROUP_ICON in TIcon.
</p>
</descr>
<seealso>
<link id="TGraphic.GetResourceType"/>
</seealso>
</element>
<element name="TIcon.GetResourceType.Result">
<short>Resource type used for the icon image type.</short>
</element>
<element name="TIcon.Handle">
<short>
Handle used to access the image data for the icon.
</short>
<descr>
<p>
<var>Handle</var> is a <var>HICON</var> property which contains the handle
for the icon used to access its image data. The property value is provided by
the inherited GetHandle method, and contains the handle for its
TSharedRasterImage instance.
</p>
<p>
Setting a new value for the property causes the previous handle and the
canvas device context to be freed. The previous image is cleared and unshared
as well.
</p>
<p>
The inherited UpdateHandle method is called to apply the new handle to the
shared image, and to load its icon data.
</p>
</descr>
<seealso>
<link id="TCustomIcon.SetHandle"/>
<link id="TCustomIcon.UpdateHandle"/>
<link id="TRasterImage.GetHandle"/>
<link id="TSharedRasterImage.HandleAllocated"/>
</seealso>
</element>
<!-- .ICNS is the Apple icon image format used in macOS. -->
<element name="TIcnsRec">
<short>
Record type with the icon type and raw image data for a TIcnsIcon instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsRec.IconType">
<short>
TIcnsIconType value for the icon data, mask, or alpha channel used in the raw
image.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsRec.RawImage">
<short>
Contains the TRawImage instance with the data for an icon image.
</short>
<descr/>
<seealso/>
</element>
<element name="PIcnsRec">
<short>Pointer to a TIcnsRec instance.</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsList">
<short>Implements a list used to maintain TIcnsIcon instances.</short>
<descr>
<p>
<var>TIcnsList</var> is a <var>TList</var> descendant which implements a list
used to create, store, and maintain TIcnsIcon instances. It provides indexed
access to the icons using the <var>Items</var> property. It re-implements the
<var>Add</var> method to allow an icon instance to be created and stored
using the specified icon type and raw image data.
</p>
<p>
TIcnsList is the type used to implement storage for images and masks in
<var>TIcnsIcon</var>.
</p>
</descr>
<seealso>
<link id="TIcnsIcon"/>
<link id="#rtl.classes.TList">TList</link>
</seealso>
</element>
<element name="TIcnsList.GetItem">
<short/>
<descr/>
<seealso/>
</element>
<element name="TIcnsList.GetItem.Result">
<short/>
</element>
<element name="TIcnsList.GetItem.Index">
<short/>
</element>
<element name="TIcnsList.SetItem">
<short/>
<descr/>
<seealso/>
</element>
<element name="TIcnsList.SetItem.Index">
<short/>
</element>
<element name="TIcnsList.SetItem.AValue">
<short/>
</element>
<element name="TIcnsList.Notify">
<short>
Handles the notification when an icon image is added to or removed from the
list.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsList.Notify.Ptr">
<short>
Pointer to the TIcnsRec with the icon type and raw image data for the
notification.
</short>
</element>
<element name="TIcnsList.Notify.Action">
<short>
Action performed for the icon image.
</short>
</element>
<element name="TIcnsList.Add">
<short>
Creates and stores a entry in the list for the specified icon type and raw
image.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsList.Add.Result">
<short>Ordinal position in the list where the new entry was stored.</short>
</element>
<element name="TIcnsList.Add.AIconType">
<short>
Type for the image data, mask, or alpha channel image in the raw data.
</short>
</element>
<element name="TIcnsList.Add.ARawImage">
<short>Raw image instance added to the container.</short>
</element>
<element name="TIcnsList.Items">
<short>
Provides indexed access to the icon images in the list by their ordinal
position.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsList.Items.Index">
<short>Ordinal position in the list for the property value.</short>
</element>
<element name="TSharedIcnsIcon">
<short>Declares the shared icon for the TIcnsIcon type.</short>
<descr/>
<seealso>
<link id="TSharedIcon"/>
</seealso>
</element>
<element name="TIcnsIcon">
<short>Implements a macOS Icon Resource file.</short>
<descr>
<p>
<var>TIcnsIcon</var> is a <var>TCustomIcon</var> descendant which implements
a class used for macOS Icon resources. TIcnsIcon is similar to the .ICO
format used on Windows platforms. An Icns Icon can store one or more images,
which generally use the PNG image format. Standard icon sizes used in Icns
Icon files include: 16x16, 32x32, 48x48, 128x128, 256x256, 512x512, and
1024x1024 pixels.
</p>
</descr>
<seealso>
<link id="TCustomIcon"/>
</seealso>
</element>
<!-- private -->
<element name="TIcnsIcon.FImageList"/>
<element name="TIcnsIcon.FMaskList"/>
<element name="TIcnsIcon.IcnsAdd">
<short/>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.IcnsAdd.AIconType">
<short/>
</element>
<element name="TIcnsIcon.IcnsAdd.ARawImage">
<short/>
</element>
<element name="TIcnsIcon.IcnsProcess">
<short/>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.GetSharedImageClass">
<short>
Gets the class reference used to create the shared image for the icon.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.GetSharedImageClass.Result">
<short/>
</element>
<element name="TIcnsIcon.ReadData">
<short>
Reads icon data from the specified stream, and performs byte order conversion
when needed.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.ReadData.Stream">
<short/>
</element>
<element name="TIcnsIcon.ReadStream">
<short>
Reads each of the icon resources from the specified stream, and adds them to
the list of icon images.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.ReadStream.AStream">
<short/>
</element>
<element name="TIcnsIcon.ReadStream.ASize">
<short/>
</element>
<element name="TIcnsIcon.WriteStream">
<short>
Writes each of the icon resources in the list to the specified stream.
</short>
<descr>
<p>
Does not write icons using the JPEG2000 image format in the current LCL
version.
</p>
</descr>
<seealso/>
</element>
<element name="TIcnsIcon.WriteStream.AStream">
<short/>
</element>
<element name="TIcnsIcon.Create">
<short>Constructor for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.Destroy">
<short>Destructor for the class instance.</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.GetFileExtensions">
<short>Gets the file extension(s) used for the icon type.</short>
<descr/>
<seealso>
<link id="TCustomIcon.GetFileExtensions"/>
</seealso>
</element>
<element name="TIcnsIcon.GetFileExtensions.Result">
<short>Always returns 'icns' in TIcnsIcon.</short>
</element>
<element name="TIcnsIcon.LazarusResourceTypeValid">
<short>
Checks whether the specified Resource Type name is valid for the icon type.
</short>
<descr/>
<seealso/>
</element>
<element name="TIcnsIcon.LazarusResourceTypeValid.Result">
<short><b>True</b> when the uppercase value in ResourceType is 'ICNS'.</short>
</element>
<element name="TIcnsIcon.LazarusResourceTypeValid.ResourceType">
<short>Resource type name checked in the method.</short>
</element>
<element name="TSharedCursorImage">
<short>Implements a reference-counted shared image used for cursors.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedCursorImage.FreeHandle">
<short>Frees the handle for the cursor image.</short>
<descr/>
<seealso>
<link id="TSharedImage.FreeHandle"/>
</seealso>
</element>
<element name="TSharedCursorImage.GetImagesClass">
<short>
Gets the class reference used to create a new cursor image in the Images
property.
</short>
<descr/>
<seealso>
<link id="TSharedIcon.GetImagesClass"/>
</seealso>
</element>
<element name="TSharedCursorImage.GetImagesClass.Result">
<short>
Class reference used to create images in the shared cursor image list.
</short>
</element>
<element name="TCursorImageImage">
<short>Implements the image for a cursor, stored as an Icon.</short>
<descr>
<p>
Provides a <var>HotSpot</var> property with the coordinates in the cursor
that is the point that interacts with other elements on the screen.
</p>
</descr>
<seealso>
<link id="TIconImage"/>
</seealso>
</element>
<!-- private -->
<element name="TCursorImageImage.FHotSpot"/>
<element name="TCursorImageImage.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Calls the inherited constructor on entry using the value in <var>AInfo</var>
as an argument. AInfo contains the coordinates that are assigned to the
<var>HotSpot</var> property.
</p>
</descr>
<seealso/>
</element>
<element name="TCursorImageImage.Create.AInfo">
<short>
TIconInfo instance with the hotspot information for the cursor image.
</short>
</element>
<element name="TCursorImageImage.HotSpot">
<short>
<var>HotSpot</var> - the coordinates of the point to which the cursor refers,
and which represents the 'active' position on the current form or canvas.
</short>
<descr/>
<seealso/>
</element>
<element name="TCursorImage">
<short>
<var>TCursorImage</var> - an Icon to be used to represent a cursor.
</short>
<descr/>
<seealso>
<link id="TCustomIcon"/>
</seealso>
</element>
<element name="TCursorImage.GetHotSpot">
<short>Gets the value for the HotSpot property.</short>
<descr/>
<seealso>
<link id="TCursorImage.HotSpot"/>
</seealso>
</element>
<element name="TCursorImage.GetHotSpot.Result">
<short>Value for the property.</short>
</element>
<element name="TCursorImage.GetCursorHandle">
<short>Gets the value for the CursorHandle property.</short>
<descr/>
<seealso>
<link id="TCursorImage.CursorHandle"/>
</seealso>
</element>
<element name="TCursorImage.GetCursorHandle.Result">
<short>Value for the property.</short>
</element>
<element name="TCursorImage.SetCursorHandle">
<short>Sets the value for the CursorHandle property.</short>
<descr/>
<seealso>
<link id="TCursorImage.CursorHandle"/>
</seealso>
</element>
<element name="TCursorImage.SetCursorHandle.AValue">
<short>New value for the property.</short>
</element>
<element link="#lcl.graphics.TRasterImage.HandleNeeded" name="TCursorImage.HandleNeeded">
<short/>
<descr/>
<seealso/>
</element>
<element link="#lcl.graphics.TCustomIcon.GetDefaultSize" name="TCursorImage.GetDefaultSize">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.GetDefaultSize.Result">
<short/>
</element>
<element link="#lcl.graphics.TCustomIcon.GetStreamSignature" name="TCursorImage.GetStreamSignature">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.GetStreamSignature.Result">
<short/>
</element>
<element link="#lcl.graphics.TRasterImage.GetSharedImageClass" name="TCursorImage.GetSharedImageClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.GetSharedImageClass.Result">
<short/>
</element>
<element link="#lcl.graphics.TCustomIcon.GetTypeID" name="TCursorImage.GetTypeID">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.GetTypeID.Result">
<short/>
</element>
<element link="#lcl.graphics.TGraphic.GetFileExtensions" name="TCursorImage.GetFileExtensions">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.GetFileExtensions.Result">
<short/>
</element>
<element name="TCursorImage.GetResourceType">
<short>Gets the resource type identifier for the cursor image.</short>
<descr>
<p>
Returns <var>RT_GROUP_CURSOR</var> in <var>TCursorImage</var>.
</p>
</descr>
<seealso>
<link id="#lcl.lcltype.RT_GROUP_CURSOR">RT_GROUP_CURSOR</link>
<link id="TGraphic.GetResourceType"/>
</seealso>
</element>
<element name="TCursorImage.GetResourceType.Result">
<short/>
</element>
<!-- TODO: Needs content. -->
<element name="TCursorImage.LoadFromResourceHandle">
<short/>
<descr/>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="TCustomIcon.LoadFromResourceHandle"/>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="TCursorImage.LoadFromResourceHandle.Instance">
<short>
Handle for the resource instance with the cursor image.
</short>
</element>
<element name="TCursorImage.LoadFromResourceHandle.ResHandle">
<short>
Handle for the resource entry with the cursor image.
</short>
</element>
<element link="#lcl.graphics.TGraphic.LazarusResourceTypeValid" name="TCursorImage.LazarusResourceTypeValid">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.LazarusResourceTypeValid.Result">
<short/>
</element>
<element name="TCursorImage.LazarusResourceTypeValid.ResourceType">
<short/>
</element>
<element name="TCursorImage.ReleaseHandle">
<short>
<var>ReleaseHandle</var> - free the handle used for the cursor Image.
</short>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.ReleaseHandle.Result">
<short/>
</element>
<element name="TCursorImage.SetCenterHotSpot">
<short>
Updates the HotSpot coordinate to the center point for the Current image in
the cursor.
</short>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.HotSpot">
<short>
<var>HotSpot</var> - the coordinates of the point to which the cursor refers,
and which represents the 'active' position on the current form or canvas.
</short>
<descr/>
<seealso/>
</element>
<element name="TCursorImage.Handle">
<short>Handle for the cursor image.</short>
<descr>
<p>
<var>Handle</var> is a <var>HCURSOR</var> property in
<var>TCursorImage</var>, and contains the handle used to identify the cursor
image. The value for the property is provided by the <var>GetHandle</var>
method.
</p>
<p>
Setting a new value for Handle causes the device context in <var>Canvas</var>
to be freed, and the shared image for the icon is cleared. The
<var>UpdateHandle</var> method is called to update the shared image using the
new value for the property. If the shared icon contains image data, the value
in <var>Current</var> is set to <b>0</b> (the first image in the internal
list of images). Otherwise, Current is set to <b>-1</b>.
</p>
<p>
<var>Changed</var> is called to re-create the internal save stream for the
shared image and signal the <var>OnChange</var> event handler (when assigned).
</p>
</descr>
<seealso/>
</element>
<element name="TSharedJpegImage">
<short>
<var>TSharedJpegImage</var> - a reference counted shared image of type JPEG.
</short>
<descr/>
<seealso>
<link id="TSharedCustomBitmap"/>
</seealso>
</element>
<element name="TJPEGQualityRange">
<short>Represents JPEG compression quality values.</short>
<descr>
<p>
<var>TJPEGQualityRange</var> is an alias to the
<var>TFPJPEGCompressionQuality</var> type defined in the FCL.
TJPEGQualityRange is the type used to implement the
<var>CompressionQuality</var> property in <var>TJPEGImage</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TJPEGPerformance">
<short>Represents JPEG read performance setting values.</short>
<descr>
<p>
<var>TJPEGPerformance</var> is an alias to the
<var>TJPEGReadPerformance</var> type defined in the FCL. TJPEGPerformance is
the type used to implement the <var>Performance</var> property in
<var>TJpegImage</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TJPEGImage">
<short>
<var>TJPEGImage</var> - a class for handling images stored in JPEG
(compressed) format.
</short>
<descr>
<p>
<var>TJPEGImage</var> is a <var>TFPImageBitmap</var> descendant which
implements support for the <b>JPEG</b> (<b>Joint Photographic Experts
Group</b>) image format. JPEG images are commonly used for storing digital
photographs. They can represent detailed color photos using a high degree of
compression, resulting in very efficient storage, though with some loss of
quality.
</p>
<p>
JPEG image files normally have a file extension like: <b>jpeg, jpg, jpe, or
jfif</b>.
</p>
<p>
The <var>CompressionQuality</var> and <var>Performance</var> properties can
be used to set the balance between storage efficiency and picture quality.
CompressionQuality is an Integer value between 1 and 100, with 100
representing the best quality. Performance is an enumerated variable with two
states: <var>BestQuality</var> or <var>BestSpeed</var> (for compression).
</p>
</descr>
<seealso>
<link id="TFPImageBitmap"/>
</seealso>
</element>
<!-- private -->
<element name="TJPEGImage.FGrayScale"/>
<element name="TJPEGImage.FMinHeight"/>
<element name="TJPEGImage.FMinWidth"/>
<element name="TJPEGImage.FPerformance"/>
<element name="TJPEGImage.FProgressiveEncoding"/>
<element name="TJPEGImage.FQuality"/>
<element name="TJPEGImage.FScale"/>
<element name="TJPEGImage.FSmoothing"/>
<element name="TJPEGImage.SetCompressionQuality">
<short>Sets the value for the CompressionQuality property.</short>
<descr/>
<seealso>
<link id="TJPEGImage.CompressionQuality"/>
</seealso>
</element>
<element name="TJPEGImage.SetCompressionQuality.AValue">
<short>New value for the property.</short>
</element>
<element name="TJPEGImage.SetGrayScale">
<short>Sets the value for the GrayScale property.</short>
<descr/>
<seealso>
<link id="TJPEGImage.GrayScale"/>
</seealso>
</element>
<element name="TJPEGImage.SetGrayScale.AValue">
<short>New value for the property.</short>
</element>
<element name="TJPEGImage.SetProgressiveEncoding">
<short>Sets the value for the ProgressiveEncoding property.</short>
<descr/>
<seealso>
<link id="TJPEGImage.ProgressiveEncoding"/>
</seealso>
</element>
<element name="TJPEGImage.SetProgressiveEncoding.AValue">
<short>New value for the property.</short>
</element>
<element name="TJPEGImage.InitializeReader">
<short>Initializes the FCL-compatible image reader for the image type.</short>
<descr>
<p>
<var>InitializeReader</var> is an overridden method used transfer property
values specific to the JPEG image in <var>AImage</var> to the
<var>TFPCustomImageReader</var> class instance in <var>AReader</var>. The
following property values are stored to the corresponding properties in
AReader:
</p>
<ul>
<li>MinHeight</li>
<li>MinWidth</li>
<li>Performance</li>
<li>Scale</li>
<li>Smoothing</li>
</ul>
</descr>
<seealso/>
</element>
<element name="TJPEGImage.InitializeReader.AImage">
<short>Image with values used to configure the reader class.</short>
</element>
<element name="TJPEGImage.InitializeReader.AReader">
<short>FCL-compatible image reader class updated in the method.</short>
</element>
<element name="TJPEGImage.InitializeWriter">
<short>Initializes the FCL-compatible Image Writer for the image type.</short>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.InitializeWriter.AImage">
<short>Image with values used to configure the writer class.</short>
</element>
<element name="TJPEGImage.InitialWriter.AWriter">
<short>FCL-compatible image writer class updated in the method.</short>
</element>
<element name="TJPEGImage.FinalizeReader">
<short>Finalizes the FCL Image reader.</short>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.FinalizeReader.AReader">
<short>FCL-compatible image reader examined in the method.</short>
</element>
<element link="#lcl.graphics.TFPImageBitmap.GetReaderClass" name="TJPEGImage.GetReaderClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.GetReaderClass.Result">
<short/>
</element>
<element link="#lcl.graphics.TFPImageBitmap.GetWriterClass" name="TJPEGImage.GetWriterClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.GetWriterClass.Result">
<short/>
</element>
<element link="#lcl.graphics.TRasterImage.GetSharedImageClass" name="TJPEGImage.GetSharedImageClass">
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.GetSharedImageClass.Result">
<short/>
</element>
<element name="TJPEGImage.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the TJpegImage class
instance, and calls the inherited constructor on entry. Creates sets the
default values for properties, including:
</p>
<dl>
<dt>Performance</dt>
<dd>Set to jpBestQuality.</dd>
<dt>ProgressiveEncoding</dt>
<dd>Set to <b>False</b>.</dd>
<dt>GrayScale</dt>
<dd>Set to <b>False</b>.</dd>
<dt>Quality</dt>
<dd>Set to 75.</dd>
</dl>
</descr>
<seealso>
<link id="TCustomBitmap.Create">TCustomBitmap.Create</link>
</seealso>
</element>
<element name="TJpegImage.Compress">
<short>
Applies compression settings in the class instance to the image data.
</short>
<descr/>
<seealso>
<link id="TRasterImage.SaveToStream"/>
<link id="TRasterImage.LoadFromStream"/>
</seealso>
</element>
<element name="TJPEGImage.IsStreamFormatSupported">
<short>
Indicates if the stream contains a format supported for the image type.
</short>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.IsStreamFormatSupported.Result">
<short>
<b>True</b> when Stream contains a valid image format for the image type.
</short>
</element>
<element name="TJPEGImage.IsStreamFormatSupported.Stream">
<short>TStream instance examined in the method.</short>
</element>
<element name="TJPEGImage.GetFileExtensions">
<short>Gets the file extension(s) supported for the image format.</short>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.GetFileExtensions.Result">
<short>Delimited list of file extensions supported for the image type.</short>
</element>
<element name="TJPEGImage.CompressionQuality">
<short>Determine the compression quality for the image data.</short>
<descr>
<p>
Extreme compression can lead to loss of quality at the expense of a small
file size.
</p>
<p>
The allowed range is <b>1..100</b>, where <b>100</b> is <b>best quality</b>,
and <b>25</b> is <b>pretty awful</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TJPEGImage.GrayScale">
<short>Indicates if the image contains grayscale image data.</short>
<descr/>
<seealso/>
</element>
<element name="TJpegImage.MinHeight">
<short>
Minimum height allowed for the image when read using an FCL image reader.
</short>
<descr/>
<seealso/>
</element>
<element name="TJpegImage.MinWidth">
<short>
Minimum width allowed for the image when read using an FCL image reader.
</short>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.ProgressiveEncoding">
<short>Indicates if progressive encoding is used for the image data.</short>
<descr/>
<seealso/>
</element>
<element name="TJPEGImage.Performance">
<short>Set for best quality or best speed.</short>
<descr/>
<seealso/>
</element>
<element name="TJpegImage.Scale">
<short>A predefined scaling value applied to the image data.</short>
<descr>
<p>
<var>Scale</var> is a <var>TJPEGScale</var> property which contains one of
the predefined scaling values applied to the raw image data. For instance:
</p>
<dl>
<dt>jsFullSize</dt>
<dd>Image is not scaled.</dd>
<dt>jsHalf</dt>
<dd>Image is scaled to one-half of its width and height.</dd>
<dt>jsQuarter</dt>
<dd>Image is scaled to one-quarter of its width and height.</dd>
<dt>jsEighth</dt>
<dd>Image is scaled to one-eighth of its width and height.</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TJpegImage.Smoothing">
<short>Indicates if smoothing is applied to the raw image data.</short>
<descr>
<p>
<var>Smoothing</var> is a <var>Boolean</var> property which indicates if
smoothing is applied to raw data in the image. Smoothing uses a low pass
filter to remove high spatial frequency noise from a digital image.
</p>
<p>
The value in Smoothing is used in the <var>InitializeReader</var> method to
configure the image reader used to load the raw image data. Set the value in
Smoothing prior to calling methods which load the image content using an
FCL-compatible image reader.
</p>
</descr>
<seealso/>
</element>
<element name="TSharedTiffImage">
<short>Declares the shared image for the TTiffImage type.</short>
<descr/>
<seealso>
<link id="TSharedCustomBitmap"/>
</seealso>
</element>
<element name="TTiffUnit">
<short>Represents units of measure used in TIFF image data.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffUnit.tuUnknown">
<short>Unit of measurement is unknown.</short>
</element>
<element name="TTiffUnit.tuNone">
<short>No absolute unit of measurement.
</short>
<descr>
<p>
Used for images that may have a non-square aspect ratio, but no meaningful
absolute dimensions.
</p>
</descr>
</element>
<element name="TTiffUnit.tuInch">
<short>Unit of measure is Inches.</short>
</element>
<element name="TTiffUnit.tuCentimeter">
<short>Unit of measure is Centimeters.</short>
</element>
<element name="TTiffImage">
<short>
Implements support for the TIFF (Tag Image File Format) graphic format.
</short>
<descr>
<p>
TTiffImage is a TFPImageBitmap descendant which implements support for the
<b>TIFF</b> (<b>Tag Image File Format</b>) image format.
</p>
<p>
It is a raster graphics image format. TIFF is widely supported by scanning,
faxing, word processing, optical character recognition, image manipulation,
desktop publishing, and page-layout applications. TIFF was created for use as
a common image format for scanners. Various revisions to the specification
have added grayscale and color support to the image format. It is a popular
format for deep-color images.
</p>
<p>
TIFF images use .TIF or .TIFF file extensions, and the MIME types 'image/TIF'
or 'image/TIFF'.
</p>
<p>
TTiffImage implements the class methods from the ancestor class which get FCL
TFPCustomImageReaderClass and TFPCustomImageWriterClass instances, as well as
the shared graphics class instance for the image format.
</p>
<p>
TTiffImage has properties which expose values for Baseline Tags in the image
data, including:
</p>
<ul>
<li>Artist</li>
<li>Copyright</li>
<li>DateTime</li>
<li>DocumentName</li>
<li>HostComputer</li>
<li>ImageDescription</li>
<li>Make</li>
<li>Model</li>
<li>ResolutionUnit</li>
<li>Software</li>
<li>XResolution</li>
<li>YResolution</li>
</ul>
</descr>
<seealso>
<link id="TFPImageBitmap"/>
</seealso>
</element>
<!-- private -->
<element name="TTiffImage.FArtist"/>
<element name="TTiffImage.FCopyright"/>
<element name="TTiffImage.FDateTime"/>
<element name="TTiffImage.FDocumentName"/>
<element name="TTiffImage.FHostComputer"/>
<element name="TTiffImage.FImageDescription"/>
<element name="TTiffImage.FMake">
<short>Scanner manufacturer or brand.</short>
</element>
<element name="TTiffImage.FModel">
<short>Scanner model.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.FResolutionUnit"/>
<element name="TTiffImage.FSoftware"/>
<element name="TTiffImage.FXResolution"/>
<element name="TTiffImage.FYResolution"/>
<element name="TTiffImage.InitializeReader">
<short>Initializes the FCL-compatible image reader for the image.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.InitializeReader.AImage">
<short/>
</element>
<element name="TTiffImage.InitializeReader.AReader">
<short/>
</element>
<element name="TTiffImage.InitializeWriter">
<short>Initializes the FCL-compatible image writer for the image.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.InitializeWriter.AImage">
<short/>
</element>
<element name="TTiffImage.InitializeWriter.AWriter">
<short/>
</element>
<element name="TTiffImage.FinalizeReader">
<short>Captures values from the image reader after loading an image.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.FinalizeReader.AReader">
<short/>
</element>
<element name="TTiffImage.GetReaderClass" link="#lcl.graphics.TFPImageBitmap.GetReaderClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.GetReaderClass.Result">
<short/>
</element>
<element name="TTiffImage.GetWriterClass" link="#lcl.graphics.TFPImageBitmap.GetWriterClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.GetWriterClass.Result">
<short/>
</element>
<element name="TTiffImage.GetSharedImageClass" link="#lcl.graphics.TRasterImage.GetSharedImageClass">
<short/>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.GetSharedImageClass.Result">
<short/>
</element>
<element name="TTiffImage.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 constructor on entry. Create sets the default value for
the
<var>Title</var> property to include the class name, the LCL version, and the
FPC version.
</p>
</descr>
<seealso/>
</element>
<element name="TTiffImage.GetFileExtensions">
<short>
Gets the delimited list of file extension(s) for files which support the
image format.
</short>
<descr>
<p>
In TTiffImage, the return value is: 'tif;tiff'.
</p>
</descr>
<seealso/>
</element>
<element name="TTiffImage.GetFileExtensions.Result">
<short/>
</element>
<element name="TTiffImage.Artist">
<short>Person who created the image.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.Copyright">
<short>Copyright notice for the image.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.DateTime">
<short>Date and time the image was created.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.DocumentName">
<short>Name of the document from which the image was scanned.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.HostComputer">
<short>
The computer and/or operating system where the image was created.
</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.ImageDescription">
<short>A string that describes the subject of the image.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.Make">
<short>The scanner manufacturer.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.Model">
<short>The scanner model name or number.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.ResolutionUnit">
<short>The unit of measurement for XResolution and YResolution.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.Software">
<short>
Name and version number for the software used to create the image.
</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.XResolution">
<short>Number of pixels in ResolutionUnits for the image width.</short>
<descr/>
<seealso/>
</element>
<element name="TTiffImage.YResolution">
<short>Number of pixels in ResolutionUnits for the image height.</short>
<descr/>
<seealso/>
</element>
<element name="TSharedGIFImage">
<short>Implements a reference-counted shared GIF image.</short>
<descr/>
<seealso>
<link id="TGIFImage"/>
<link id="TSharedCustomBitmap"/>
</seealso>
</element>
<element name="TGIFImage">
<short>
Implements an image using the GIF (Graphics Interchange Format) image format.
</short>
<descr>
<p>
<var>TGIFImage</var> is a <var>TFPImageBitmap</var> descendant which
implements support for the <b>GIF</b> (<b>Graphics Interchange Format</b>)
image format. GIF images support up to 8 bits per pixel in the image data,
and a color palette of up to 256 colors from the 24-bit RGB color space.
While GIF images allow animation, the LCL implementation does not support the
feature.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap"/>
</seealso>
</element>
<!-- private -->
<element name="TGIFImage.FTransparent"/>
<element name="TGIFImage.FInterlaced"/>
<element name="TGIFImage.FBitsPerPixel"/>
<element link="#lcl.graphics.TFPImageBitmap.InitializeReader" name="TGIFImage.InitializeReader">
<short/>
<descr/>
<seealso/>
</element>
<element name="TGIFImage.InitializeReader.AImage">
<short/>
</element>
<element name="TGIFImage.InitializeReader.AReader">
<short/>
</element>
<element name="TGIFImage.FinalizeReader">
<short>
Updates the image when the reader has finished loading the image content.
</short>
<descr>
<p>
Ensures that image properties discovered using the reader class are applied
to the properties in the GIF image.
</p>
<p>
Calls the inherited method on entry. Copies values found in AReader to the
following properties:
</p>
<ul>
<li>Transparent</li>
<li>Interlaced</li>
<li>BitsPerPixel</li>
</ul>
<p>
<var>FinalizeReader</var> is called from the <var>ReadStream</var> method
when the reader class has loaded the image content into a TLazIntfImage
instance.
</p>
</descr>
<seealso>
<link id="TFPImageBitmap.FinalizeReader"/>
</seealso>
</element>
<element name="TGIFImage.FinalizeReader.AReader">
<short>FCL-compatible reader for the image type.</short>
</element>
<element name="TGIFImage.GetReaderClass" link="#lcl.graphics.TFPImageBitmap.GetReaderClass">
<short/>
<descr/>
<seealso>
<link id="TFPImageBitmap.GetReaderClass"/>
</seealso>
</element>
<element name="TGIFImage.GetReaderClass.Result">
<short/>
</element>
<element name="TGIFImage.GetSharedImageClass">
<short>
Gets the class reference used to create the shared image in new class
instances.
</short>
<descr/>
<seealso/>
</element>
<element name="TGIFImage.GetSharedImageClass.Result">
<short/>
</element>
<element name="TGIFImage.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>Calls the inherited constructor on entry.
</p>
</descr>
<seealso/>
</element>
<element name="TGIFImage.IsStreamFormatSupported">
<short>
Determines if the specified Stream contains a valid GIF image format.
</short>
<descr/>
<seealso/>
</element>
<element name="TGIFImage.IsStreamFormatSupported.Result">
<short>
<b>True</b> when the stream contains the GIF87a or GIF89a signature.
</short>
</element>
<element name="TGIFImage.IsStreamFormatSupported.Stream">
<short>TStream instance with values examined in the method.</short>
</element>
<element name="TGIFImage.GetFileExtensions">
<short>Gets the file extensions used for the GIF image format.</short>
<descr/>
<seealso/>
</element>
<element name="TGIFImage.GetFileExtensions.Result">
<short>Returns the value 'gif'</short>
</element>
<element name="TGIFImage.Transparent">
<short>Indicates if the image is drawn with transparent pixels.</short>
<descr/>
<seealso/>
</element>
<element name="TGIFImage.Interlaced">
<short>
Indicates if the image uses the "venetian blind" effect during display.
</short>
<descr/>
<seealso/>
</element>
<element name="TGIFImage.BitsPerPixel">
<short>Number of bits needed to represent a pixel in the image.</short>
<descr>
<p>
BitsPerPixel indicates the color depth (or maximum number of colors) that can
be represented in the image data.
</p>
</descr>
<seealso/>
</element>
<element name="GraphicFilter">
<short>
Gets a filter string for files using the specified graphic class type.
</short>
<descr>
<p>
<var>GraphicFilter</var> is a <var>String</var> function used to get a filter
value for image files compatible with the graphics class type specified in
<var>GraphicClass</var>. The return value contains a description of the graphic
class and one or more file masks which represent files for the specified type.
</p>
<p>
GraphicClass is a TGraphicClass type which identifies the image class type for
the requested filter value. It can be one of the graphic classes like TBitmap,
TCursorImage, TIcon, TPNGImage, TJPEGImage, et. al. If TGraphic is passed in
the argument, a list with filters for all of the registered image formats is
returned.
</p>
<p>
For example:
</p>
<code>sFilter := GraphicFilter(TJpegImage);</code>
<p>
Returns:
</p>
<code>JPEG Files (*.jpeg;*.jpg;*.jpe;*.jfif)|*.jpeg;*.jpg;*.jpe;*.jfif</code>
<p>
While:
</p>
<code>sFilter := GraphicFilter(TGraphic);</code>
<p>
Returns:
</p>
<code>
Graphic (*.png;*.xpm;*.bmp;*.cur;*.ico;*.icns;*.jpeg;*.jpg;*.jpe;*.jfif;*.tif;*.
tiff;*.gif;*.pbm;*.pgm;*.ppm)|*.png;*.xpm;*.bmp;*.cur;*.ico;*.icns;*.jpeg;*.jpg;
*.jpe;*.jfif;*.tif;*.tiff;*.gif;*.pbm;*.pgm;*.ppm|
PNG Files (*.png)|*.png|
Pixmap Files (*.xpm)|*.xpm|
Bitmap Files (*.bmp)|*.bmp|
Cursor Files (*.cur)|*.cur|
Icon Files (*.ico)|*.ico|
macOS Icon Files (*.icns)|*.icns|
JPEG Files (*.jpeg;*.jpg;*.jpe;*.jfif)|*.jpeg;*.jpg;*.jpe;*.jfif|
Tagged Image File Format Files (*.tif;*.tiff)|*.tif;*.tiff|
Graphics Interchange Format Files (*.gif)|*.gif|
Portable Pixmap Files (*.pbm;*.pgm;*.ppm)|*.pbm;*.pgm;*.ppm
</code>
<remark>
Formatted for readability; the return value is a string without line breaks.
Content depends on the images types supported on a given platform.
</remark>
<p>
The return value can be used to set the Filter property in dialogs like
TFileDialog, TOpenDialog, and TSaveDialog. It contains localized description(s)
for the graphic class(es) and a delimited list of file mask(s) compatible with
the class type(s).
</p>
<p>
Use GraphicFileMask to get a delimited list of file masks for a graphic class
type without the descriptive text.
</p>
<p>
Use GraphicExtension to get a single file extension (without the leading '.')
for a graphic class type.
</p>
</descr>
<seealso>
<link id="TGraphic"/>
<link id="TGraphicClass"/>
<link id="TIcon"/>
<link id="TIcnsIcon"/>
<link id="TCursorImage"/>
<link id="TBitmap"/>
<link id="TJpegImage"/>
<link id="TPortableNetworkGraphic"/>
<link id="TPortableAnyMapGraphic"/>
<link id="TPixmap"/>
<link id="TTiffImage"/>
<link id="TGifImage"/>
<link id="#lcl.dialogs.TFileDialog.Filter">TFileDialog.Filter</link>
</seealso>
</element>
<element name="GraphicFilter.Result">
<short>
String with a filter value compatible with file dialogs.
</short>
</element>
<element name="GraphicFilter.GraphicClass">
<short>
TGraphic class or descendant for the requested filter value.
</short>
</element>
<element name="GraphicExtension">
<short>
Gets a string with the file extension used for the specified graphic class type.
</short>
<descr>
<p>
Calls <var>GetPicFileFormats</var> to get the list which maps TGraphicClass
(or descendent) references to a file extension.
</p>
<p>
GraphicExtension iterates over the values in the mapping list in reverse
order, and compares the class name for the list item to the class name in
<var>GraphicClass</var>. When a match is found, the <var>GetFormatExt</var>
method for the item is called to get the return value for the function.
</p>
<p>
The return value is an empty string (<b>''</b>) when a mapping for
GraphicClass is not found in the list.
</p>
</descr>
</element>
<seealso>
<link id="TGraphic"/>
<link id="TGraphicClass"/>
<link id="TIcon"/>
<link id="TIcnsIcon"/>
<link id="TCursorImage"/>
<link id="TBitmap"/>
<link id="TJpegImage"/>
<link id="TPortableNetworkGraphic"/>
<link id="TPortableAnyMapGraphic"/>
<link id="TPixmap"/>
<link id="TTiffImage"/>
<link id="TGifImage"/>
<link id="GraphicFilter"/>
<link id="GraphicFileMask"/>
</seealso>
<element name="GraphicExtension.Result">
<short>File extension for the image type.</short>
</element>
<element name="GraphicExtension.GraphicClass">
<short>Graphic class used to determine the file extension.</short>
</element>
<element name="GraphicFileMask">
<short>
Gets one or more file masks which can be used to select image files for the
specified TGraphicClass instance.
</short>
<descr>
<p>
<var>GraphicFileMask</var> is a <var>String</var> function used to get a list
of file mask(s) which can be used for files compatible with the specified
graphics class.
</p>
<p>
<var>GraphicClass</var> is the TGraphicClass instance with the TGraphic
descendant requested in the routine. It can contain one of the graphic classes
like TBitmap, TCursorImage, TIcon, TPNGImage, TJPEGImage, et. al. If TGraphic
is passed in the argument, a list with file masks for all of the registered
image formats is returned. File masks are separated by the ';' delimiter.
</p>
<p>
For example:
</p>
<code>sMask := GraphicFileMask(TJpegImage);</code>
<p>
Returns:
</p>
<code>*.jpeg;*.jpg;*.jpe;*.jfif</code>
<p>
While:
</p>
<code>sMask := GraphicFileMask(TGraphic);</code>
<p>
Returns:
</p>
<code>
*.png;*.xpm;*.bmp;*.cur;*.ico;*.icns;*.jpeg;*.jpg;*.jpe;*.jfif;
*.tif;*.tiff;*.gif;*.pbm;*.pgm;*.ppm
</code>
<remark>
Formatted for readability; the return value is a string without line breaks.
Content depends on the images types supported on a given platform.
</remark>
<p>
Use GraphicFilter to get a filter value for graphic class type(s) which can be
assigned to the Filter property in a dialog.
</p>
<p>
Use GraphicExtension to get a single file extension (without the leading '.')
for a graphic class type.
</p>
</descr>
<seealso>
<link id="TGraphic"/>
<link id="TGraphicClass"/>
<link id="TIcon"/>
<link id="TIcnsIcon"/>
<link id="TCursorImage"/>
<link id="TBitmap"/>
<link id="TJpegImage"/>
<link id="TPortableNetworkGraphic"/>
<link id="TPortableAnyMapGraphic"/>
<link id="TPixmap"/>
<link id="TTiffImage"/>
<link id="TGifImage"/>
<link id="GraphicFilter"/>
<link id="GraphicExtension"/>
<link id="#lcl.dialogs.TFileDialog.Filter">TFileDialog.Filter</link>
</seealso>
</element>
<element name="GraphicFileMask.Result">
<short>
Delimited list of file masks for the graphics class, or an empty string when
the graphics class is not supported.
</short>
</element>
<element name="GraphicFileMask.GraphicClass">
<short>
TGraphicClass instance to locate in the registered graphic formats for the
platform.
</short>
</element>
<element name="GetGraphicClassForFileExtension">
<short>
Gets the TGraphicClass instance used for images with the specified file
extension.
</short>
<descr/>
<seealso/>
</element>
<element name="GetGraphicClassForFileExtension.Result">
<short>TGraphicClass descendant for the image format.</short>
</element>
<element name="GetGraphicClassForFileExtension.FileExt">
<short>
File extension used to determine the TGraphicClass for an image format.
</short>
</element>
<element name="TGetColorStringProc">
<short>
Specifies an object procedure used to process color value to color identifier
map entries.
</short>
<descr/>
<seealso>
<link id="GetColorValues"/>
</seealso>
</element>
<element name="TGetColorStringProc.s">
<short/>
</element>
<element name="IdentEntry">
<short>Checks whether a given Entry exists in a Map of color names.
</short>
<descr>
<p>
<var>IdentEntry</var> checks whether a given Entry exists in a Map of color
names.
</p>
<p>
A list of system <var>Colors</var> is specified as a look-up table of indices
(Entry) and names (MapEntry).
</p>
<p>
This function checks that the value in <var>Entry</var> is within the
permitted range, and returns the data pair <var>Value</var>, <var>Name</var>
of the corresponding color in <var>MapEntry</var>.
</p>
<p>
If <var>Entry</var> is out of range the Result is <b>False</b>.
</p>
</descr>
<errors>
If <var>Entry</var> is out of the range [0..High(colors)] the Result is
returned as <b>False</b>.
</errors>
<seealso/>
</element>
<element name="IdentEntry.Result">
<short>
<b>True</b> if <var>Entry</var> was a valid index into the color look-up
table.
</short>
</element>
<element name="IdentEntry.Entry">
<short>
<var>Entry</var> - a numeric index into the table of colors.</short>
</element>
<element name="IdentEntry.MapEntry">
<short>
<var>MapEntry</var> - the record of <var>Value</var>, <var>Name</var>
returned from the look-up table of <var>Colors</var>.
</short>
</element>
<element name="ColorToIdent">
<short>
ColorToIdent - given a Color value, find its name (<var>Ident</var>) in the
look-up table of <var>Colors</var>.
</short>
</element>
<element name="ColorToIdent.Result">
<short>
Returns <b>True</b> if there is a valid entry in the <var>Colors</var>
look-up table.
</short>
</element>
<element name="ColorToIdent.Color">
<short>the <var>Color</var> value to be sought in the look-up table.</short>
</element>
<element name="ColorToIdent.Ident">
<short>
<var>Ident</var> - the name of the supplied <var>Color</var> as found in the
look-up table of <var>Colors</var>.
</short>
</element>
<element name="IdentToColor">
<short>
<var>IdentToColor</var> - given a color identifier (name) returns the color
value.
</short>
<descr/>
<seealso/>
</element>
<element name="IdentToColor.Result">
<short>
Returns <b>True</b> if <var>Ident</var> is part of a valid entry in the
look-up table of <var>Colors</var>.
</short>
</element>
<element name="IdentToColor.Ident">
<short>
<var>Ident</var> - the supplied name for the required <var>Color</var>.
</short>
</element>
<element name="IdentToColor.Color">
<short>
The <var>Color</var> returned from the look-up table, with the name supplied
in <var>Ident</var>.
</short>
</element>
<element name="ColorIndex">
<short>
Finds the position in the color identifier map for the specified value.
</short>
<descr>
<p>
<var>ColorIndex</var> is a <var>Boolean</var> function used to determine if
the color value specified in <var>Color</var> exists in the color value to
name identifier map.
</p>
<p>
ColorIndex iterates over the values in the <var>Colors</var> constant to find
an element in the array with the value specified in Color. The position for
the value is assigned to the Index output parameter. The return value is
<b>True</b> when a value is located in Colors. Otherwise, the return value is
<b>False</b>. The value in Index is not significant when the return value is
<b>False</b>.
</p>
</descr>
<seealso>
<link id="IdentToColor"/>
<link id="ColorToIdent"/>
</seealso>
</element>
<element name="ColorIndex.Result">
<short><b>True</b> when the color value exists in Colors.</short>
</element>
<element name="ColorIndex.Color">
<short>Color value to locate in Colors.</short>
</element>
<element name="ColorIndex.Index">
<short>Position in Colors where the color value was found.</short>
</element>
<element name="SysColorToSysColorIndex">
<short>
<var>SysColorToSysColorIndex</var> - if <var>Color</var> is one of the system
colors, returns the <var>Index</var> of the system color.
</short>
<descr/>
<errors>
If <var>Color</var> is not a system color, returns -1.
</errors>
</element>
<element name="SysColorToSysColorIndex.Result">
<short>
Returns the Index value of the Color if it is a system color, otherwise
returns -1
</short>
</element>
<element name="SysColorToSysColorIndex.Color">
<short>The <var>Color</var> to examine in the routine.</short>
</element>
<element name="ColorToRGB">
<short>Converts a TColor value to an RGB color constant.</short>
<descr>
<p>
ColorToRGB ensures that TColor values for special and system colors remove
the non-RGB values in the constant.
</p>
</descr>
<seealso/>
</element>
<element name="ColorToRGB.Result">
<short>LongInt value representing the specified color.</short>
</element>
<element name="ColorToRGB.Color">
<short>TColor value converted in the method.</short>
</element>
<element name="ColorToString">
<short>
<var>ColorToString</var> - given a color value, returns a corresponding color
name like 'Green'
</short>
<descr/>
<seealso/>
</element>
<element name="ColorToString.Result">
<short>
Returns the name of the color, expressed as a string (like 'Green').
</short>
</element>
<element name="ColorToString.Color">
<short>The <var>Color</var> to examine in the routine.</short>
</element>
<element name="StringToColor">
<short>
<var>StringToColor</var> - given a color name like 'clBlue', returns the
corresponding color value.
</short>
<descr/>
<seealso/>
</element>
<element name="StringToColor.Result">
<short>Returns the color corresponding to the name in String <var>S</var>.
</short>
</element>
<element name="StringToColor.S">
<short>
<var>S</var> - the name of the required color, expressed as a string.
</short>
</element>
<element name="StringToColorDef">
<short>
Converts a color name, like "clBlue", to a TColor value with an optional
default value when the color name does not exist.
</short>
<descr/>
<seealso/>
</element>
<element name="StringToColorDef.Result">
<short/>
</element>
<element name="StringToColorDef.S">
<short/>
</element>
<element name="StringToColorDef.DefaultValue">
<short/>
</element>
<element name="GetColorValues">
<short>
Executes the specified procedure for each of the non-deprecated Color names
defined for the platform.
</short>
<descr/>
<seealso/>
</element>
<element name="GetColorValues.Proc">
<short/>
</element>
<element name="InvertColor">
<short>
<var>InvertColor</var> - returns the complementary color to the supplied
value - helps to produce a 'negative' image.
</short>
</element>
<element name="InvertColor.Result">
<short>
Returns the inverse of the original color (i.e. a 'negative' effect).
</short>
</element>
<element name="InvertColor.AColor">
<short>
<var>AColor</var> - the original color for processing.
</short>
</element>
<element name="DecColor">
<short>
Decreases the component RGB values in a color by the specified amount (results
in a darker color overall).
</short>
<descr>
<p>
<var>DecColor</var> separates the color specified in AColor into its Red,
Green, and Blue component Byte values. It decreases each the RGB Byte values by
the amount specified in AQuantity with a lower limit of 0 for each of the
Byte values. The modified RGB Byte values are reassembled using RGBToColor to
form the return value for the routine.
</p>
<p>
For example:
</p>
<code>
DkSkyBlue := DecColor(clSkyBlue, 32); // darken by 12.5%
DkKhaki := DecColor(TColor($8CE6F0), 40); // darken custom color
</code>
<p>
Use IncColor to increase (or lighten) the RGB component values in a color.
</p>
</descr>
<seealso>
<link id="RedGreenBlue"/>
<link id="RGBToColor"/>
<link id="IncColor"/>
</seealso>
</element>
<element name="DecColor.Result">
<short>
TColor value with RGB components decremented by the specified amount.
</short>
</element>
<element name="DecColor.AColor">
<short>
TColor value with the original color modified in the function.
</short>
</element>
<element name="DecColor.AQuantity">
<short>
The amount by which the separate RGB values in AColor are decreased.
</short>
</element>
<element name="IncColor">
<short>
Increases the component RGB values in a color by the specified amount (results
in a lighter color overall).
</short>
<descr>
<p>
<var>IncColor</var> separates the color specified in AColor into its Red,
Green, and Blue component Byte values. It increases each the RGB Byte values by
the amount specified in AQuantity with an upper limit of 255 for each of the
Byte values. The modified RGB Byte values are reassembled using RGBToColor to
form the return value for the routine.
</p>
<p>
For example:
</p>
<code>
AColor := IncColor(clNavy, 32); // lighten by 12.5%
</code>
<p>
Use DecColor to decrease (or darken) the RGB component values in a color.
</p>
</descr>
<seealso>
<link id="RedGreenBlue"/>
<link id="RGBToColor"/>
<link id="DecColor"/>
</seealso>
</element>
<element name="IncColor.Result">
<short>
TColor value with RGB components incremented by the specified amount.
</short>
</element>
<element name="IncColor.AColor">
<short>
TColor value with the original color modified in the function.
</short>
</element>
<element name="IncColor.AQuantity">
<short>
The amount by which the separate RGB values in AColor are increased.
</short>
</element>
<element name="IsSysColor">
<short>
Indicates whether the specified color reference is one of the system colors.
</short>
<descr>
<p>
Returns <b>True</b> when <var>AColor</var> has value greater than or equal to
the value in the <var>SYS_COLOR_BASE</var> constant.
</p>
</descr>
<seealso>
<link id="#lcl.lcltype.SYS_COLOR_BASE">SYS_COLOR_BASE</link>
</seealso>
</element>
<element name="IsSysColor.Result">
<short><b>True</b> when AColor is a system color.</short>
</element>
<element name="IsSysColor.AColor">
<short>TColorRef value examined in the routine.</short>
</element>
<element name="Blue">
<short>Finds the <var>Blue</var> component of the supplied color.</short>
<descr>
<p>
Does <b>not</b> work with system color values.
</p>
</descr>
<seealso/>
</element>
<element name="Blue.Result">
<short>Returns the Blue component of the color specified in RGB.</short>
</element>
<element name="Blue.rgb">
<short>The color for processing, expressed as a RGB value.</short>
</element>
<element name="Green">
<short>Finds the <var>Green</var> component of the supplied color.</short>
<descr>
<p>
Does <b>not</b> work with system color values.
</p>
</descr>
<seealso/>
</element>
<element name="Green.Result">
<short>Returns the Green component of the color specified in RGB.</short>
</element>
<element name="Green.rgb">
<short>The color for processing, expressed as RGB.</short>
</element>
<element name="Red">
<short>Finds the <var>Red</var> component of the supplied color.</short>
<descr>
<p>
Does <b>not</b> work with system color values.
</p>
</descr>
<seealso/>
</element>
<element name="Red.Result">
<short>Returns the Red component of the color specified in <var>RGB</var>.
</short>
</element>
<element name="Red.rgb">
<short>The color for processing, expressed as RGB.</short>
</element>
<element name="RGBToColor">
<short>Combines the values for Red, Green and Blue into a TColor value.
</short>
</element>
<element name="RGBToColor.Result">
<short>TColor value for the specified color components.</short>
</element>
<element name="RGBToColor.R">
<short>Byte with the Red color component.</short>
</element>
<element name="RGBToColor.G">
<short>Byte with the Green color component.</short>
</element>
<element name="RGBToColor.B">
<short>Byte with the Blue color component.</short>
</element>
<element name="RedGreenBlue">
<short>
<var>RedGreenBlue</var> - decomposes a composite color into its component
Red, Green and Blue values.
</short>
<descr>
<p>Does <b>not</b> work with system color values.
</p>
</descr>
<seealso/>
</element>
<element name="RedGreenBlue.rgb">
<short>The color for processing, expressed as RGB.</short>
</element>
<element name="RedGreenBlue.Red">
<short>The <var>Red</var> component of the color defined in <var>RGB</var>.
</short>
</element>
<element name="RedGreenBlue.Green">
<short>The <var>Green</var> component of the color defined in <var>RGB</var>.
</short>
</element>
<element name="RedGreenBlue.Blue">
<short>The <var>Blue</var> component of the color defined in <var>RGB</var>.
</short>
</element>
<element name="FPColorToTColorRef">
<short>Converts a TFPColor value to a Cardinal color reference used in API
system color constants.
</short>
<descr/>
<seealso/>
</element>
<element name="FPColorToTColorRef.Result">
<short/>
</element>
<element name="FPColorToTColorRef.FPColor">
<short/>
</element>
<element name="FPColorToTColor">
<short>
<var>FPColorToTColor</var> - converts a color specified as a
<var>FPColor</var> to a color of type
<var>TColor</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="FPColorToTColor.Result">
<short>Returns the color specified in <var>FPColor</var> as a color of type
<var>TColor</var>.
</short>
</element>
<element name="FPColorToTColor.FPColor">
<short>The color for processing, expressed as a <var>FPColor</var>.
</short>
</element>
<element name="TColorToFPColor">
<short>
<var>TColorToFPColor</var> - converts a color of type <var>TColor</var> to
one specified as a <var>FPColor</var>.
</short>
<descr>
<p>
Does <b>not</b> work with system color values.
</p>
</descr>
<seealso/>
</element>
<element name="TColorToFPColor.Result">
<short>Returns the color specified as a FPColor.</short>
</element>
<element name="TColorToFPColor.c">
<short>
<var>c</var> - the supplied color specified as type <var>TColor</var>.
</short>
</element>
<element name="GetCharsetValues">
<short>
Calls the specified procedure for each of the character set names in
FontCharsets.
</short>
<descr>
<p>
Not used in the current LCL implementation.
</p>
</descr>
<seealso/>
</element>
<element name="GetCharsetValues.Proc">
<short/>
</element>
<element name="CharsetToIdent">
<short>
Converts the specified numeric character set identifier to its representation
as a string.
</short>
<descr>
<p>
Calls the RTL IntToIdent routine to locate the TIdentMapEntry for the
specified value in the FontCharsets constant.
</p>
</descr>
<seealso>
<link id="IdentToCharset"/>
<link id="FontCharsets"/>
<link id="#rtl.classes.IntToIdent">IntToIdent</link>
<link id="#rtl.classes.IdentToInt">IdentToInt</link>
<link id="#rtl.classes.TIdentMapEntry">TIdentMapEntry</link>
</seealso>
</element>
<element name="CharsetToIdent.Result">
<short>
<b>True</b> if the specified numeric value exists in the FontCharsets
constant.
</short>
</element>
<element name="CharsetToIdent.Charset">
<short>
Numeric character set identifier converted in the routine.
</short>
</element>
<element name="CharsetToIdent.Ident">
<short>
Returns the string representing the specified character set number. It
returns the value on entry if Charset is not found.
</short>
</element>
<element name="IdentToCharset">
<short>
Converts the specified character set identifier to the its numeric
representation.
</short>
<descr>
<p>
Calls the RTL IdentToInt routine to locate the TIdentMapEntry for the
specified value in the FontCharsets constant.
</p>
</descr>
<seealso>
<link id="CharsetToIdent"/>
<link id="FontCharsets"/>
<link id="#rtl.classes.IntToIdent">IntToIdent</link>
<link id="#rtl.classes.IdentToInt">IdentToInt</link>
<link id="#rtl.classes.TIdentMapEntry">TIdentMapEntry</link>
</seealso>
</element>
<element name="IdentToCharset.Result">
<short>
<b>True</b> if the specified string value exists in the FontCharsets
constant.
</short>
</element>
<element name="IdentToCharset.Ident">
<short>
String with the character set identifier to locate in the FontCharsets
constant.
</short>
</element>
<element name="IdentToCharset.Charset">
<short>
Returns the numeric representation for the specified character set name. It returns the value on entry if Ident is not found.
</short>
</element>
<element name="GetFontData">
<short>Gets font data for the specified font handle.</short>
<descr>
<p>
Values from <var>DefFontData</var> are assigned as the default return value
for the routine. No additional actions are performed in the routine when
<var>Font</var> contains <b>0</b> (for an unassigned font handle). When the
font handle is valid, the following members in the return value are updated:
</p>
<ul>
<li>Name</li>
<li>Height</li>
<li>Style</li>
<li>CharSet</li>
<li>Pitch</li>
<li>Orientation</li>
<li>Handle</li>
</ul>
</descr>
<seealso/>
</element>
<element name="GetFontData.Result">
<short>TFontData structure with values read in the routine.</short>
</element>
<element name="GetFontData.Font">
<short>Font handle with the logical font data read in the routine.</short>
</element>
<element name="GetDefFontCharSet">
<short>
Gets the default TFontCharSet value for the platform.
</short>
<descr>
<p>
Returns the value for the <var>DEFAULT_CHARSET</var> constant.
</p>
</descr>
<seealso>
<link id="#lcl.lcltype.DEFAULT_CHARSET">DEFAULT_CHARSET</link>
</seealso>
</element>
<element name="GetDefFontCharSet.Result">
<short/>
</element>
<element name="IsFontNameXLogicalFontDesc">
<short>Determines if the specified font name is a valid X Logical Font
Description.
</short>
<descr>
<p>
<var>IsFontNameXLogicalFontDesc</var> is a <var>Boolean</var> function used
to determine whether the specified font name is a valid X Logical Font
Description (<b>XLFD</b>).
</p>
</descr>
<seealso/>
</element>
<element name="IsFontNameXLogicalFontDesc.Result">
<short><b>True</b> when the font name is a valid XLFD font name.</short>
</element>
<element name="IsFontNameXLogicalFontDesc.LongFontName">
<short>Font name with segments examined in the routine.</short>
</element>
<element name="XLFDNameToLogFont">
<short>
Gets a logical font record with values representing the specified XLFD font
descriptor.
</short>
<descr>
<p>
XLFDName contains the font descriptor examined in the function. Its value
consists of delimited segments that contain the attributes for the font,
including:
</p>
<dl>
<dt>Registry</dt>
<dd>Ignored.</dd>
<dt>Foundry</dt>
<dd>Ignored.</dd>
<dt>FamilyName</dt>
<dd>Font family.</dd>
<dt>WeightName</dt>
<dd>Font weight.</dd>
<dt>Slant</dt>
<dd>Italic, Reverse Italic, Oblique.</dd>
<dt>SetwidthName</dt>
<dd>Normal, Condensed, Narrow, Wide, Expanded.</dd>
<dt>AddStyleName</dt>
<dd>Orientation or rotation.</dd>
<dt>PixelSize</dt>
<dd>Height in pixels.</dd>
<dt>PointSize</dt>
<dd>Height in points.</dd>
<dt>ResolutionX</dt>
<dd>Horizontal resolution in points.</dd>
<dt>ResolutionY</dt>
<dd>Vertical resolution in points.</dd>
<dt>Spacing</dt>
<dd>Monospace, Proportional, Character Cell (Fixed Pitch).</dd>
<dt>AverageWidth</dt>
<dd>Average character width.</dd>
<dt>CharSetRegistry</dt>
<dd>Ignored.</dd>
<dt>CharSetCoding</dt>
<dd>Ignored.</dd>
</dl>
<p>
Values read from the segments are converted, translated, and massaged into
the values expected in the logical font record.
</p>
</descr>
<seealso/>
</element>
<element name="XLFDNameToLogFont.Result">
<short>TLogFont instance with values for the XLFD font.</short>
</element>
<element name="XLFDNameToLogFont.XLFDName">
<short>Font descriptor examined in the routine.</short>
</element>
<element name="ExtractXLFDItem">
<short>
Gets the value for the specified segment in an XLFD font descriptor.
</short>
<descr/>
<seealso/>
</element>
<element name="ExtractXLFDItem.Result">
<short>Value for the XLFD segment, or an empty string when not found.</short>
</element>
<element name="ExtractXLFDItem.XLFDName">
<short>XLFD font descriptor examined in the routine.</short>
</element>
<element name="ExtractXLFDItem.Index">
<short>
Ordinal position (starting at 0) for the requested segment in XLFDName.
</short>
</element>
<element name="ExtractFamilyFromXLFDName">
<short>
Gets the family name for the typeface used in the XLFD font descriptor.
</short>
<descr>
<p>
Parses a font name in XLFD format and extracts the FamilyName sequence with
the typeface family name.
</p>
</descr>
<seealso/>
</element>
<element name="ExtractFamilyFromXLFDName.Result">
<short>Typeface family name found in XLFDName.</short>
</element>
<element name="ExtractFamilyFromXLFDName.XLFDName">
<short>XLFD font descriptor examined in the routine.</short>
</element>
<element name="ClearXLFDItem">
<short>
Replaces the specified XLFD segment value with the '*' wildcard.
</short>
<descr/>
<seealso/>
</element>
<element name="ClearXLFDItem.Result">
<short/>
</element>
<element name="ClearXLFDItem.LongFontName">
<short/>
</element>
<element name="ClearXLFDItem.Index">
<short/>
</element>
<element name="ClearXLFDHeight">
<short>
Replaces the PixelSize, PointSize, ResolutionX, ResolutionY and AverageWidth
segments in an XLFD font name with the '*' wildcard.
</short>
<descr/>
<seealso/>
</element>
<element name="ClearXLFDHeight.Result">
<short/>
</element>
<element name="ClearXLFDHeight.LongFontName">
<short/>
</element>
<element name="ClearXLFDPitch">
<short>
Replaces the spacing for a XLFD font descriptor format with a '*' wildcard.
</short>
<descr/>
<seealso/>
</element>
<element name="ClearXLFDPitch.Result">
<short/>
</element>
<element name="ClearXLFDPitch.LongFontName">
<short/>
</element>
<element name="ClearXLFDStyle">
<short>
Replaces the WeightName, Slant and SetwidthName segments in an XLFD font name
with the '*' wildcard.
</short>
<descr/>
<seealso/>
</element>
<element name="ClearXLFDStyle.Result">
<short/>
</element>
<element name="ClearXLFDStyle.LongFontName">
<short/>
</element>
<element name="XLFDHeightIsSet">
<short>
Checks whether an explicit value is assigned to XLFD segments controlling
font height.
</short>
<descr/>
<seealso/>
</element>
<element name="XLFDHeightIsSet.Result">
<short/>
</element>
<element name="XLFDHeightIsSet.LongFontName">
<short/>
</element>
<element name="FontNameToPangoFontDescStr">
<short>
Parses the specified font name into X Logical Font Descriptor attributes.
</short>
<descr>
<p>
Used in the implementation of the GTK2 widgetset to create font handles for
logical fonts.
</p>
</descr>
<seealso/>
</element>
<element name="FontNameToPangoFontDescStr.LongFontName">
<short/>
</element>
<element name="FontNameToPangoFontDescStr.aFamily">
<short/>
</element>
<element name="FontNameToPangoFontDescStr.aStyle">
<short/>
</element>
<element name="FontNameToPangoFontDescStr.aSize">
<short/>
</element>
<element name="FontNameToPangoFontDescStr.aSizeInPixels">
<short/>
</element>
<element name="TOnLoadGraphicFromClipboardFormat">
<short>
Specifies a procedure type used to load a graphic image from a clipboard
format.
</short>
<descr/>
<seealso/>
</element>
<element name="TOnLoadGraphicFromClipboardFormat.Dest">
<short/>
</element>
<element name="TOnLoadGraphicFromClipboardFormat.ClipboardType">
<short/>
</element>
<element name="TOnLoadGraphicFromClipboardFormat.FormatID">
<short/>
</element>
<element name="TOnSaveGraphicToClipboardFormat">
<short>
Specifies a procedure type used to save a graphic image to a clipboard format.
</short>
<descr/>
<seealso/>
</element>
<element name="TOnSaveGraphicToClipboardFormat.Src">
<short/>
</element>
<element name="TOnSaveGraphicToClipboardFormat.ClipboardType">
<short/>
</element>
<element name="TOnSaveGraphicToClipboardFormat.FormatID">
<short/>
</element>
<element name="TOnGetSystemFont">
<short>
Specifies a function type which returns a HFONT handle for a system font.
</short>
<descr>
<p>
<var>TOnGetSystemFont</var> is the type used to implement the
<var>OnGetSystemFont</var> variable in the <file>graphics</file> unit.
</p>
</descr>
<seealso>
<link id="OnGetSystemFont"/>
<link id="#lcl.forms.TScreen">TScreen</link>
</seealso>
</element>
<element name="TOnGetSystemFont.Result">
<short>HFONT handle for the system font.</short>
</element>
<element name="OnLoadSaveClipBrdGraphicValid">
<short>
Indicates whether clipboard formats for graphic types have been registered
for the application.
</short>
<descr/>
<seealso/>
</element>
<element name="OnLoadGraphicFromClipboardFormat">
<short>
Address of the routine used to load a graphic from a clipboard format.
</short>
<descr/>
<seealso/>
</element>
<element name="OnSaveGraphicToClipboardFormat">
<short>
Address of the routine used to save a graphic to a clipboard format.
</short>
<descr/>
<seealso/>
</element>
<element name="OnGetSystemFont">
<short>
Address of the routine used to get the handle for the system font.
</short>
<descr/>
<seealso/>
</element>
<element name="TestStreamIsBMP">
<short>
Examines values in the specified stream to determine if it contains a .BMP
image.
</short>
<descr/>
<seealso/>
</element>
<element name="TestStreamIsBMP.Result">
<short>
<b>True</b> when the stream contains a valid .BMP signature at the required
position.
</short>
</element>
<element name="TestStreamIsBMP.AStream">
<short>TStream instance examined in the routine.</short>
</element>
<element name="TestStreamIsXPM">
<short>
Examines values in the specified stream to determine if it contains a .XPM
image.
</short>
<descr>
<p>
Skip comments and searches for the 'static [const] [unsigned] char*'
statement in the stream.
</p>
</descr>
<seealso/>
</element>
<element name="TestStreamIsXPM.Result">
<short><b>True</b> when .XPM signature is found in the stream.</short>
</element>
<element name="TestStreamIsXPM.AStream">
<short>TStream instance examined in the routine.</short>
</element>
<element name="TestStreamIsIcon">
<short>
Examines values in the specified stream to determine if it contains a .ICO
image.
</short>
<descr/>
<seealso/>
</element>
<element name="TestStreamIsIcon.Result">
<short><b>True</b> when the .ICO signature is found in the stream.</short>
</element>
<element name="TestStreamIsIcon.AStream">
<short>TStream instance examined in the routine.</short>
</element>
<element name="TestStreamIsCursor">
<short>
Examines values in the specified stream to determine if it contains a .CUR
cursor image.
</short>
<descr/>
<seealso/>
</element>
<element name="TestStreamIsCursor.Result">
<short><b>True</b> when the .CUR signature is found in the stream.</short>
</element>
<element name="TestStreamIsCursor.AStream">
<short>TStream instance examined in the routine.</short>
</element>
<element name="XPMToPPChar">
<short>
Converts an XPM image file into an array of PChar values.
</short>
<descr>
<p>
Converts an XPM image file into an array of PChar values. The memory is
allocated as one block, so freeing can simply be done using FreeMem. The data
is just behind the array.
</p>
<p>
An XPM file can be included in a C source file, because it has a C syntax. In
the compiled program it is simply an array of PChar. This function converts
an XPM source file to the same array, by removing the comments and the string
constant symbols.
</p>
</descr>
<seealso/>
</element>
<element name="XPMToPPChar.Result">
<short/>
</element>
<element name="XPMToPPChar.XPM">
<short/>
</element>
<element name="LazResourceXPMToPPChar">
<short>Loads an XPM image resource into an array.</short>
<descr>
<p>
Loads an XPM image from the specified resource name into an array of PChar
values. See <link id="XPMToPPChar">XPMToPPChar</link> for more information.
</p>
</descr>
<seealso>
<link id="XPMToPPChar"/>
</seealso>
</element>
<element name="LazResourceXPMToPPChar.Result">
<short>Pointer to the memory allocated for the XPM image resource.</short>
</element>
<element name="LazResourceXPMToPPChar.ResourceName">
<short>Name of the XPM image resource loaded in the routine.</short>
</element>
<element name="ReadXPMFromStream">
<short>
Converts an XPM image stored in the specified stream into an array of PChar
values.
</short>
<descr>
<p>
See <link id="XPMToPPChar">XPMToPPChar</link> for more info.
</p>
</descr>
<seealso/>
</element>
<element name="ReadXPMFromStream.Result">
<short/>
</element>
<element name="ReadXPMFromStream.Stream">
<short/>
</element>
<element name="ReadXPMFromStream.Size">
<short/>
</element>
<element name="ReadXPMSize">
<short>
Reads the first line from an XPM PChar array which contains the width, height
and number of colors for the XPM data.
</short>
<descr/>
<seealso/>
</element>
<element name="ReadXPMSize.Result">
<short/>
</element>
<element name="ReadXPMSize.XPM">
<short/>
</element>
<element name="ReadXPMSize.Width">
<short/>
</element>
<element name="ReadXPMSize.Height">
<short/>
</element>
<element name="ReadXPMSize.ColorCount">
<short/>
</element>
<element name="LoadCursorFromLazarusResource">
<short>
<var>LoadCursorFromLazarusResource</var> - loads a named cursor handle from
the Lazarus Resource (.LRS).
</short>
</element>
<element name="LoadCursorFromLazarusResource.Result">
<short/>
</element>
<element name="LoadCursorFromLazarusResource.ACursorName">
<short/>
</element>
<element name="LoadBitmapFromLazarusResource">
<short>Deprecated - technically a bitmap is created, not loaded.</short>
<descr/>
<seealso/>
</element>
<element name="LoadBitmapFromLazarusResource.Result">
<short/>
</element>
<element name="LoadBitmapFromLazarusResource.ResourceName">
<short/>
</element>
<element name="LoadBitmapFromLazarusResourceHandle">
<short>Deprecated - technically a bitmap is created, not loaded.</short>
<descr/>
<seealso/>
</element>
<element name="LoadBitmapFromLazarusResourceHandle.Result">
<short/>
</element>
<element name="LoadBitmapFromLazarusResourceHandle.Handle">
<short/>
</element>
<!-- TODO: Needs content. -->
<element name="CreateGraphicFromResourceName">
<short>
Creates and loads a TGraphic instance using the specified resource instance
handle and resource name.
</short>
<descr/>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="CreateGraphicFromResourceName.Result">
<short/>
</element>
<element name="CreateGraphicFromResourceName.Instance">
<short/>
</element>
<element name="CreateGraphicFromResourceName.ResName">
<short/>
</element>
<element name="CreateBitmapFromResourceName">
<short>
Creates a TCustomBitmap instance with the content for the named Lazarus
resource.
</short>
<descr>
<p>
Used in the implementation of components, and the LCL, to get a bitmap image
stored in a Lazarus resource. Typically used to load button glyphs and icons
displayed on the component palette in the Lazarus IDE.
</p>
</descr>
<version>
Modified in LCL version 4.0 to use the TLCLHandle type instead of the
deprecated THandle type in the Instance parameter.
</version>
<seealso>
<link id="#lcl.lcltype.TLCLHandle">LCLType.TLCLHandle</link>
<link id="#lcl.wsreferences.TLCLHandle">WSReferences.TLCLHandle</link>
</seealso>
</element>
<element name="CreateBitmapFromResourceName.Result">
<short>Bitmap instance created and loaded in the routine.</short>
</element>
<element name="CreateBitmapFromResourceName.Instance">
<short>
Handle for the Lazarus resource with the content for the bitmap.
</short>
</element>
<element name="CreateBitmapFromResourceName.ResName">
<short>Name for the RT_BITMAP resource loaded in the routine.</short>
</element>
<!-- TODO: Needs content. -->
<element name="CreateBitmapFromLazarusResource">
<short>Creates and loads a Bitmap from a Lazarus Resource (.lrs) file.
</short>
<descr/>
<seealso/>
</element>
<element name="CreateBitmapFromLazarusResource.Result">
<short/>
</element>
<element name="CreateBitmapFromLazarusResource.AName">
<short/>
</element>
<element name="CreateBitmapFromLazarusResource.AMinimumClass">
<short/>
</element>
<element name="CreateBitmapFromLazarusResource.AHandle">
<short/>
</element>
<element name="CreateCompatibleBitmaps">
<short>
Creates a TLazIntfImage instance for the specified raw image data, and
returns the handles to the image and optional mask information.
</short>
<descr/>
<seealso/>
</element>
<element name="CreateCompatibleBitmaps.Result">
<short>
<b>True</b> if the widgetset class was able to create handles using the raw
image data.
</short>
</element>
<element name="CreateCompatibleBitmaps.ARawImage">
<short/>
</element>
<element name="CreateCompatibleBitmaps.ABitmap">
<short/>
</element>
<element name="CreateCompatibleBitmaps.AMask">
<short/>
</element>
<element name="CreateCompatibleBitmaps.ASkipMask">
<short/>
</element>
<element name="CreateBitmapFromFPImage">
<short>
Creates a Bitmap with the content from the specified TFPCustomImage instance.
</short>
<descr>
<p>Creates a temporary <var>TLazIntfImage</var> instance used to copy the
image content in <var>Img</var> into the <var>TBitmap</var> instance in the
return value.
</p>
</descr>
<seealso>
<link id="#lcl.intfgraphics.TLazIntfImage">TLazIntfImage</link>
<link id="TRasterImage.LoadFromIntfImage"/>
</seealso>
</element>
<element name="CreateBitmapFromFPImage.Result">
<short>TBitmap instance created and loaded in the routine.</short>
</element>
<element name="CreateBitmapFromFPImage.Img">
<short>TFPCustomImage with the content copied into the return value.</short>
</element>
<element name="AllocPatternBitmap">
<short>
Ensures that a Pattern Bitmap with the specified colors exists in the Pattern
cache.
</short>
<descr>
<p>
<var>AllocPatternBitmap</var> is a <var>TBitmap</var> function used to ensure
that a bitmap with the specified colors exists in the internal pattern cache.
</p>
<p>
AllocPatternBitmap tries to locate a <var>TPatternBitmap</var> instance with
the colors specified in <var>colorBG</var> and <var>colorFG</var>. If the
requested Pattern Bitmap does not already exist, it is created and added to
the pattern cache.
</p>
<p>
The return value is the TBitmap instance stored in the Bitmap property for
the cached TPatternBitmap instance. No actions are performed if the Pattern
cache has not been assigned; the return value is Nil in this situation.
</p>
</descr>
<seealso>
<link id="TBitmap"/>
</seealso>
</element>
<element name="AllocPatternBitmap.Result">
<short>Bitmap retrieved or created with the specified colors.</short>
</element>
<element name="AllocPatternBitmap.colorBG">
<short>Background color for the Bitmap.</short>
</element>
<element name="AllocPatternBitmap.colorFG">
<short>Foreground color for the Bitmap.</short>
</element>
<element name="ScreenInfo">
<short>
Contains display attributes for the current screen in an application.
</short>
<descr>
<p>
<var>ScreenInfo</var> is a <var>TScreenInfo</var> variable which contains
display attributes for the current screen in an application, including:
</p>
<dl>
<dt>PixelsPerInchX</dt>
<dd>Horizontal display density (Pixels Per Inch). Default is 72.</dd>
<dt>PixelsPerInchY</dt>
<dd>Vertical display density (Pixels Per Inch). Default is 72.</dd>
<dt>ColorDepth</dt>
<dd>Number of colors used in image data. Default is 24.</dd>
<dt>Initialized</dt>
<dd>Default value is <b>False</b>.</dd>
</dl>
<p>
Values in ScreenInfo are updated when an application initializes the
widgetset classes used in the LCL interface.
</p>
<p>
ScreenInfo is used in the implementation of the <var>ScaleX</var> and
<var>ScaleY</var> routines.
</p>
</descr>
<seealso>
<link id="#lcl.lcltype.TScreenInfo">TScreenInfo</link>
</seealso>
</element>
<element name="FontResourceCache">
<short>Variable used as the cache for Font resources.</short>
<descr>
<p>
<var>FontResourceCache</var> is a <var>TFontHandleCache</var> variable used
as the cache for Font resources. FontResourceCache allows reference-counted
font handles to be created or retrieved when the <var>ReferenceNeeded</var>
method in <var>TFont</var> is called. Values in FontResourceCache are
maintained when the FreeReference method in TFont is called.
</p>
<p>
Resources for FontResourceCache are allocated when the
<file>Graphuic.pp</file> unit is initialized, and freed when the unit is
finalized.
</p>
</descr>
<seealso>
<link id="TFontHandleCache"/>
</seealso>
</element>
<element name="PenResourceCache">
<short>Variable used as the cache for Pen resources.</short>
<descr/>
<seealso>
<link id="TPenHandleCache"/>
</seealso>
</element>
<element name="BrushResourceCache">
<short>Variable used as the cache for Brush resources.</short>
<descr/>
<seealso>
<link id="TBrushHandleCache"/>
</seealso>
</element>
<element name="FontCharsets">
<short>
Array constant with TIdentMapEntry values for character sets in TFont
instances.
</short>
<descr>
<p>
Array elements contain <var>TIdentMapEntry</var> record instances which map
the numeric identifier for a character set to its representation as a string
value.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TIdentMapEntry">TIdentMapEntry</link>
</seealso>
</element>
<element name="DbgS">
<short>
Creates a formatted debugger message with values from the TFontStyles set.
</short>
<descr>
<p>
The return value contains the formatted set of font styles, with content like:
</p>
<code>'fsBold,fsItalic,fsStrikeout,fsUnderline'</code>
</descr>
<seealso/>
</element>
<element name="DbgS.Result">
<short>Message formatted for use in the debugger.</short>
</element>
<element name="DbgS.Style">
<short>Set of TFontStyle values included in the formatted string.</short>
</element>
<element name="ScaleX">
<short>
Resizes the specified horizontal size from a given display density to the
current screen PPI.
</short>
<descr>
<p>
Multiplies the values in <var>SizeX</var> and the <var>PixelsPerInchX</var>
member in <var>ScreenInfo</var>, and divides the product by the value in
<var>FromDPI</var>. The return value is rounded to the nearest Integer value.
</p>
</descr>
<seealso>
<link id="TScreenInfo"/>
<link id="#lcl.lcltype.MulDiv">MulDiv</link>
</seealso>
</element>
<element name="ScaleX.Result">
<short>New horizontal size after scaling.</short>
</element>
<element name="ScaleX.SizeX">
<short>Size value scaled in the routine.</short>
</element>
<element name="ScaleX.FromDPI">
<short>Original display density (Pixels per Inch).</short>
</element>
<element name="ScaleY">
<short>
Resizes the specified vertical size from a given display density to the
current screen PPI.
</short>
<descr>
<p>
Multiplies the values in <var>SizeY</var> and the <var>PixelsPerInchY</var>
member in <var>ScreenInfo</var>, and divides the product by the value in
<var>FromDPI</var>. The return value is rounded to the nearest Integer value.
</p>
</descr>
<seealso>
<link id="TScreenInfo"/>
<link id="#lcl.lcltype.MulDiv">MulDiv</link>
</seealso>
</element>
<element name="ScaleY.Result">
<short>New vertical size after scaling.</short>
</element>
<element name="ScaleY.SizeY">
<short>Size value scaled in the routine.</short>
</element>
<element name="ScaleY.FromDPI">
<short>Original display density (Pixels per Inch).</short>
</element>
<element name="Register">
<short>Registers TPersistent classes for use in the RTL.</short>
<descr>
<p>
<var>Register</var> calls <var>RegisterClasses</var> to add the following
persistent objects to the list of classes available in the RTL:
</p>
<ul>
<li>TBitmap</li>
<li>TPixmap</li>
<li>TPortableNetworkGraphic</li>
<li>TPortableAnyMapGraphic (When DisableLCLPNM is not defined)</li>
<li>TJpegImage (When DisableLCLJPEGis not defined)</li>
<li>TGIFImage (When DisableLCLGIF is not defined)</li>
<li>TPicture</li>
<li>TFont</li>
<li>TPen</li>
<li>TBrush</li>
<li>TRegion</li>
</ul>
</descr>
<seealso>
<link id="RegisterClasses"/>
<link id="#rtl.classes.RegisterClass">RegisterClass</link>
</seealso>
</element>
<element name="UpdateHandleObjects">
<short>Renews handles for Fonts, Pens, and Brushes.</short>
<descr/>
<seealso/>
</element>
</module>
<!-- Graphics -->
</package>
</fpdoc-descriptions>