Delphi XE2 之 FireMonkey 入门(5) - TAlphaColor
不是 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(, , );
//另有 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 := ; //调下透明度
Rectangle1.Fill.Color := C;
A := TAlphaColorRec(C).A;
ShowMessageFmt('%x %x %x %x', [A, R, G, 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.Sat, ColorQuad1.Lum]);
end;
在 System.UIConsts 单元也有 StringToAlphaColor()、AlphaColorToIdent()、IdentToAlphaColor() 等相关函数.
Delphi XE2 之 FireMonkey 入门(5) - TAlphaColor的更多相关文章
- Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题
Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题 很喜欢 FMX 的一些新控件, 如: TExpander.TArcDial.TComboTrackBar.T ...
- Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...
- Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid
Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...
- Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit
Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...
- Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox
Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项 ...
- Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo 值得注意的变化: 1.其父类 TScrollBox 的许多特性也很有用处, 如: Memo1.UseSma ...
- Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox
Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollB ...
- Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu
Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopup ...
- Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public constructor Create(...); ov ...
随机推荐
- Centos 修改当前路径显示为全路径
1.修改显示全路径: vim /etc/bashrc 找到[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\ ...
- Schematic - "DesignEntry 30 ERROR Instance referencing symbol is out of date"
Schematic - "DesignEntry 30 ERROR Instance referencing symbol is out of date" Descript ...
- 1、Framework7
一. <!DOCTYPE html> <html> <head> <!-- 所需的Meta标签--> <meta charset="ut ...
- PAT Advanced 1006 Sign In and Sign Out (25 分)
At the beginning of every day, the first person who signs in the computer room will unlock the door, ...
- 长沙理工大学第十二届ACM大赛-重现赛 J 武藏牌牛奶促销
链接:https://ac.nowcoder.com/acm/contest/1/J 来源:牛客网 武藏牌牛奶促销 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...
- linux 上配置swoole
1.首先我们要安装swoole扩展的话,需要把它的包下载下来,下载地址是: https://github.com/swoole/swoole-src 本人qq群也有许多的技术文档,希望可以为你提供一些 ...
- Web应用防火墙云WAF详细介绍
Web应用防火墙,或叫Web应用防护系统(也称为:网站应用级入侵防御系统.英文:Web Application Firewall,简称: WAF).利用国际上公认的一种说法:Web应用防火墙是通过执行 ...
- 关于vs2019
一.vs2019中的MFC 在想创建一个基于对话的应用时找不着模版了,这下可慌了,试遍了已有的各个模版都没要,要么就是缺少头文件,我在想是不是少安装了什么选项.重装了相关模块,最后又核对了一遍,都对. ...
- MIF文件生成说明
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Q ...
- LCA【Tarjan】
首先,我们先来了解LCA. LCA 是树上两个点最近的公共祖先. 比如说,在如图的树中,3与4的公共祖先有“2”,“1”,但最近的祖先是“2”. 显然,暴力可以做O(n),但是我们希望更快. 现在,有 ...