Delphi XE2 之 FireMonkey 入门(5) - TAlphaColor
发布时间:2020-12-15 09:59:36 所属栏目:大数据 来源:网络整理
导读:不是 TColor,是 TAlphaColor 了. TAlphaColor = type Cardinal; 还是一个整数. 四个字节分别是: AA RR GG BB(透明度、红、绿、蓝); 这和 TColor 的颜色序相反,并增加了透明度. 在 HD 窗体上添加一个 TRectangle 和三个 TButton,测试: //下面四种赋值方法相同
不是 TColor,是 TAlphaColor 了. TAlphaColor = type Cardinal; 还是一个整数. 四个字节分别是: AA RR GG BB(透明度、红、绿、蓝); 这和 TColor 的颜色序相反,并增加了透明度. 在 HD 窗体上添加一个 TRectangle 和三个 TButton,测试: //下面四种赋值方法相同 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,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,B]); TAlphaColorRec(C).A := 127; //调下透明度 Rectangle1.Fill.Color := C; A := TAlphaColorRec(C).A; ShowMessageFmt('%x %x %x %x',B]); end; 调整颜色的控件也很方便,现在也能方便地调整: 色调、饱和度、亮度. 添加 TRectangle、TColorComboBox、TColorPanel、TColorPicker、TComboColorBox、TColorQuad 各一个,测试: //在 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.Lum]); end;在 System.UIConsts 单元也有 StringToAlphaColor()、AlphaColorToIdent()、IdentToAlphaColor() 等相关函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |