Topic: Изменение цвета текста в гриде

Добрый вечер!
Подскажите как можно прописать в процедуре условие, если в 4 столбце дата больше 30 дней от текущей, цвет текста в строке окрашивается в синий цвет.
Попробывал сделать на основе окраски строк, не вышло, ведь тут нет условия значения ячейки.

procedure frmDic_TableGrid8_OnChange (Sender: TObject);
var
  i,c: integer;
   k,q: integer;
  YY, MM, DD: Word;
begin
     frmDic.TableGrid8.BeginUpdate;

     q := frmDic.TableGrid8.Columns.Count-1;
     c := frmDic.TableGrid8.RowCount - 1;
     for i := 0 to c do
     begin
             s := frmDic.TableGrid8.Cells[4,i];
             if ValidDate(s) then
                 if (StrToDate(s) - 30) > now then
                     for k := 0 to q do
                         frmDic.TableGrid8.Cell[k,i].TextColor := clNavy;
     end;

2 (edited by derek 2021-01-04 18:19:34)

Re: Изменение цвета текста в гриде

Привет Glkonst79,
Попробуйте вот так (см. Вложение)
Derek.

Post's attachments

Attachment icon colourgrid.zip 336.06 kb, 230 downloads since 2021-01-04 

Re: Изменение цвета текста в гриде

Спасибо Derek!
С помощью Вашей подсказки работает, но только при открытии формы. А как сделать чтобы и обновлялось после каждого изменения в таблице?
Я думал что условие CHENGE работает на изменении, а не открытии формы.
Заранее спасибо!!!

Re: Изменение цвета текста в гриде

Сожалею,
Я не обращал внимания!
Это должно быть для vrow = 0 (не 1) и vcolumn = 0 (не 1).
Derek.

Post's attachments

Attachment icon colourgrid.zip 336.09 kb, 273 downloads since 2021-01-04 

Re: Изменение цвета текста в гриде

Спасибо Derek!
Все заработало как надо.