@@Graphics.Bitmaps
<GROUP Graphics>
<TITLE Bitmaps>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@Graphics.Clipping
<GROUP Graphics>
<TITLE Clipping>
<TOPICORDER 200>
--------------------------------------------------------------------------------
@@Graphics.Colors
<GROUP Graphics>
<TITLE Colors>
<TOPICORDER 300>
--------------------------------------------------------------------------------
@@Graphics.Conversion
<GROUP Graphics>
<TITLE Conversion>
<TOPICORDER 400>
--------------------------------------------------------------------------------
@@Graphics.Desktop
<GROUP Graphics>
<TITLE Desktop>
<TOPICORDER 500>
--------------------------------------------------------------------------------
@@Graphics.Icons
<GROUP Graphics>
<TITLE Icons>
<TOPICORDER 600>
--------------------------------------------------------------------------------
@@Graphics.Points
<GROUP Graphics>
<TITLE Points>
<TOPICORDER 700>
--------------------------------------------------------------------------------
@@Graphics.Rectangles
<GROUP Graphics>
<TITLE Rectangles>
<TOPICORDER 800>
--------------------------------------------------------------------------------
@@Graphics.Regions
<GROUP Graphics>
<TITLE Regions>
<TOPICORDER 900>
--------------------------------------------------------------------------------
@@Graphics.Types
<GROUP Graphics>
<TITLE Types>
<TOPICORDER 1000>
--------------------------------------------------------------------------------
@@BrightColorChannel
<GROUP Graphics.Colors>
Summary:
  Brightens one channel of a color by a percentage.
Description:
  BrightColorChannel brightens one channel of a color by a certain percentage.
Parameters:
  Channel - Value of the color channel to brighten.
  Pct - The percentage with which to brighten the channel. Percentage should be between 0 and 100.0.
Result:
  The brightened channel.
See also:
  BrightColor
  DarkColor
  DarkColorChannel
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@DarkColorChannel
<GROUP Graphics.Colors>
Summary:
  Darkens one channel of a color by a percentage.
Description:
  DarkColorChannel darkens one channel of a color by a certain percentage.
Parameters:
  Channel - Value of the color channel to darken.
  Pct - The percentage with which to darken the channel. Percentage should be between 0 and 100.0.
Result:
  The darkened channel.
See also:
  BrightColor
  DarkColor
  BrightColorChannel
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@DarkColor
<GROUP Graphics.Colors>
Summary:
  Darkens a color by a percentage.
Description:
  DarkColor darkens a color by a certain percentage.
Parameters:
  Color - The color to darken.
  Pct - The percentage with which to darken the color. Percentage should be between 0 and 100.0.
Result:
  The darkened color.
See also:
  BrightColor
  BrightColorChannel
  DarkColorChannel
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@BrightColor
<GROUP Graphics.Colors>
Summary:
  Brightens a color by a percentage.
Description:
  BrightColor brightens a color by a certain percentage.
Parameters:
  Color - The color to brighten.
  Pct - The percentage with which to brighten the color. Percentage should be between 0 and 100.0.
Result:
  The brightened color.
See also:
  BrightColorChannel
  DarkColor
  DarkColorChannel
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@GetRGBValue
<GROUP Graphics.Colors>
Summary:
  Returns the Red, Green and Blue components of a TColor.
Description:
  GetRGBValue returns the intensity of the Red, Green and Blue components of the
  supplied TColor. You can use the GetColorFlag to extract the remaining
  Flag component.
Parameters:
  Color - The color from which you want to extract the individual components.
  Red - The intensity of the Red component.
  Green - The intensity of the Green component.
  Blue - The intensity of the Blue component.
See also:
  SetRGBValue
  GetColorFlag
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@SetRGBValue
<GROUP Graphics.Colors>
Summary:
  Returns a TColor initialized with the supplied values.
Description:
  SetRGBValue returns a TColor value with the individual color components
  initialized to the supplied intensities. The Flag component (high order byte) is
  initialized to 0.
Parameters:
  Red - Intensity for the Red component of the returned TColor value.
  Green - Intensity for the Green component of the returned TColor value.
  Blue - Intensity for the Blue component of the returned TColor value.
Result:
  The TColor value initialized with the supplied values.
See also:
  GetRGBValue
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@SetColorRed
<GROUP Graphics.Colors>
Summary:
  Sets the Red component of a TColor.
Description:
  SetColorRed sets intensity of the Red component of a TColor.
Parameters:
  Color - The color whose Red component to set.
  Red - New intensity for the Red component.
Result:
  Copy of the supplied color after the Red component has been modified.
See also:
  SetRGBValue
  SetColorGreen
  SetColorBlue
  SetColorFlag
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@SetColorGreen
<GROUP Graphics.Colors>
Summary:
  Sets the Green component of a TColor.
Description:
  SetColorGreen sets intensity of the Green component of a TColor.
Parameters:
  Color - The color whose Green component to set.
  Green - New intensity for the Green component.
Result:
  Copy of the supplied color after the Green component has been modified.
See also:
  SetRGBValue
  SetColorRed
  SetColorBlue
  SetColorFlag
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@SetColorBlue
<GROUP Graphics.Colors>
Summary:
  Sets the Blue component of a TColor.
Description:
  SetColorBlue sets intensity of the Blue component of a TColor.
Parameters:
  Color - The color whose Blue component to set.
  Blue - New intensity for the Blue component.
Result:
  Copy of the supplied color after the Blue component has been modified.
See also:
  SetRGBValue
  SetColorRed
  SetColorGreen
  SetColorFlag
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@SetColorFlag
<GROUP Graphics.Colors>
Summary:
  Sets the Flag component of a TColor.
Description:
  SetColorFlag sets the Flag component of a TColor. The Flag component
  is contained in the high order byte of the TColor value and determines how
  Delphi displays the color. Currently this can be either 0, 1, or 2 and have the
  following meaning:
<TABLE>
Value  Description
-----  -------------------------------------------------------------------------------------------------
0      The color obtained is the closest matching color in the system palette.
1      The color obtained is the closest matching color in the currently realized palette.
2      The value is matched with the nearest color in the logical palette of the current device context.
</TABLE>
Parameters:
  Color - The color whose Flag component to set.
  Flag - Value for the Flag component. Valid values are 0, 1 and 2. See the description above.
Result:
  Copy of the supplied color after the Flag component has been modified.
See also:
  SetRGBValue
  SetColorRed
  SetColorGreen
  SetColorBlue
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@GetColorRed
<GROUP Graphics.Colors>
Summary:
  Extracts the Red component from a TColor.
Description:
  GetColorRed extracts the Red component from a TColor value.
Parameters:
  Color - The Color value from which to extract the Red component.
Result:
  The Red component from the supplied TColor. The value ranges from 0 to 255.
See also:
  GetRGBValue
  GetColorBlue
  GetColorGreen
  GetColorFlag
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@GetColorBlue
<GROUP Graphics.Colors>
Summary:
  Extracts the Blue component from a TColor.
Description:
  GetColorBlue extracts the Blue component from a TColor value.
Parameters:
  Color - The Color value from which to extract the Blue component.
Result:
  The Blue component from the supplied TColor. The value ranges from 0 to 255.
See also:
  GetRGBValue
  GetColorRed
  GetColorGreen
  GetColorFlag
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@GetColorGreen
<GROUP Graphics.Colors>
Summary:
  Extracts the Green component from a TColor.
Description:
  GetColorGreen extracts the Green component from a TColor value.
Parameters:
  Color - The Color value from which to extract the Green component.
Result:
  The Green component from the supplied TColor. The value ranges from 0 to 255.
See also:
  GetRGBValue
  GetColorRed
  GetColorBlue
  GetColorFlag
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@GetColorFlag
<GROUP Graphics.Colors>
Summary:
  Extracts the Flag component from a TColor.
Description:
  GetColorFlag extracts the Flag component from a TColor value. The Flag component
  is contained in the high order byte of the TColor value and determines how
  Delphi displays the color. Currently this can be either 0, 1, or 2 and have the
  following meaning:
<TABLE>
Value  Description
-----  -------------------------------------------------------------------------------------------------
0      The color obtained is the closest matching color in the system palette.
1      The color obtained is the closest matching color in the currently realized palette.
2      The value is matched with the nearest color in the logical palette of the current device context.
</TABLE>
Parameters:
  Color - The Color value from which to extract the Flag component.
Result:
  The Flag component from the supplied TColor. The value ranges from 0 to 2.
See also:
  GetRGBValue
  GetColorRed
  GetColorGreen
  GetColorBlue
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@PointAssign
<GROUP Graphics.Points>
Summary:
  Initializes a TPoint with the supplied values.
Description:
  PointAssign returns a TPoint record initialized with the supplied values.
Parameters:
  X - X value for the new TPoint.
  Y - Y value for the new TPoint.
Result:
  A TPoint initialized with X and Y.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@PointCopy
<GROUP Graphics.Points>
Summary:
  Copies a TPoint.
Description:
  PointCopy copies the values of the Source point into the Destination point. When
  the function returns Dest is an exact copy of Source.
Parameters:
  Dest - Destination point.
  Source - Source point from which the values are copied.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@PointEqual
<GROUP Graphics.Points>
Summary:
  Tests two points for equality.
Description:
  PointEqual compares the two supplied points.
Parameters:
  P1 - First TPoint
  P2 - Second TPoint
Result:
  If the two points are equal (identical values for X and Y) the function returns
  True otherwise it returns False.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@PointIsNull
<GROUP Graphics.Points>
Summary:
  Tests a point against the null point.
Description:
  PointIsNull compares P against the null point (0, 0).
Parameters:
  P - The point to test.
Result:
  If the supplied point equals the null point (a TPoint with both X and Y set to 0)
  the function returns True, otherwise it returns False.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@PointMove
<GROUP Graphics.Points>
Summary:
  Moves a point.
Description:
  PointMove moves the specified point by the supplied offsets.
Parameters:
  P - The point to move.
  DeltaX - The amount by which to offset the X member of the TPoint.
  DeltaY - The amount by which to offset the Y member of the TPoint.
Result:
  The moved point (P.X = P.X + DeltaX, P.Y = P.Y + DeltaY).
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@NullPoint
<GROUP Graphics.Points>
Summary:
  Returns a null point.
Description:
  NullPoint returns a TPoint with both it's X and Y member initialized to 0.
Result:
  A TPoint initialized to (X, Y) = (0, 0).
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@RectIsEmpty
<GROUP Graphics.Rectangles>
Summary:
  Tests if the rectangle is empty.
Description:
  RectIsEmpty tests if the specified rectangle is empty, that is, if the rectangle's
  width and height are 0.
Parameters:
  R - The rectangle to test.
Result:
  If the rectangle is empty the function returns True, otherwise it returns False.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@RectNormalize
<GROUP Graphics.Rectangles>
Summary:
  Normalizes a rectangle.
Description:
  RectNormalize normalizes the specified rectangle. A normalized rectangle is defined
  as a rectangle for which Left is smaller than or equal to Right and Top is smaller
  than or equal to Bottom. If these conditions are not met, RectNormalize normalizes
  the rectangle by swapping Left with Right and/or Top with Bottom.
Parameters:
  R - The rectangle to normalize.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@RectUnion
<GROUP Graphics.Rectangles>
Summary:
  Calculates the union of two rectangles.
Description:
  RectUnion returns the union of two rectangles. In this context, the union is
  defined as the smallest rectangle that contains the two specified rectangles.
  If the union is empty a null rectangle is returned.
Parameters:
  R1 - The first rectangle.
  R2 - The second rectangle.
Result:
  The union of the two rectangles, or a null rectangle if the union is empty.
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectIsSquare
<GROUP Graphics.Rectangles>
Summary:
  Tests if the rectangle is square.
Description:
  RectIsSquare tests if the specified rectangle is square (width equals height).
Parameters:
  R - The rectangle to test.
Result:
  If the rectangle is square the function returns True, otherwise it returns False.
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectCenter
<GROUP Graphics.Rectangles>
Summary:
  Returns the center-point of the rectangle.
Description:
  RectCenter returns a TPoint which lies in the center of the rectangle. Note that
  if the width or height of the rectangle is odd, then the returned point does not
  lie exactly in the center of the rectangle. In such cases the point is 'rounded'
  towards the top-left corner.
Parameters:
  R - The rectangle.
Result:
  TPoint representing the center of the rectangle.
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectEqual
<GROUP Graphics.Rectangles>
Summary:
  Tests two rectangles for equality.
Description:
  RectEqual tests if two rectangle are equal.
Parameters:
  R1 - The first rectangle.
  R2 - The second rectangle.
Result:
  If the rectangles are equal the function returns True, otherwise it returns False.
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectIsNull
<GROUP Graphics.Rectangles>
Summary:
  Tests if a rectangle is a null rectangle.
Description:
  RectIsNull tests if the specified rectangle is a null rectangle.
  A null rectangle is a rectangle with all it's members initialized to 0. Some
  functions return a null rectangle to indicate failure.
Parameters:
  R - The rectangle to test.
Result:
  If the rectangle is a null rectangle the function returns True, otherwise it returns False.
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@NullRect
<GROUP Graphics.Rectangles>
Summary:
  Returns a null rectangle.
Description:
  NullRect returns a null rectangle. A null rectangle is a rectangle with all its
  members initialized to 0. Some functions return a null rectangle to indicate failure.
Result:
  The null rectangle.
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectIsValid
<GROUP Graphics.Rectangles>
Summary:
  Tests if R is a valid rectangle.
Description:
  RectIsValid tests if the specified rectangle is valid, or in Win32 terms, normalized.
  A rectangle is considered valid if Left is smaller than or equal to Right and
  Top is smaller than or equal to Bottom.
Parameters:
  R - The rectangle to test.
Result:
  If the rectangle is valid the function returns True, otherwise it returns False.
See also:
  RectsAreValid
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectsAreValid
<GROUP Graphics.Rectangles>
Summary:
  Tests if all the rectangles in the array are valid.
Description:
  RectIsValid tests if the rectangles in the specified array are valid, or in Win32
  terms, normalized. A rectangle is considered valid if Left is smaller than or
  equal to Right and Top is smaller than or equal to Bottom.
Parameters:
  R - The rectangles to test.
Result:
  If all rectangles are valid the function returns True, otherwise it returns False.
See also:
  RectIsValid
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectIntersectRect
<GROUP Graphics.Rectangles>
Summary:
  Tests if two rectangles intersect.
Description:
  RectIntersectRect tests whether the two rectangles intersect. Note that the
  function performs the test by actually calculating the intersection. Therefore,
  don't write code like this: if RectIntersectRect then R := RectIntersection(...).
  Instead use RectIntersection directly and compare the result against
  the null rectangle.
Parameters:
  R1 - The first rectangle.
  R2 - The second rectangle.
Result:
  If the two rectangles intersect the function returns True, otherwise it returns False.
See also:
  RectIntersection
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectIntersection
<GROUP Graphics.Rectangles>
Summary:
  Calculates the intersection of two rectangles.
Description:
  RectIntersection returns the intersection of the two supplied rectangles. The
  intersection is that part of the rectangles that overlap, or the part that is shared by
  the two rectangles.
Parameters:
  R1 - The first rectangle.
  R2 - The second rectangle.
Result:
  The intersection of the two rectangles. If the two rectangles don't intersect
  a null rectangle is returned.
See also:
  RectIntersectRect
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectIncludesPoint
<GROUP Graphics.Rectangles>
Summary:
  Tests if a point lies within a rectangle.
Description:
  RectIncludesPoint tests if the specified point lies inside the boundaries defined
  by the specified rectangle. The test is performed excluding the borders of the
  rectangle (a point lying on a border of the rectangle causes the function to
  return False).
Parameters:
  R - The bounding rectangle.
  Pt - The point to test.
Result:
  If the point lies inside the rectangle (excluding the borders) the function returns
  True, otherwise it returns False.
See also:
  RectIncludesRect
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectIncludesRect
<GROUP Graphics.Rectangles>
Summary:
  Tests if one rectangle is completely embedded inside another rectangle.
Description:
  RectIncludesRect tests whether the first rectangle is completely embedded inside
  the second rectangle. In other words, the function tests whether R1 is a 'subset'
  of R2.
Parameters:
  R1 - The rectangle to test.
  R2 - The second rectangle.
Result:
  If the first rectangle is embedded inside the second the function returns True,
  otherwise it returns False.
See also:
  RectIncludesPoint
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectBounds
<GROUP Graphics.Rectangles>
Summary:
  Initializes a rectangle by bounds.
Description:
  RectBounds returns a rectangle with its top-left corner set to the combination
  of Left and Top and with a width and height of Width and Height respectively.
Parameters:
  Left - Left coordinate of the rectangle.
  Top - Top coordinate of the rectangle.
  Width - Width of the rectangle.
  Height - Height of the rectangle.
Result:
  A TRect initialized with the specified coordinates/dimensions.
See also:
  RectAssignPoints
  RectCopy
  RectAssign
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectAssign
<GROUP Graphics.Rectangles>
Summary:
  Initializes a rectangle by the individual coordinates.
Description:
  RectAssign returns a TRect with it's members initialized to the individually
  specified coordinates.
Parameters:
  Left - Left coordinate of the rectangle.
  Top - Top coordinate of the rectangle.
  Right - Right coordinate of the rectangle.
  Bottom - Bottom coordinate of the rectangle.
Result:
  A TRect initialized with the coordinates.
See also:
  RectAssignPoints
  RectCopy
  RectBounds
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectAssignPoints
<GROUP Graphics.Rectangles>
Summary:
  Initializes a rectangle by TPoints.
Description:
  RectAssignPoints returns a rectangle initialized to the specified top-left and
  bottom-right coordinate points.
Parameters:
  TopLeft - Top-left coordinate of the rectangle.
  BottonRight - Bottom-right coordinate of the rectangle.
Result:
  A TRect initialized to the specified points.
See also:
  RectAssign
  RectCopy
  RectBounds
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectCopy
<GROUP Graphics.Rectangles>
Summary:
  Copies a rectangle.
Description:
  RectCopy copies the Source rectangle's coordinates into the Dest(ination) rectangle.
Parameters:
  Dest - Destination rectangle which receives a copy of Source.
  Source - Source rectangle.
See also:
  RectAssign
  RectAssignPoints
  RectBounds
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@RectMove
<GROUP Graphics.Rectangles>
Summary:
  Moves the specified rectangle by the specified offsets.
Description:
  RectMove moves the specified rectangle by the specified offsets. This does not
  affect the width and height of the rectangle.
Parameters:
  R - The rectangle to move.
  DeltaX - The amount to move the rectangle in the horizontal direction.
  DeltaY - The amount to move the rectangle in the vertical direction.
See also:
  RectMoveTo
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectMoveTo
<GROUP Graphics.Rectangles>
Summary:
  Moves the rectangle to the specified coordinates.
Description:
  RectMoveTo moves the rectangle to the coordinates specified by X and Y. This does
  not affect the width and height of the rectangle.
Parameters:
  R - The rectangle to move
  X - The new X coordinate of the top-left corner of the rectangle.
  Y - The new Y coordinate of the top-left corner of the rectangle.
See also:
  RectMove
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectGrow
<GROUP Graphics.Rectangles>
Summary:
  Expands a rectangle by the specified amount.
Description:
  RectGrow expands the rectangle with Delta in each direction. As such, all members
  of the TRect record are altered. Left becomes Left - Delta, Right becomes Right + Delta
  and so forth. Note that specifying a negative Delta effectively shrinks the
  rectangle. However, this may leave you with a denormalized rectangle!
Parameters:
  R - The rectangle to expand.
  Delta - The amount with which to expand the rectangle.
See also:
  RectGrowX
  RectGrowY
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectGrowX
<GROUP Graphics.Rectangles>
Summary:
  Expands the horizontal dimension of a rectangle by the specified amount.
Description:
  RectGrowX expands the horizontal dimension of the rectangle with Delta in each
  direction. As such, Left becomes Left - Delta, Right becomes Right + Delta.
  Note that specifying a negative Delta effectively shrinks the rectangle. However,
  this may leave you with a denormalized rectangle!
Parameters:
  R - The rectangle to expand.
  Delta - The amount with which to expand the rectangle.
See also:
  RectGrow
  RectGrowY
Donator: Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectGrowY
<GROUP Graphics.Rectangles>
Summary:
  Expands the vertical dimension of a rectangle by the specified amount.
Description:
  RectGrowY expands the vertical dimension of the rectangle with Delta in each
  direction. As such, Top becomes Top - Delta, Bottom becomes Bottom + Delta.
  Note that specifying a negative Delta effectively shrinks the rectangle. However,
  this may leave you with a denormalized rectangle!
Parameters:
  R - The rectangle to expand.
  Delta - The amount with which to expand the rectangle.
See also:
  RectGrow
  RectGrowX
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectHeight
<GROUP Graphics.Rectangles>
Summary:
  Returns the height of a rectangle.
Description:
  RectHeight returns the height, in pixels, of the specified rectangle.
Parameters:
  R - The rectangle for which to calculate the height.
Result:
  The height of the rectangle in pixels.
See also:
  RectWidth
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@RectWidth
<GROUP Graphics.Rectangles>
Summary:
  Returns the width of a rectangle.
Description:
  RectWidth returns the width, in pixels, of the specified rectangle.
Parameters:
  R - The rectangle for which to calculate the width.
Result:
  The width of the rectangle in pixels.
See also:
  RectHeight
Donator:
  Pelle F. S. Liljendal
--------------------------------------------------------------------------------
@@DrawBitmap
<GROUP Graphics.Bitmaps>
Summary:
  Draws a bitmap to a device context.
Description:
  DrawBitmap draws the specified bitmap to the specified device context at the
  position indicated by (X, Y) and with the width and height specified by Width
  and Height respectively. If the bitmap's size is different from the supplied
  Width and Height the bitmap is automatically stretched.
Parameters:
  DC - Device context to draw to (e.g. Form1.Canvas.Handle).
  Bitmap - Handle of the bitmap to draw.
  X - Horizontal position of the upper left corner in the destination DC where to draw the bitmap.
  Y - Vertical position of the upper left corner in the destination DC where to draw the bitmap.
  Width - Width of the destination bitmap.
  Height - Height of the destination bitmap.
Donator:
  Charlie Calvert
--------------------------------------------------------------------------------
@@BitmapToJPeg
<GROUP Graphics.Conversion>
Summary:
  Converts a bitmap to a JPEG.
Description:
  BitmapToJPeg converts a bitmap file to a JPEG file. The destination file is
  saved with the same name as the source bitmap file but with the extension '.jpg'.
  If the function fails at any point it raises an exception.
Parameters:
  FileName - Name of the bitmap file to convert to a JPEG image.
See also:
  JPegToBitmap
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@JPegToBitmap
<GROUP Graphics.Conversion>
Summary:
  Converts a JPEG to a bitmap.
Description:
  JPegToBitmap converts a JPEG image to a bitmap file. The destination file is
  saved with the same name as the source file but with the extension '.bmp'. If the
  function fails at any point it raises an exception.
Parameters:
  FileName - Name of the JPEG image file to convert to a bitmap.
See also:
  BitmapToJpeg
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@ExtractIconCount
<GROUP Graphics.Icons>
Summary:
  Returns the number of icons in a file.
Description:
  ExtractIconCount returns the number of icons that exist in the specified file.
  The function is capable of detecting the number of icons in an executable file,
  a dynamic link library or an icon file. In the case of a .exe or .dll the function
  returns the number of RT_GROUP_ICON resources and in case of a .ico file it returns 1.
Parameters:
  FileName - Fully qualified name of the file for which to count the number of icons. This can be any executable file, dynamic link library or icon file.
Result:
  The number of icons in the specified file. If the file does not contain icons
  the result is 0.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@BitmapToIcon
<GROUP Graphics.Conversion>
Summary:
  Converts a bitmap to an icon.
Description:
  BitmapToIcon converts the specified bitmap (identified by handle) to an icon.
Parameters:
  Bitmap - Handle of the bitmap to convert.
  cx - Width of the bitmap.
  cy - Height of the bitmap.
Result:
  Handle to the icon or 0 on failure. Caller is responsible for eventually releasing
  the icon resource by calling DestroyIcon.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@IconToBitmap
<GROUP Graphics.Conversion>
Summary:
  Converts an icon to a bitmap.
Description:
  IconToBitmap converts the specified icon, represented by handle, to a bitmap.
Parameters:
  Icon - Icon to convert.
Result:
  Handle to the bitmap or 0 on failure. The caller is responsible for freeing the
  resources associated with this bitmap by calling DeleteObject.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@Stretch@Cardinal@Cardinal@TResamplingFilter@Single@TGraphic@TBitmap
<GROUP Graphics.Bitmaps>
Summary:
  Scales a graphic to a bitmap.
Description:
  Scales the source graphic to the given size (NewWidth,
  NewHeight) and stores the Result in Target. Filter describes
  the filter function to be applied and Radius the size of the
  filter area. If Radius = 0 then the recommended filter area
  will be used (see DefaultFilterRadius). With the filters you
  can determine the quality and the speed of the conversion,
  use a Box or Triangle filter for fast previews and a Lanczos3
  or Bell filter for better quality.
Parameters:
  Bitmap    - The bitmap to scale.
  Filter    - The filter to be used.
  NewHeight - The new height of the target bitmap.
  NewWidth  - The new width of the target bitmap.
  Radius    - The radius in pixels that will influence the
              current pixel. This can be a fractional to use
              partial pixels.
  Source    - The source graphic.
  Target    - The target bitmap.
Platforms:
  VCL
  VisualCLX
See also:
  TResamplingFilter
Donator:
  Mike Lischke
Contributor:
  Robert Rossmair
--------------------------------------------------------------------------------
@@Stretch@Cardinal@Cardinal@TResamplingFilter@Single@TBitmap
<GROUP Graphics.Bitmaps>
<COMBINE Stretch@Cardinal@Cardinal@TResamplingFilter@Single@TGraphic@TBitmap>
--------------------------------------------------------------------------------
@@TResamplingFilter
<GROUP Graphics.Bitmaps>
Summary:
  Filters for stretch function.
Description:
  The filters used in the resampling code differ mainly in complexity but also in the way
  they calculate pixel contributions. These contributions are used to calculate the final pixel
  and depend on the original value and the values of neighbor pixels. How many pixel are taken
  into the calculation is determined by the filter radius, which essentially describes the number
  of pixels around a center pixel (the radius can be fractional to use partial pixels too).
  The reason why there are several filters instead of only one is that you can trade off
  speed against quality. For nearly interactive resampling only the box (and perhaps the triangle)
  filters are suitable. The quality resulting from those filters is only on average level.
  Filters like Lanczos3 or Bell produce much better results which are well comparable with those of
  Photoshop's bicubic interpolation.
Donator:
  Mike Lischke
--------------------------------------------------------------------------------
@@GetAntialiasedBitmap
<GROUP Graphics.Bitmaps, $Graphics.Conversion>
Summary:
  Antialiases a bitmap.
Description:
  Antialiases a bitmap.
Parameters:
  Bitmap - The bitmap to be antialiased.
Result:
  An antialiased true color bitmap shrunk 2 times on each dimension. Output bitmap is
  created inside the function and should be manually freed.
Donator:
  Marcin Wieczorek (T-1000)
--------------------------------------------------------------------------------
@@CIED65ToCIED50
<GROUP Graphics.Colors>
Summary:
  Converts values of the XYZ color space using the D65 white point to D50 white point.
Description:
  Converts values of the XYZ color space using the D65 white point to D50 white point.
  The values were taken from www.srgb.com/hpsrgbprof/sld005.htm
Parameters:
  X - X Color D65.
  Y - Y Color D65.
  Z - Z Color D65.
Donator:
  Mike Lischke
--------------------------------------------------------------------------------
@@Gray16
<GROUP Graphics.Colors>
Summary:
  Converts each color component from a 16 bits per sample to 8 bit used in Windows DIBs.
Description:
  Converts each color component from a 16 bits per sample to the 8 bits used in Windows DIBs.
  Count is the number of entries in Source and Target.
Parameters:
  Source - The source pointer to a stream of 16 bit colors.
  Target - The target pointer to a stream of 8 bit colors.
  Count - Number of samples to convert.
Donator:
  Mike Lischke
--------------------------------------------------------------------------------
@@CMYK2BGR
<GROUP Graphics.Colors>
Summary:
  Converts a stream of Count CMYK values to BGR.
Description:
  Converts a stream of Count CMYK values to BGR.
Parameters:
  Source(C,M,Y,K) - Source Pointer of the stream of CMYK records, these are records of 4 bytes or 4 words representing the CMYK colors. These can also be separate C, Y, M and K streams, then each stream represents a byte or word array of color components.
  Target - Target pointer of the stream of BRG records, this are 3 byte records representing BGR colors
  BitsPerSample - The bits per color component of the source stream, this can be 8 or 16 bits.
  Count - Number of samples to convert.
Donator:
  Mike Lischke
--------------------------------------------------------------------------------
@@CIELAB2BGR
<GROUP Graphics.Colors>
Summary:
  Conversion of the CIE L*a*b color space to RGB using a two step approach assuming a D65 white point, first a conversion to CIE XYZ is performed and then from there to RGB.
Description:
  Conversion of the CIE L*a*b color space to RGB using a two step approach assuming a D65 white point,
  first a conversion to CIE XYZ is performed and then from there to RGB.
Parameters:
  Source - The source pointer to a stream of CIELAB records, the size of the records is always 3 bytes per record.
  Target - The target pointer to a stream of BGR records, the size is always 3 bytes per record.
  Count - Number of samples to convert.
Donator:
  Mike Lischke
--------------------------------------------------------------------------------
@@RGB2BGR
<GROUP Graphics.Colors>
Summary:
  Reorders a stream of "Count" RGB values to BGR, additionally an eventual sample size adjustment is done.
Description:
  Reorders a stream of "Count" RGB values to BGR, additionally an eventual sample size adjustment is done.
Parameters:
  Source - Source pointer to a stream of RGB records, the records in the stream can be 3 bytes or 3 words. This can also be a separate R, G and B stream of single byte or word color components.
  Target - Target pointer to a stream of BGR records that are 3 bytes long.
  BitsPerSample - The bits per sample of the source stream, this can be 8 or 16 bits.
  Count - Number of samples to convert.
Donator:
  Mike Lischke
--------------------------------------------------------------------------------
@@RGBA2BGRA
<GROUP Graphics.Colors>
Summary:
  Reorders a stream of "Count" RGBA values to BGRA, additionally an eventual sample size adjustment is done.
Description:
  Reorders a stream of "Count" RGBA values to BGRA, additionally an eventual sample
  size adjustment is done.
Parameters:
  Source - The source pointer to a stream of RGBA records, the size of the records is 4 bytes or 4 words.
  Target - The pointer to the target stream of BGRA records, the size of the records is 4 bytes per record.
  BitsPerSample - The bits per sample of the source stream, this can be 8 or 16 bits.
  Count - Number of samples to convert.
Donator:
  Mike Lischke
--------------------------------------------------------------------------------
@@WinColor2OpenGLColor
<GROUP Graphics.Colors>
Summary:
  Converts TColor to OpenGLColor.
Description:
  Conversion of TColor to OpenGLColor, the color channels of OpenGL are floats between 0.0 and 1.0.
Parameters:
  Color - The color to convert.
  Red - The Red OpenGLColor channel between 0.0 and 1.0.
  Green - The Green OpenGLColor channel between 0.0 and 1.0.
  Blue - The Blue OpenGLColor channel between 0.0 and 1.0.
Donator:
  Pelle Liljendal
--------------------------------------------------------------------------------
@@OpenGLColor2WinColor
<GROUP Graphics.Colors>
Summary:
  Converts OpenGLColor to TColor.
Description:
  Conversion of OpenGLColor to TColor, the color channels of OpenGL are floats between 0.0 and 1.0.
Parameters:
  Red - The Red OpenGLColor channel between 0.0 and 1.0.
  Green - The Green OpenGLColor channel between 0.0 and 1.0.
  Blue - The Blue OpenGLColor channel between 0.0 and 1.0.
Result:
  The windows color.
Donator:
  Pelle Liljendal
--------------------------------------------------------------------------------
@@TJclDesktopCanvas
<GROUP Graphics.Desktop>
Summary:
  Access the desktop canvas.
Description:
  This class gives you access to the desktop canvas. It inherits everything from the canvas
  class. When using this canvas don't change the handle of the canvas this will remove the
  functionality of the class.
Donator:
  Pelle Liljendal
--------------------------------------------------------------------------------
@@TJclDesktopCanvas.Create
Summary:
  Creates the desktop canvas class.
Description:
  Gets the desktop graphics device handle from the operating system and initializes the canvas.
Visibility:
  Public
Donator:
  Pelle Liljendal
--------------------------------------------------------------------------------
@@TJclDesktopCanvas.Destroy
Summary:
  Destroys the desktop canvas class.
Description:
  Destroys the desktop canvas class.
Visibility:
  Public
Donator:
  Pelle Liljendal
--------------------------------------------------------------------------------
@@TColor32
<GROUP Graphics.Types>
Summary:
  TColor32 represents an ARGB color quad.
Description:
  TColor32 represents an ARGB color quad.
Donator:
  Alex Denissov
--------------------------------------------------------------------------------
@@TColor32Array
<GROUP Graphics.Types>
Summary:
  TColor32 Arrays.
Description:
  TColor32 Arrays.
Donator:
  Alex Denissov
--------------------------------------------------------------------------------
@@TPalette32
<GROUP Graphics.Types>
Summary:
  TPalette32 types are mostly used to simulate palette-based operations.
Description:
  TPalette32 types are mostly used to simulate palette-based operations.
Donator:
  Alex Denissov
--------------------------------------------------------------------------------
@@PointIsNull
<GROUP Graphics.Points>
Summary:
  Tests a point against the null point.
Description:
  PointIsNull compares P against the null point (0, 0).
Parameters:
  P - The point to test.
Result:
  If the supplied point equals the null point (a TPoint with both X and Y set to 0)
  the function returns True, otherwise it returns False.
Donator:
  Marcel van Brakel
--------------------------------------------------------------------------------
@@ClipLine
<GROUP Graphics.Clipping>
Summary:
  Intersects a line with a rectangle.
Description:
  Computes the section of a line that lies inside a given rectangle.
Parameters:
  X1 - Horizontal coordinate of the line's starting point. 
  Y1 - Vertical coordinate of the line's starting point.
  X2 - Horizontal coordinate of the line's ending point. 
  Y2 - Vertical coordinate of the line's ending point.
  ClipRect - Clipping rectangle.
  MinX - Left border of the clipping rectangle.
  MinY - Top border of the clipping rectangle.
  MaxX - Right border of the clipping rectangle.
  MaxY - Bottom border of the clipping rectangle.
  Codes - Points to a TClipCodes variable in which the clipping code for (X2, Y2) is stored.
  As for the use of this parameter, have a look at the source code of the DrawPolyLine routine.
Result:
  True, if some section of the line lies inside of the clipping rectangle (and eventually shall be
  drawn), False otherwise.
Donator:
  Robert Rossmair
--------------------------------------------------------------------------------
@@DrawPolyLine
<GROUP Graphics.Clipping>
Summary:
  Clips drawing of a line sequence to a rectangular region.
Description:
  The DrawPolyline function draws a series of connected line segments, clipping them to the
  rectangle specified by ClipRect. The lines are drawn by connecting the points in the specified
  array by using the current pen.
Parameters:
  Canvas - The canvas to draw on.
  Points - The array of points that define the line sequence.
  ClipRect - The clipping rectangle.
Donator:
  Robert Rossmair
--------------------------------------------------------------------------------
@@GetIconFromBitmap
<GROUP Graphics.Conversion, $Graphics.Bitmaps, $Graphics.Icons>
Summary:
  Converts a bitmap to an icon.
Description:
  GetIconFromBitmap retrieves the specified Bitmap object as an icon.
Parameters:
  Bitmap - The TBitmap object that provides the icon image.
  Icon - The TIcon object that receives the bitmap image.
Platform:
  VCL
See also:
  BitmapToIcon
  WriteIcon
Donator:
  Robert Rossmair
--------------------------------------------------------------------------------
@@WriteIcon@TStream@HICON@Boolean
<GROUP Graphics.Icons>
<TITLE WriteIcon>
Summary:
  Writes an icon to a stream, allowing for > 16 colors.
Description:
  Use WriteIcon to write the icon image (specified by its
  handle) to a stream.

  In contrast to TIcon.SaveToStream, WriteIcon does not force
  the number of colors in the icon image down to 16.
Parameters:
  Icon        - Handle of the icon.
  Stream      - The stream object that receives the memory image of the icon.
  WriteLength - Determines whether a Longint containing the data size.
                is written to the stream prior to the icon data.
Platform:
  Win32
See also:
 WriteIcon
 SaveIconToFile
Donator:
  Robert Rossmair
--------------------------------------------------------------------------------
@@WriteIcon@TStream@HBITMAP@HBITMAP@Boolean
<GROUP Graphics.Icons, $Graphics.Bitmaps, $Graphics.Conversion>
<TITLE WriteIcon>
Summary:
  Writes two bitmaps as an icon to a stream.
Description:
  Use WriteIcon to write the icon image (specified by its
  handle) to a stream.
Parameters:
  ColorBitmap - Handle of the bitmap that holds the image data for
                the icon.
  MaskBitmap  - Handle of the bitmap that holds the mask data for
                the icon.
  Stream      - The stream object that receives the memory image of
                the icon.
  WriteLength - Determines whether a Longint containing the data
                size is written to the stream prior to the icon data.
Platform:
  Win32
See also:
  WriteIcon
  BitmapToIcon
Donator:
  Robert Rossmair
--------------------------------------------------------------------------------
@@SaveIconToFile
<GROUP Graphics.Icons>
Summary:
  Writes an icon to a file, allowing for > 16 colors.
Description:
  SaveIconToFile writes the icon to a file, specified by FileName.

  In contrast to TIcon.SaveToFile, WriteIcon does not force
  the number of colors in the icon image down to 16.
Parameters:
  FileName - The name of the file to which to write the icon data.
  Icon - The icon to save, specified by its handle.
Platform:
  Win32
See also:
  WriteIcon
Donator:
  Robert Rossmair
--------------------------------------------------------------------------------
@@ScreenShot@TBitmap@Integer@Integer@Integer@Integer@HWND
<GROUP Graphics.Bitmaps>
Summary:
  Stores the image of a window into a bitmap.
Description:
  Takes a screenshot of the window specified by the Window
  parameter (default: desktop) and stores the image into bm.
Parameters:
  bm     - The bitmap to receive the screenshot image.
  Left   - x-coordinate of the source rectangle's upper-left
           corner, relative to window origin.
  Top    - y-coordinate of the source rectangle's upper-left
           corner, relative to window origin.
  Width  - Width of the image to take.
  Height - Height of the image to take.
  Window - The window of which to retrieve an image.
Platform:
  Win32
Donator:
  Bernhard Berger
--------------------------------------------------------------------------------
@@ScreenShot@TBitmap
<GROUP Graphics.Bitmaps>
<COMBINE ScreenShot@TBitmap@Integer@Integer@Integer@Integer@HWND>
--------------------------------------------------------------------------------
