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;