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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 14:50   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Сравнить время с текущим

есть таблица с колонками Время_нач и Время_кон. Если текущее время меньше начального и больше конечного то закрасить строку.
Код:
 if ((TimeToStr(now)<TDBGrideh(Sender).DataSource.DataSet.FieldByName('Время_нач').AsString) and
     (TimeToStr(now)>'23:59:59' )or (TimeToStr(now)>TDBGrideh(Sender).DataSource.DataSet.FieldByName('Время_кон').AsString) and
     (TimeToStr(now)<'00:00:00' ) )
      then
         begin
        TDBGrideh(Sender).Canvas.Font.Color:=clBlue;
        TDBGrideh(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
        TDBGrideh(Sender).Canvas.Font.Style:=[fsBold];
        TDBGrideh(Sender).Canvas.Brush.Color:=OptionForm.sColorSelect3.ColorValue;
        TDBGrideh(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
         end;
Aleksandr вне форума Ответить с цитированием
Старый 06.07.2011, 15:08   #2
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Вот исходник. Как сравнить время?
Вложения
Тип файла: rar Новая папка.rar (514.7 Кб, 19 просмотров)
Aleksandr вне форума Ответить с цитированием
Старый 06.07.2011, 15:39   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

работать с датой и временем нужно в рамках выделенных под это структур данных
Код:
var dTimeCurrent : TDateTime;
...
begin
   dTimeCurrent := Time();
...

 if (dTimeCurrent<
    TDBGrideh(Sender).DataSource.DataSet.FieldByName('Время_нач').AsDateTime) 
or
 (dTimeCurrent>
    TDBGrideh(Sender).DataSource.DataSet.FieldByName('Время_кон').AsDateTime) 
then ....
p.s. дата при этом в поле время_нач и время_кон не должна присутствовать!
для надёжности можно принудительно отбросить дату:
Код:
 if (dTimeCurrent<
      frac(TDBGrideh(Sender).DataSource.DataSet.FieldByName('Время_нач').AsDateTime))
or
 (dTimeCurrent>
    frac(TDBGrideh(Sender).DataSource.DataSet.FieldByName('Время_кон').AsDateTime)) 
then ....

p.p.s.
поставьте у ADOConnection1 свойства LoginPrompt в False

Последний раз редактировалось Serge_Bliznykov; 06.07.2011 в 15:45.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.07.2011, 15:47   #4
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию

Спасибо. Получилось.
Aleksandr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текущее время (системное время ) Sirk0 Общие вопросы Delphi 27 07.03.2015 17:52
Как правильно сравнить время? dzhezim Общие вопросы Delphi 3 22.04.2010 18:40
При использовании ссылок по странице (href=#) пропадают элементы, находящиеся над текущим Ra1NeR HTML и CSS 3 20.02.2010 00:13
Время нажатия на кнопку мыши(Время реакции) Кирилл13 Помощь студентам 1 11.04.2009 19:41
Сравнить время BlackOmen PHP 2 23.09.2008 09:04