powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / API функция в место Timer
10 сообщений из 10, страница 1 из 1
API функция в место Timer
    #34610388
puls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
API функция в место Timer.Есть ли такая?
...
Рейтинг: 0 / 0
API функция в место Timer
    #34611432
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем фоксовый не устраивает ?
Можно так:

DECLARE LONG SetTimer IN win32api LONG,LONG,LONG,LONG
DECLARE LONG KillTimer IN win32api LONG,LONG
PUBLIC oHandler,nhwnd,timerid,timertimeout
nhwnd=_screen.hwnd
timerid=1
timertimeout=5000
SetTimer(nhwnd,timerid,timertimeout,0)
oHandler=NEWOBJECT("myhandler")
WM_TIMER=275
BINDEVENT(nhwnd,WM_TIMER,oHandler,'mytimer',0)
DEFINE CLASS myhandler AS custom
PROCEDURE mytimer
PARAMETERS p1,p2,p3,p4
KillTimer(nhwnd,timerid)
IF MESSAGEBOX('Время '+TIME()+' Убить таймер ?',4+32+256,'Вопрос')=7
SetTimer(nhwnd,timerid,timertimeout,0)
ELSE
UNBINDEVENTS(this)
CLEAR DLLS
ENDIF
RETURN 0
ENDPROC
ENDDEFINE
...
Рейтинг: 0 / 0
API функция в место Timer
    #34612359
Удивился
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Погодин, Вы пробовали запустить свой таймер... вернее 20 таких таймеров одновременно, когда время выполнения кода таймера меньше временит интервала его выполнения ?
...
Рейтинг: 0 / 0
API функция в место Timer
    #34612360
Удивился
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если больше ? :) А если больше и на много? :))
Попробуйте.
...
Рейтинг: 0 / 0
API функция в место Timer
    #34612807
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так для этого я и убиваю таймер в начале выполнения процедуры а затем если нужно запускаю его снова. 20 конечно не пробовал но думаю все будет в порядке. Конечно для этого нужно создать 20 таймеров (timerid=1..20) и 20 объектов класса myhandler (oHandler1..oHandler20), либо разные классы с разными функциями - зависит от логики программы.
...
Рейтинг: 0 / 0
API функция в место Timer
    #34613179
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не... Ерунду написал. Конечно BINDEVENT прицеплен к главному окну. Если нужно много таймеров придется делать по другому, например, создавать много форм (невидимых) и цеплять BINDEVENT к hwnd этих форм, или еще как-то... Все зависит от логики программы. Зачем так много таймеров ? И опять же, чем плох фоксовый таймер ?
...
Рейтинг: 0 / 0
API функция в место Timer
    #34613993
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У SetTimer() второй параметр - ID, которое приходит в сообщении WM_TIMER
только оно у вас почему-то всегда 1
...
Рейтинг: 0 / 0
API функция в место Timer
    #34614045
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так я и пишу выше - создавайте таймеры с ID 1...20
...
Рейтинг: 0 / 0
API функция в место Timer
    #34614811
puls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как найти hwnd для этих форм,что бы таймер работала с формой а не с главной экраном?
...
Рейтинг: 0 / 0
API функция в место Timer
    #34616402
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VFP давно у форм есть свойство hwnd.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / API функция в место Timer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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