IGPColors 是一个泛型数组应用于 TGPColor 的接口, 需要一组颜色时可以用它; 当然用其他方法也不麻烦, 它在整个体系中并不重要.

本例把 TGPColor 中的 141 个颜色常量装载到一个 IGPColors, 顺便看看这些颜色.

运行效果图:



uses GdiPlus;

procedure TForm1.FormPaint(Sender: TObject);
const
  Count = 141;
var
  Colors: IGPColors;
  Graphics: IGPGraphics;
  Brush, BrushText: IGPSolidBrush;
  Pen: IGPPen;
  Rect: TGPRectF;
  Font: IGPFont;
  StringFormat: IGPStringFormat;
  str: string;
  i: Integer;
begin
  Colors := TGPArray<TGPColor>.Create(Count);

  Colors[0] := TGPColor.AliceBlue           ;
  Colors[1] := TGPColor.AntiqueWhite        ;
  Colors[2] := TGPColor.Aqua                ;
  Colors[3] := TGPColor.Aquamarine          ;
  Colors[4] := TGPColor.Azure               ;
  Colors[5] := TGPColor.Beige               ;
  Colors[6] := TGPColor.Bisque              ;
  Colors[7] := TGPColor.Black               ;
  Colors[8] := TGPColor.BlanchedAlmond      ;
  Colors[9] := TGPColor.Blue                ;
  Colors[10] := TGPColor.BlueViolet          ;
  Colors[11] := TGPColor.Brown               ;
  Colors[12] := TGPColor.BurlyWood           ;
  Colors[13] := TGPColor.CadetBlue           ;
  Colors[14] := TGPColor.Chartreuse          ;
  Colors[15] := TGPColor.Chocolate           ;
  Colors[16] := TGPColor.Coral               ;
  Colors[17] := TGPColor.CornflowerBlue      ;
  Colors[18] := TGPColor.Cornsilk            ;
  Colors[19] := TGPColor.Crimson             ;
  Colors[20] := TGPColor.Cyan                ;
  Colors[21] := TGPColor.DarkBlue            ;
  Colors[22] := TGPColor.DarkCyan            ;
  Colors[23] := TGPColor.DarkGoldenrod       ;
  Colors[24] := TGPColor.DarkGray            ;
  Colors[25] := TGPColor.DarkGreen           ;
  Colors[26] := TGPColor.DarkKhaki           ;
  Colors[27] := TGPColor.DarkMagenta         ;
  Colors[28] := TGPColor.DarkOliveGreen      ;
  Colors[29] := TGPColor.DarkOrange          ;
  Colors[30] := TGPColor.DarkOrchid          ;
  Colors[31] := TGPColor.DarkRed             ;
  Colors[32] := TGPColor.DarkSalmon          ;
  Colors[33] := TGPColor.DarkSeaGreen        ;
  Colors[34] := TGPColor.DarkSlateBlue       ;
  Colors[35] := TGPColor.DarkSlateGray       ;
  Colors[36] := TGPColor.DarkTurquoise       ;
  Colors[37] := TGPColor.DarkViolet          ;
  Colors[38] := TGPColor.DeepPink            ;
  Colors[39] := TGPColor.DeepSkyBlue         ;
  Colors[40] := TGPColor.DimGray             ;
  Colors[41] := TGPColor.DodgerBlue          ;
  Colors[42] := TGPColor.Firebrick           ;
  Colors[43] := TGPColor.FloralWhite         ;
  Colors[44] := TGPColor.ForestGreen         ;
  Colors[45] := TGPColor.Fuchsia             ;
  Colors[46] := TGPColor.Gainsboro           ;
  Colors[47] := TGPColor.GhostWhite          ;
  Colors[48] := TGPColor.Gold                ;
  Colors[49] := TGPColor.Goldenrod           ;
  Colors[50] := TGPColor.Gray                ;
  Colors[51] := TGPColor.Green               ;
  Colors[52] := TGPColor.GreenYellow         ;
  Colors[53] := TGPColor.Honeydew            ;
  Colors[54] := TGPColor.HotPink             ;
  Colors[55] := TGPColor.IndianRed           ;
  Colors[56] := TGPColor.Indigo              ;
  Colors[57] := TGPColor.Ivory               ;
  Colors[58] := TGPColor.Khaki               ;
  Colors[59] := TGPColor.Lavender            ;
  Colors[60] := TGPColor.LavenderBlush       ;
  Colors[61] := TGPColor.LawnGreen           ;
  Colors[62] := TGPColor.LemonChiffon        ;
  Colors[63] := TGPColor.LightBlue           ;
  Colors[64] := TGPColor.LightCoral          ;
  Colors[65] := TGPColor.LightCyan           ;
  Colors[66] := TGPColor.LightGoldenrodYellow;
  Colors[67] := TGPColor.LightGray           ;
  Colors[68] := TGPColor.LightGreen          ;
  Colors[69] := TGPColor.LightPink           ;
  Colors[70] := TGPColor.LightSalmon         ;
  Colors[71] := TGPColor.LightSeaGreen       ;
  Colors[72] := TGPColor.LightSkyBlue        ;
  Colors[73] := TGPColor.LightSlateGray      ;
  Colors[74] := TGPColor.LightSteelBlue      ;
  Colors[75] := TGPColor.LightYellow         ;
  Colors[76] := TGPColor.Lime                ;
  Colors[77] := TGPColor.LimeGreen           ;
  Colors[78] := TGPColor.Linen               ;
  Colors[79] := TGPColor.Magenta             ;
  Colors[80] := TGPColor.Maroon              ;
  Colors[81] := TGPColor.MediumAquamarine    ;
  Colors[82] := TGPColor.MediumBlue          ;
  Colors[83] := TGPColor.MediumOrchid        ;
  Colors[84] := TGPColor.MediumPurple        ;
  Colors[85] := TGPColor.MediumSeaGreen      ;
  Colors[86] := TGPColor.MediumSlateBlue     ;
  Colors[87] := TGPColor.MediumSpringGreen   ;
  Colors[88] := TGPColor.MediumTurquoise     ;
  Colors[89] := TGPColor.MediumVioletRed     ;
  Colors[90] := TGPColor.MidnightBlue        ;
  Colors[91] := TGPColor.MintCream           ;
  Colors[92] := TGPColor.MistyRose           ;
  Colors[93] := TGPColor.Moccasin            ;
  Colors[94] := TGPColor.NavajoWhite         ;
  Colors[95] := TGPColor.Navy                ;
  Colors[96] := TGPColor.OldLace             ;
  Colors[97] := TGPColor.Olive               ;
  Colors[98] := TGPColor.OliveDrab           ;
  Colors[99] := TGPColor.Orange              ;
  Colors[100] := TGPColor.OrangeRed           ;
  Colors[101] := TGPColor.Orchid              ;
  Colors[102] := TGPColor.PaleGoldenrod       ;
  Colors[103] := TGPColor.PaleGreen           ;
  Colors[104] := TGPColor.PaleTurquoise       ;
  Colors[105] := TGPColor.PaleVioletRed       ;
  Colors[106] := TGPColor.PapayaWhip          ;
  Colors[107] := TGPColor.PeachPuff           ;
  Colors[108] := TGPColor.Peru                ;
  Colors[109] := TGPColor.Pink                ;
  Colors[110] := TGPColor.Plum                ;
  Colors[111] := TGPColor.PowderBlue          ;
  Colors[112] := TGPColor.Purple              ;
  Colors[113] := TGPColor.Red                 ;
  Colors[114] := TGPColor.RosyBrown           ;
  Colors[115] := TGPColor.RoyalBlue           ;
  Colors[116] := TGPColor.SaddleBrown         ;
  Colors[117] := TGPColor.Salmon              ;
  Colors[118] := TGPColor.SandyBrown          ;
  Colors[119] := TGPColor.SeaGreen            ;
  Colors[120] := TGPColor.SeaShell            ;
  Colors[121] := TGPColor.Sienna              ;
  Colors[122] := TGPColor.Silver              ;
  Colors[123] := TGPColor.SkyBlue             ;
  Colors[214] := TGPColor.SlateBlue           ;
  Colors[125] := TGPColor.SlateGray           ;
  Colors[126] := TGPColor.Snow                ;
  Colors[127] := TGPColor.SpringGreen         ;
  Colors[128] := TGPColor.SteelBlue           ;
  Colors[129] := TGPColor.Tan                 ;
  Colors[130] := TGPColor.Teal                ;
  Colors[131] := TGPColor.Thistle             ;
  Colors[132] := TGPColor.Tomato              ;
  Colors[133] := TGPColor.Transparent         ;
  Colors[134] := TGPColor.Turquoise           ;
  Colors[135] := TGPColor.Violet              ;
  Colors[136] := TGPColor.Wheat               ;
  Colors[137] := TGPColor.White               ;
  Colors[138] := TGPColor.WhiteSmoke          ;
  Colors[139] := TGPColor.Yellow              ;
  Colors[140] := TGPColor.YellowGreen         ;

  Graphics := TGPGraphics.Create(Handle);
  Brush := TGPSolidBrush.Create($FFFFFFFF);
  BrushText := TGPSolidBrush.Create($FF000000);
  Pen := TGPPen.Create(TGPColor.Black, 0.5);
  Rect.Initialize(10, 10, 100, 20);

  StringFormat := TGPStringFormat.Create;
  StringFormat.Alignment := StringAlignmentCenter;
  StringFormat.LineAlignment := StringAlignmentCenter;
  Font := TGPFont.Create('Courier New', 9);

  Graphics.Clear(TGPColor.White);
  for i := 0 to Colors.Count - 1 do
  begin
    Brush.Color := Colors[i];
    Graphics.FillRectangle(Brush, Rect);
    Graphics.DrawRectangle(Pen, Rect);
    str := Format('$%.8x', [Colors[i].Value]);
    BrushText.Color := TGPColor.Create($00FFFFFF xor Colors[i].Value);
    Graphics.DrawString(str, Font, Rect, StringFormat, BrushText);
    Rect.Y := Rect.Y + Rect.Height + 5;
    if Rect.Y + Rect.Height > ClientHeight then
    begin
      Rect.Y := 10;
      Rect.X := Rect.X + Rect.Width + 10;
    end;
  end;
end;

posted on 2009-12-12 00:25  万一  阅读(2463)  评论(0编辑  收藏  举报