Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выполнение процедуры по времени / 6 сообщений из 6, страница 1 из 1
09.06.2010, 08:10
    #36676926
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение процедуры по времени
Есть программа, обычная(линейка верхнего меню и куча разных форм), надо например в 17 часов выполнить определённую процедуру(My_proc), в какой точке программы находится пользователь неизвестно. Может кто сталкивался с этим, и вообще возможно ли это?
...
Рейтинг: 0 / 0
09.06.2010, 08:49
    #36676943
asdor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение процедуры по времени
q1w1e1,
В приложении вешаешь таймер. Не привязаный к формам.
И там с нужной точностью проверяешь текущее время.
В нужный момент, запускаешь необходимую процедуру.
Точность конечно не высокая.
...
Рейтинг: 0 / 0
09.06.2010, 09:04
    #36676966
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение процедуры по времени
Как это сделать конкретно, где в приложении это надо повесить?, например есть
main.prg
DO programs\BEGIN
PUBLс .......
STORE "" TO ........
DO programs\definemenu
READ EVENTS
SET SYSMENU TO DEFAULT
RETURN

BEGIN.prg

SET ESCAPE OFF
SET DEBUG OFF
SET ECHO OFF
.....
ON KEY LABEL F1

definemenu.prg

SET SYSMENU OFF
* переопределяем системное меню VFP
DEFINE MENU _MSYSMENU BAR IN SCREEN
* определяем горизонтальную строчку меню
DEFINE PAD..........
SET SYSMENU AUTOMATIC
RETURN
...
Рейтинг: 0 / 0
09.06.2010, 09:16
    #36676998
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение процедуры по времени
q1w1e1Есть программа, обычная(линейка верхнего меню и куча разных форм), надо например в 17 часов выполнить определённую процедуру(My_proc), в какой точке программы находится пользователь неизвестно. Может кто сталкивался с этим, и вообще возможно ли это?


возможно,
если Вы тупо настроите виндовый Диспетчер заданий
и позовете в нужное время либо какое-то отдельное приложение,
либо запустите копию своего с каким-то параметром,
указывающим на выполнение только отдельной процедуры.
...
Рейтинг: 0 / 0
09.06.2010, 09:44
    #36677065
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение процедуры по времени
Спасибо, про диспетчер совсем забыл :-)
...
Рейтинг: 0 / 0
11.06.2010, 09:21
    #36681988
SindoMeon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение процедуры по времени
Вариант с таймером (мой):
внутри main.prg вешается следующее
Код: plaintext
1.
_screen.AddObject('Timer_1', 'tmr_NY_timer')
в том же main`е делается класс таймера
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DEFINE CLASS tmr_NY_timer as Timer
	Interval =  1000 
	Enabled = .T.
	
	PROCEDURE Timer
	 ld_CurrentDate = DATE()
	 lt_CurrentTime = DATETIME()
	 ld_NewYear = DATE(YEAR(ld_CurrentDate) +  1 ,  1 ,  1 )
	 
	 ls_NewYear = SPACE( 20 ) + 'До Нового ' ;
	 				+ ALLTRIM(STR(YEAR(ld_CurrentDate) +  1 )) + ' года: ' ;
	 				+ ALLTRIM(STR(ld_NewYear - ld_CurrentDate -  1 )) + ' дн ' ;
	 				+ ALLTRIM(STR( 23  - HOUR(lt_CurrentTime))) + ' час ' ;
	 				+ ALLTRIM(STR( 59  - MINUTE(lt_CurrentTime))) + ' мин ' ;
	 				+ ALLTRIM(STR( 59  - SEC(lt_CurrentTime))) + ' сек '
	 				
	 this.Parent.Caption = gs_Caption + ls_NewYear
ENDDEFINE
компилируем, запускаем, и наслаждаемся таймером отсчёта времени до Нового Года )
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выполнение процедуры по времени / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]