anchor.diff:  
   type
     TfpgCoord       = integer;     // we might use floating point coordinates in the future...
  -  TfpgColor       = type longword;    // Always in RRGGBB (Alpha, Red, Green, Blue) format!!
  +  TfpgColor       = type longword;    // Always in AARRGGBB (Alpha, Red, Green, Blue) format!!
     TfpgString      = type string;
     TfpgChar        = type string[4];
   
     PPoint = ^TPoint;
   
  -  TRGBTriple = record
  -    Red: word;
  -    Green: word;
  -    Blue: word;
  -    Alpha: word;
  -  end deprecated;
  +  TRGBTriple = packed record
  +    Red: byte;
  +    Green: byte;
  +    Blue: byte;
  +    Alpha: byte;
  +  end;
   
     // Same declaration as in FPImage unit, but we don't use FPImage yet, so declare it here
     TFPColor = record
  -    Red: word;
  -    Green: word;
  -    Blue: word;
  -    Alpha: word;
  -  end;
  +    Red: byte;
  +    Green: byte;
  +    Blue: byte;
  +    Alpha: byte;
  +  end deprecated;
   
     TWindowType = (wtChild, wtWindow, wtModalForm, wtPopup);
   
  
positive.code:   end
  end;
  
  function RGBTripleTofpgColor(const AColor: TRGBTriple): TfpgColor; deprecated;
  begin
    Result := AColor.Blue or (AColor.Green shl 8) or (AColor.Red shl 16) or (AColor.Alpha shl 32);
  end;
  
  function FPColorTofpgColor(const AColor: TFPColor): TfpgColor;
  begin
    Result := AColor.Blue or (AColor.Green shl 8) or (AColor.Red shl 16) or (AColor.Alpha shl 32);
  end;
  
  function fpgGetRed(const AColor: TfpgColor): word;
  var
    c: TfpgColor;
  begin
    c := fpgColorToRGB(AColor);
    // AARRGGBB format
    Result := Word((c shr 16) and $FF);
  end;
  
  function fpgGetGreen(const AColor: TfpgColor): word;
  var
    c: TfpgColor;
  begin
    c := fpgColorToRGB(AColor);
    // AARRGGBB format
    Result := Word((c shr 8) and $FF);
  end;
  
  function fpgGetBlue(const AColor: TfpgColor): word;
  var
    c: TfpgColor;
  begin
    c := fpgColorToRGB(AColor);
    // AARRGGBB format
    Result := Word(c and $FF);
  end;
  
  function fpgGetAlpha(const AColor: TfpgColor): word;
  var
    c: TfpgColor;
  begin
    c := fpgColorToRGB(AColor);
    // AARRGGBB format
    Result := Word((c shr 32) and $FF);
  end;
  
  function fpgGetAvgColor(const AColor1, AColor2: TfpgColor): TfpgColor;
  var
    c1, c2: TFPColor;
    avg: TFPColor;
  begin
    c1 := fpgColorToFPColor(AColor1);
    c2 := fpgColorToFPColor(AColor2);
    avg.Red   := c1.Red + (c2.Red - c1.Red) div 2;
    avg.Green := c1.Green + (c2.Green - c1.Green) div 2;
    avg.Blue  := c1.Blue + (c2.Blue - c1.Blue) div 2;
    avg.Alpha := c1.Alpha + (c2.Alpha - c1.Alpha) div 2;
    Result := FPColorTofpgColor(avg);
  end;
  
  function fpgColor(const ARed, AGreen, ABlue: byte): TfpgColor;
  
negative.code:   lColor.Red := Round((lColor.Red*APercent/100) + (255 - APercent/100*255));
    lColor.Green := Round((lColor.Green*APercent/100) + (255 - APercent/100*255));
    lColor.Blue := Round((lColor.Blue*APercent/100) + (255 - APercent/100*255));
    Result := RGBTripleTofpgColor(lColor);
  end;
  
  function PtInRect(const ARect: TfpgRect; const APoint: TPoint): Boolean;
  