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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Собщение о изменении времени системных часов. Сообщения. 
:(
    Опции темы
ivan219
  Дата 21.10.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



Мне надо чтобы программа отслеживала изменеия времени но не через это WM_TIMECHANGE и не через таймер мне новерное надо постоянно принимать сообщение (какое?) каждую минуту т.е. как время изменилось так моя программа должна знать об этом. 
Возможноли такое???
PM MAIL ICQ   Вверх
volvo877
Дата 21.10.2007, 14:48 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

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



То есть, другими словами тебе что надо? 

Есть системное сообщение, которое как раз и рассылается всем окнам в момент смены системного времени. Ты тут же говоришь, что оно тебе не надо. Что надо? Чесать правое ухо левой ногой? Изобретать очередной велосипед? Если тебя по каким-то причинам не устраивает WM_TIMECHANGE, то хотя бы объясни, чем...

А то... Мне бы доехать до центра города, только вот автобус не предлагайте, и такси не надо - трамвай/троллейбус не подходят, частника ловить не буду... Что можно ответить? Иди пешком!
PM MAIL   Вверх
ivan219
  Дата 21.10.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



volvo877, WM_TIMECHANGE происходит когда время меняется но не автоматически а когда я его руками меняю а мне надо принимать сообщение что время изменилось само по себе т.е. часики тикают и я должен знать что они тикают если проще говоря.
PM MAIL ICQ   Вверх
mr.Anderson
Дата 21.10.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



ivan219, таймер Delphi ловит именно изменение времени. Выставь его интервал на 1000 и получишь отлов изменения времени каждую секунду, время у нас, кажись, идет независимо от махинаций юзера твоей программы...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Alexeis
Дата 21.10.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(mr.Anderson @  21.10.2007,  16:02 Найти цитируемый пост)
таймер Delphi ловит именно изменение времени.

  Таймер ловит изменение системного таймера. ИМХО это асинхронные события, но юзеру то пофигу. Нужно лишь по событию таймера считывать реальное время.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ivan219
  Дата 21.10.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



Цитата(Alexeis @  21.10.2007,  16:10 Найти цитируемый пост)
 Нужно лишь по событию таймера считывать реальное время

Это просто, я думал может что ещё есть smile
PM MAIL ICQ   Вверх
Rennigth
Дата 22.10.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

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



ivan219, Как вариант, проверяй в OnIdle системное время.

Это сообщение отредактировал(а) Rennigth - 22.10.2007, 14:13


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
ivan219
  Дата 22.10.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



Цитата(Rennigth @  22.10.2007,  14:13 Найти цитируемый пост)
 OnIdle

Это где такое событие smile 
PM MAIL ICQ   Вверх
Rennigth
Дата 22.10.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

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



Цитата(ivan219 @  22.10.2007,  16:37 Найти цитируемый пост)
Это где такое событие   

У компонента TApplicationEvents.

Добавлено через 1 минуту и 31 секунду
Что-нибудь врое этого:
Код

unit Unit18;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AppEvnts, StdCtrls;

type
  TForm18 = class(TForm)
    ApplicationEvents1: TApplicationEvents;
    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
  private
    FSaveSystemTime: TDateTime;
    FIdleCounter: Integer;
  public
    constructor Create(AOwner: TComponent); override;
  end;

var
  Form18: TForm18;

implementation

{$R *.dfm}

procedure TForm18.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
var
  lNow: TDateTime;
begin
  Done := False;
  if ((FIdleCounter div 10) <> 0) then
  begin
    lNow := Now;
    if lNow <> FSaveSystemTime then
    begin
      FSaveSystemTime := lNow;
      Caption := TimeToStr(lNow);
    end;
    FIdleCounter := 0;
  end;
  Inc(FIdleCounter);
end;

constructor TForm18.Create(AOwner: TComponent);
begin
  inherited;
  FIdleCounter := 0;
end;

end.




--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
ivan219
  Дата 22.10.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



Rennigth, спасибо кое что проеснилось.
А что это за событие такое которое происходит так часто я делал так:
Код

if ((FIdleCounter div 10000) <> 0) then

и часики тикал правда если сделать болше то "отстоют" smile
PM MAIL ICQ   Вверх
Rennigth
Дата 22.10.2007, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

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



Цитата(ivan219 @  22.10.2007,  18:03 Найти цитируемый пост)
А что это за событие такое которое происходит так часто


Цитата

Write an OnIdle event handler to perform special processing when an application is idle. An application is idle when it is not processing code. For example, an application is idle when it is waiting for input from the user.

OnIdle is called only once, as the application transitions into an idle state. It is not called continuously unless Done is set to false. Applications that set Done to false consume an inordinate amount of CPU time, which affects overall system performance.


Ну в общем это событие которое происходит когда приложение простаивает. Иногда полезно его использовать для бэкграудных, не критичных и не ресурсоемких задач.

Добавлено через 5 минут и 8 секунд
Цитата(ivan219 @  22.10.2007,  18:03 Найти цитируемый пост)
правда если сделать болше то "отстоют"

Точного времени тут не подгодаешь. Надо искать оптимальную середину. Все будет зависить от загружености системы и в часности твоего приложения. Еще раз повторюсь это подходит для не критичных вещей. ЗЫ: Для часиков вполне smile


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
ivan219
  Дата 22.10.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

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



Цитата(Rennigth @  22.10.2007,  18:11 Найти цитируемый пост)
 Для часиков вполне

Ну уменя несовсем часики я делаю программу которая работает с COM портом и ведёт регестрацию с опросом раз в минуту а таймер я нехочу использовать так как он не точный вот и хотел привезать системное время с опросом так как регистрация по минутная (часовая) и программа может быть закрыта или комп выкл а когда вкл. то всё должно продолжится не с ночала а сосвоего времени на диаграмме.
Реализовать это на таймере можно но я предположил что есть другой путь вот и создал этот топик smile 
PM MAIL ICQ   Вверх
Rennigth
Дата 23.10.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

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



ivan219, имхо тут уж лутше подойдет диспечер задач. На форуме проскакивал топик по этому поводу. Может конечно посложнее в реализации, но так будет правильнее... Может еще кто-нить что предложит.

Добавлено через 3 минуты и 13 секунд
Тьфу, не диспечер задач, а как его там... Назначение заданий smile

Добавлено через 6 минут и 50 секунд
Воть.
Планировщик заданий


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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