delphi - раскраска поля cxdbgrid в зависимости от его содержимого
Я не совсем уверен, как это выразить. Я крашу поле сетки cxDB на основе значения:
procedure TForm1.cxGrid1DBTableView1StylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; var AStyle: TcxStyle);
var AColumn: TcxCustomGridTableItem;
begin
AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('SIFRA');
if VarToStr(ARecord.Values[AColumn.Index]) = '007 01' then
AStyle := cxstyle1;
end;
Я хотел бы изменить код, чтобы все поля, которые имеют 007 в столбце, были окрашены.
1 ответ
Решение
Согласно комментариям, вы искали способ, как написать оператор, чтобы определить, начинается ли определенный текст с указанной строки. Для этого вы можете использовать, например, StartsText
функция (System.StrUtils
). Следующее утверждение будет иметь значение True, если текущий текст ячейки начинается с 007
:
if StartsText('007', VarToStr(ARecord.Values[AColumn.Index])) then