如何通过LiveBinding将AlphaColor存储到数据库字段

时间:2018-03-06 00:19:40

标签: delphi firemonkey livebindings

我试图通过Firemonkey项目中的LiveBindings将ComboColorBox.Color属性存储在数据库字段中。我想存储十六进制AlphaColor值,但十六进制颜色值会自动转换为十进制值而不是AlphaColor

我在LiveBindings文档中搜索,发现我可以更改控件属性的值,然后将其存储在数据库中,在绑定的CustomParse属性中编写绑定表达式。问题是没有内置函数可以将表达式中的AlphaColor转换为String

我是否必须编写自定义函数来执行此操作?我该如何编写该功能?还是有另一种解决方案?

1 个答案:

答案 0 :(得分:1)

您应该知道TAlphaColorcardinal

中定义的System.UITypes是整数,或更精确type TAlphaColor = Cardinal;
Label1.Text := IntToStr((Sender as TComboColorBox).Color);    // decimal notation
Label2.Text := IntToHex((Sender as TComboColorBox).Color, 8); // hexadecimal notation

因此,您可以将任何整数应用于字符串转换函数,例如:

TAlphaColor

因此,要将IntToHex()值存储为十六进制字符串,您可以使用getContext()转换颜色值。另一方面,你确定你真的想要首先将它作为字符串存储在数据库中。