不是 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, 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 各一个, 测试:
//在 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() 等相关函数.
分类:
XE2 与 FireMonkey
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧