Цитата:
Сообщение от nikotan
не понял что там должен загрузить...
...у тебя есть вычисление даты, тоже не понял как работает, проще можно?
например сравнить дату в строке и если позже сегодняшнего, то цвет красный, спасибо!
|
Я уж и не знаю, как можно проще-то объяснить - в папке со сборкой лежит файл prm.xls (таблица Excel) нажав на "Загрузить" следует выбрать его в диалоге открытия файла, при запуске в едите отображается дата для сравнения (по умолчанию она актуальна на момент запуска) если её изменить и снова загрузить табличку (это не самый лучший вариант, проще обновить грид командой .Repaint) изменится и результат раскраски строк, другими словами, загрузите и посмотрите
А вычисление работает так - в процедуре DrawCell считывается дата из поля таблицы (дата), если она < (меньше) сегодняшней (заданной в Edit1) плюс если в поле исполнение (статус) есть значение "невыполнено", то изменить цвет выделения этой строки, иначе цвет вернуть взад, вот и весь алгол, ведь это лучше чем бегать по строчкам в таймере
З.Ы. Забыл код присовокупить
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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 ;
|