これが 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、Accurcer、Absolute Database では動作しますが、SQL Server Express 2014 では動作しません。何が問題なのかわかりません。
データベースの「DONE」フィールドは、「ビット」データ型 (ブール型フィールドの SQL Server バージョン) です。通常、値は 0 または 1 です。cxGrid では、チェックボックス タイプです。cxstyle1 の色は clRed で、cxstyle2 の色は clLime です。
アプリケーションが実行されると、列のすべてのフィールド (チェックされているかどうかに関係なく) が色付けされます。私が間違っていることはありますか?