Четверг, 24.07.2025, 04:38
Приветствую Вас Гость | RSS

Мир программирования

Каталог статей

Главная » Статьи » Статьи различные » Разные трюки в Delphi

WinAPI. Таймер

Сегодня, я решил, поговорить о таймере: как его использовать в своем приложении. Потому что возникают случаи, когда его использование просто необходимо - отмерить время действия какого-либо процесса, назначить выполнение в четко выбранное время и т.д. Описываю его Вам для того, что совсем недавно сам столкнулся с этим. Не буду описывать программу полностью, потому что, все что Вам нужно, можно взять с первой статьи: создание формы и контролов, обработка сообщений и т.д.

Первое, что нам понадобиться, так это нужно объявить константу "Id_t", которая послужит нам идентификатором самого таймера:

const
Id_t=1;

Следующим этапом будет создание котрола "Edit", в котором мы сменим надпись после того как сработает таймер. В функции обработки сообщений производим следующие действия:

1. установим интервал срабатывания таймера;
2. по закрытию приложения будем уничтожать таймер;
3. обработчик события срабатывания таймера будет выполнять действия.

//по созданию формы установим таймер с интервалом в 2000 мил. секунд.

wm_Create:
begin
SetTimer (wnd,Id_t,2000,nil);
end;
 
//по закрытию формы уничтожим таймер
WM_Destroy:
begin
KillTimer (TMainForm,Id_t);
Postquitmessage(0);
Result:=0;
Exit;
end;
 
//по срабатыванию таймера производим манипуляции или действия.
wm_Timer:
begin
//меняем в текстовом поле надпись
setwindowtext(Edit1,'Таймер работает!');
//заметтье если вместо "Edit1" написать хэндл окна или какого либо другого контролла, то надпись будет передана именно ему...
end;

Раз уж мы заговорили о таймере, то не лишним будет поговорить и о системном времени, а именно, попробуем выдрать часы, минуты и секунды и т.д. Это нисколько не сложно, но бывает необходимо... хотя...

Объявим переменную и в дальнейшем будем с ней работать:

time_data:tsystemtime;

Теперь если воспользоваться процедурой "getlocaltime" и передать ей в качестве параметра нашу переменную, то получем полное системное время: час, минуты, секунды, число дня, месяц и год и день недели... Теперь объявим еще несолько переменных:

var
d_day: string;
d_month: string;
d_year: string;
d_day_week: string;
 
d_hour: string;
d_minute: string;
d_second: string;
d_milliseconds: string;

Вроде все готово преступим к какингу... вернее к кодингу:

Можно создать процедуру нажатия на кнопку(ищи пример создания кнопки и процедуру нажатия в первом уроке)

getlocaltime(time_data); //объеснять думаю не надо?
 
//а вот здесь остановимся по подробней, дело в том, что мы не зря объявили переменные, как видим процедура "str" //имеет два параметра:
//первый отвечает за то, что будем переводить, а второй куда переводить.
//и таким же макаром разделываемся со всем остальным...
str(time_data.wday, d_day);
str(time_data.wmonth, d_month );
str(time_data.wyear, d_year );
//только здесь мы не получим название дня недели, а получим число..
str(time_data.wdayofweek, d_day_week);
 
str(time_data.whour, d_hour);
str(time_data.wminute, d_minute);
str(time_data.wsecond, d_second);
str(time_data.wmilliseconds, d_milliseconds);
end;

Вроде все... разжевал как мог... будут вопросы милости просим...

Автор: Jimmy Jonezz


Категория: Разные трюки в Delphi | Добавил: VintProg (05.06.2010)
Просмотров: 1929 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 1
1 Иванченко  
0
А зачем перепечатывать тут в 30-й раз наработки других людей ?
Или ты думаешь, что твой через пень-колоду ресурс в рейтингах лучше ?

Имя *:
Email *:
Код *:
Категории раздела
Наш опрос
Оцените мой сайт
Всего ответов: 88
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск