我有这个代码基于列数据着色网格行(网格来自devexpress)
var
AColumn: TcxCustomGridTableItem;
gs: variant;
begin
AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('COLOR');
gs := ARecord.Values[AColumn.Index];
if VarType(gs) and VarTypeMask = varString or varUString then
AStyle.Color := gs; //<<<----- exception
Run Code Online (Sandbox Code Playgroud)
字段color是varchar(firebird)包含像cllime,clred等的值......但是我在错误注释的行中得到错误'无法将类型的变体(UnicodeString)转换为类型(布尔)'.我应该改变什么?
谢谢
我会用if以下内容替换你的陈述.它使用VarIsType函数,它更直接用于Variant类型检查,它通过使用StringToColor函数将存储在Variant变量中的字符串值转换为颜色:
...
if VarIsType(gs, [varString, varUString]) then
AStyle.Color := StringToColor(gs);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11770 次 |
| 最近记录: |