Delphi XE 2のFireMonkey入門(5)-TAlphaColor
2593 ワード
TColorではなく、TAlphaColorです.
TAlphaColor = type Cardinal; まだ整数です.
4バイトはそれぞれ:AARR GG BB(透明度、赤、緑、青);これはTColorの色順とは逆であり、透明度が増加する.
HDフォームにTRectangleとTbuttonを3つ追加し、テストします.
色を調整するコントロールも便利で、色合い、彩度、明るさも簡単に調整できます.
TRectangle、TColorComboBox、TColorPanel、TColorPicker、TComboColorBox、TColorQuadの各1つを追加し、テスト:
システムでUIconstsユニットには、StringToAlphaColor()、AlphaColorToIdent()、IdentToAlphaColor()などの相関関数もある.
TAlphaColor = type Cardinal; まだ整数です.
4バイトはそれぞれ:AARR GG BB(透明度、赤、緑、青);これはTColorの色順とは逆であり、透明度が増加する.
HDフォームにTRectangleとTbuttonを3つ追加し、テストします.
//
procedure TForm1.Button1Click(Sender: TObject);
begin
Rectangle1.Fill.Color := $FFFF0000;
Rectangle1.Fill.Color := claRed;
Rectangle1.Fill.Color := TAlphaColors.Red;
Rectangle1.Fill.Color := TAlphaColorRec.Red;
end;
// TAlphaColor
procedure TForm1.Button2Click(Sender: TObject);
begin
Rectangle1.Fill.Color := MakeColor(0, 0, 255);
// AppendColor()、SubtractColor()
end;
// TAlphaColorRec
procedure TForm1.Button3Click(Sender: TObject);
var
C: TAlphaColor;
A,R,G,B: Byte;
begin
C := MakeColor($82, $00, $4B, $FF);
Rectangle1.Fill.Color := C;
A := TAlphaColorRec(C).A;
R := TAlphaColorRec(C).R;
G := TAlphaColorRec(C).G;
B := TAlphaColorRec(C).B;
ShowMessageFmt('%x %x %x %x', [A, R, G, B]);
TAlphaColorRec(C).A := 127; //
Rectangle1.Fill.Color := C;
A := TAlphaColorRec(C).A;
ShowMessageFmt('%x %x %x %x', [A, R, G, B]);
end;
色を調整するコントロールも便利で、色合い、彩度、明るさも簡単に調整できます.
TRectangle、TColorComboBox、TColorPanel、TColorPicker、TComboColorBox、TColorQuadの各1つを追加し、テスト:
// TColorComboBox OnChange
procedure TForm1.ColorComboBox1Change(Sender: TObject);
begin
Rectangle1.Fill.Color := ColorComboBox1.Color;
end;
// TColorPanel OnChange
procedure TForm1.ColorPanel1Change(Sender: TObject);
begin
Rectangle1.Fill.Color := ColorPanel1.Color;
end;
// TColorPicker OnChange
procedure TForm1.ColorPicker1Click(Sender: TObject);
begin
Rectangle1.Fill.Color := ColorPicker1.Color;
end;
// TComboColorBox OnChange
procedure TForm1.ComboColorBox1Change(Sender: TObject);
begin
Rectangle1.Fill.Color := ComboColorBox1.Color;
end;
// TColorQuad HSL( 、 、 )
procedure TForm1.ColorQuad1Change(Sender: TObject);
var
C: TAlphaColor;
begin
C := Rectangle1.Fill.Color;
Rectangle1.Fill.Color := ChangeHSL(C, ColorQuad1.Hue, ColorQuad1.Sat, ColorQuad1.Lum);
Caption := Format('%f, %f, %f', [ColorQuad1.Hue, ColorQuad1.Sat, ColorQuad1.Lum]);
end;
システムでUIconstsユニットには、StringToAlphaColor()、AlphaColorToIdent()、IdentToAlphaColor()などの相関関数もある.