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;