我不知道为什么这在 SQL Server Express 2014 上不起作用:
procedure TMainForm.cxGrid1DBTableView1DONEStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; var AStyle: TcxStyle);
var AColumn: TcxCustomGridTableItem;
begin
AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('DONE');
if VarToStr(ARecord.Values[AColumn.Index]) = '0' then
AStyle := cxstyle1 else AStyle := cxstyle2;
end;
它适用于 SQLite、Firebird、Accuracer、Absolute Database ......但不适用于 SQL Server Express 2014。而且我不知道可能出了什么问题。
数据库中的“完成”字段是“位”数据类型(布尔字段的 SQL 服务器版本)。值通常是 0 或 1。在 cxGrid 中,它是复选框类型。Cxstyle1 的颜色为 clRed,cxstyle2 的颜色为 clLime。
当应用程序运行时,列中的所有字段(选中或未选中)都是彩色的 clLime。但只有在选中复选框时,它们才应该以这种方式着色!有什么我做错了吗?