Показать сообщение отдельно
  #6  
Старый 06.07.2015, 22:57
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от 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;
Ответить с цитированием