Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TTimer остановка, не работает по интервалу 
V
    Опции темы
Sed0Y
  Дата 26.5.2010, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



у меня есть форма, и грид, в котором к примеру 10 полей с данными, юзер на форме указывает с каким интервалом проверять данные грида с другими данными (обычно указывается 1 - 2 секунды)

У меня иногда по непонятным мне причинам останавливается (сбивается) интервал, с кода увидите, что есть s1 и s2 где

Код

s1 := FormatDateTime('dd.MM.yyyy hh:mm:ss', now); // это постоянно текущее время

s2 := FormatDateTime('dd.MM.yyyy hh:mm:ss', NewTime_); // а это наш интервал который больше чем now на интервал TSec - секунд


подскажите как и что переделать? smile 

я организовал это так:

Код

....
var
    TSec: Integer;
    NewTime_: TDateTime;
....

procedure TFMainForm.StartClick(Sender: TObject); //при нажатии на кнопку запускаем таймер
begin
    if Edit1.Text = '' then exit;
    Timer1.Enabled := True;
    Tsec := StrToInt(Edit1.Text); //тут указываю интревал проверки данных к примеру Edit1.Text = 2
    NewTime_:= Now;
    NewTime_:= NewTime_+ Tsec/(24 * 60 * 60);
end;

....

procedure TFMainForm.Timer1Timer(Sender: TObject);
var
  s1, s2: String;
  d1: TDateTime;
  DS: TDataSet;
begin
    s1 := '';
    s2 := '';

    s1 := FormatDateTime('dd.MM.yyyy hh:mm:ss', now);
    d1 := StrToDateTime(FormatDateTime('dd.MM.yyyy hh:mm:00', now));
    s2 := FormatDateTime('dd.MM.yyyy hh:mm:ss', NewTime_);

    if (s1 = s2) then begin // если прошло 2 секунды спустя то заходим и проверяем данные
        DS := 'ДАТАСЕТ ДАННЫХ СОДЕРЖИМОГО ГРИДА';
        DS.First;
        while not DS.Eof do begin
            {тут идет код проверки данных на совпадение...}
            DS.Next;
        end;
        NewTime_:= NewTime_+ Tsec/(24 * 60 * 60); // после проверки, снова устанавливаем на проверку через Tsec = 2 секудны
    end;
end;

PM MAIL ICQ   Вверх
Данкинг
Дата 26.5.2010, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



А интервал таймеру-то где задаётся?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.