Цитата:
Сообщение от nikotan
не понял что там должен загрузить...
...у тебя есть вычисление даты, тоже не понял как работает, проще можно?
например сравнить дату в строке и если позже сегодняшнего, то цвет красный, спасибо!
|
Я уж и не знаю, как можно проще-то объяснить - в папке со сборкой лежит файл prm.xls (таблица Excel) нажав на "Загрузить" следует выбрать его в диалоге открытия файла, при запуске в едите отображается дата для сравнения (по умолчанию она актуальна на момент запуска) если её изменить и снова загрузить табличку (это не самый лучший вариант, проще обновить грид командой .Repaint) изменится и результат раскраски строк, другими словами, загрузите и посмотрите
А вычисление работает так - в процедуре DrawCell считывается дата из поля таблицы (дата), если она < (меньше) сегодняшней (заданной в Edit1) плюс если в поле исполнение (статус) есть значение "невыполнено", то изменить цвет выделения этой строки, иначе цвет вернуть взад, вот и весь алгол, ведь это лучше чем бегать по строчкам в таймере
З.Ы. Забыл код присовокупить
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; vCol, vRow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with StrinGgrid1, Canvas do
begin
if Cells[0, vRow] <> '' then
begin
if (Cells[2, vRow] = 'невыполнено') and
(VarToDateTime(Cells[0, vRow]) < VarToDateTime(Edit1.Text)) then
Brush.Color:= clRed else Brush.Color:= clWhite;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Cells[vCol, vRow]);
end;
end;
end;