-
Каким образом выделить ячейку грида в зависимости от значения соседней ячейки, т.е. значения другого поля в этой записи? Пытаюсь проверять на событии DBGridEh1DrawColumnCell и что-то запутался...
if (Column.FieldName = 'Tel1') and (MobiDataQueryPrizTel1.Value = true) then
begin
Canvas.Font.Color:= clRed;
Canvas.Font.Style:= [fsBold];
end
else
begin
Canvas.Font.Color:= clBlack;
Canvas.Font.Style:= [fsBold];
end; -
Медвежонок Пятачок © (28.08.09 17:39) [1]по моему надо второе условие ифа поместить внутрь ветки зен как вложенное.
-
Все, решение найдено. У меня просто переклинило на проверку по имени столбцов, а нужно было именно поля таблицы включать. Все работает.
-
> а нужно было именно поля таблицы включать.
Кстати, совет.
Некоторые гриды (DBGridEh, например) ищут полное совпадение по имени поля.
Т.е. более правильно не(Column.FieldName = 'Tel1')
а(AnsiUpperCase(Column.FieldName) = 'TEL1') -
> Кстати, совет.
> Некоторые гриды (DBGridEh, например) ищут полное совпадение
> по имени поля.
А почему нельзя просто:
if(Column.Field.DataSet.FieldByName('MyField').As<...> = <...>)then
Тогда проблемы имени поля становятся проблемами класса TDataSet.
<OFFTOP>Хотя тоже не вариант, ибо в SQL в 3-ем диалекте предусмотрены РиГиСтРоЗаВиСиМыЕ имена полей....</OFFTOP> -
> А почему нельзя просто:
>
> if(Column.Field.DataSet.FieldByName('MyField').As<...> =
> <...>)then
А потому, что у тебя конкретный Cell в гриде отрисовывается. Если ты весь Row красишь - тогда да.