Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2010, 22:49   #1
Kuraj
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 20
По умолчанию Время + dbgrid подкрашивание строки

Здравствуйте

У меня такая проблема:
Есть БД в который в таблице Прибытие есть время и мне надо что бы если до прибытия оставалось 10 минут строчка в dbgrid подсвечивалась желтым.

есть кое какие наработки...ну там увидите...

Код:
procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  var
  a,aa:string;
  b:double;
  c:double;
  begin
  today := Now;
  a:=('00:10:00');
  //aaa:=timetostr(today);
  c:=now-strtotime(a);
aa:=adotable1.FieldByName('Время_отправления').Value;
  b:=Strtotime(aa);
 if (b>c) and (c>now)   then
    with DBGrid1.Canvas do
    begin
      Brush.Color := clyellow;
      Font.Color := clWhite;
      FillRect(Rect);
      TextOut(Rect.Left + 2, Rect.Top + 2, Column.Field.Text);
    end;
это выглядит как то так...+ не получается отнять время в с появляется какоето странное знаечение с запятой и много цифр... Помогите вроде задача тривиальная...а я мозг весь слоомал....
Kuraj вне форума Ответить с цитированием
Старый 31.03.2010, 23:50   #2
Highlander1981
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 20
Хорошо

Попробуй такой код, думаю должно сработать, к сожалению сейчас нет возможности проверить:
Код:
procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
   a,b,c: TDateTime;
begin
       a := Now;
       b := Сolumn.Field.Dataset.FieldByName('Время_отправления').AsDateTime;
       c := StrToDateTime('0:10:00');

       if (b-a<c) then
         with DBGrid1.Canvas do
           begin
              Brush.Color := clyellow;
              Font.Color := clWhite;
              FillRect(Rect);
              TextOut(Rect.Left + 2, Rect.Top + 2, Column.Field.Text);
           end;
end;

Последний раз редактировалось Highlander1981; 31.03.2010 в 23:54.
Highlander1981 вне форума Ответить с цитированием
Старый 01.04.2010, 08:14   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

для ваших целей очень хорошо подходит RXDBGrid из RXLib в ней есть событие OnGetCellParam с параметрами (Background:TColor AFont:TFont) где и можно разукрашивать записи и шрифт как вам угодно
SERG1980 вне форума Ответить с цитированием
Старый 01.04.2010, 10:00   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Код:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:
  TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  holdColor: TColor;
begin
  holdColor := DBGrid1.Canvas.Brush.Color; {сохраняем оригинальный цвет}
  {"раскрашиваем" ячейки только для поля EmpNo}
  if Column.FieldName = 'EmpNo' then
    if (Column.Field.AsInteger mod 2 <> 0) then
    begin
      DBGrid1.Canvas.Brush.Color := clGreen;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      DBGrid1.Canvas.Brush.Color := holdColor;
    end;
end;
И если уж речь пошла о сторонних компонентах, то гораздо лучше использовать DBGridEh...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 01.04.2010 в 10:04.
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки в dbgrid tela БД в Delphi 2 24.02.2010 14:16
Дата и время редактирования строки! PapaHedgehog Microsoft Office Excel 2 28.10.2009 20:49
Как сделать чтобы во время поиска по таблице не было видно перемещения по dbgrid? alxsev БД в Delphi 4 10.04.2009 19:03
Время в DBGrid Bor_Gus БД в Delphi 4 03.04.2008 02:21
Преобразование строки во время kayman Общие вопросы Delphi 7 02.10.2007 15:41