чтобы ошибка "not valid data and time" не выскакивала, измените данную процедуру таким вот образом.
Иначе скрипт пытается преобразовать пустую строку в дату
procedure frmMain_TableGrid1_OnChange (Sender: TObject);
var
i, Ii, cR, cC : integer;
begin
cR := frmMain.TableGrid1.RowCount - 1;
cC := frmMain.TableGrid1.Columns.Count - 1;
frmMain.TableGrid1.BeginUpdate;
for i := 0 to cR do
begin
if (frmMain.TableGrid1.Cells[1,i]<>'') and (Date - StrToDateTime(frmMain.TableGrid1.Cells[1,i]) >=0) then
begin
for Ii:=0 to Cc do frmMain.TableGrid1.Cell[Ii,i].Color := $adffaf;
//frmMain.TableGrid1.Cell[1,i].Color := $006F6FFF;
end;
if (frmMain.TableGrid1.Cells[1,i]<>'') and (Date - StrToDateTime(frmMain.TableGrid1.Cells[1,i]) >=5) then
begin
for Ii:=0 to Cc do frmMain.TableGrid1.Cell[Ii,i].Color := $addfff;
end;
if (frmMain.TableGrid1.Cells[1,i]<>'') and (Date - StrToDateTime(frmMain.TableGrid1.Cells[1,i]) >=10) then
begin
for Ii:=0 to Cc do frmMain.TableGrid1.Cell[Ii,i].Color := $adafff;
end;
end;
frmMain.TableGrid1.EndUpdate;
end;
Dmitry.