{{notification.text}}

MirGames

26.01.07 02:47
0
Вобщем ставлю в VCL приложении таймер на форму. В OnTimer пишу:
Код
if Update then
  if not Playing then
    Playback;

Как это сделать на ВинАпи, т.е. без таймера?
Thread'ами что ли? Если да, то скажите как, а то я ими не пользовался...
:unsure:
#2
Mirage
26.01.07 14:04
0
Не надо тредами. Надо инициализировать таймер средствами WinAPI и ловить WM_TIMER.
#3
26.01.07 19:33
0
Цитата
Не надо тредами. Надо инициализировать таймер средствами WinAPI и ловить WM_TIMER.

Эт я понял, а что если у меня это используется в классе... Т.е. класс должен зарегистрировать как-то свой таймер и на каждое его обновление вызывать процедуру? Т.е. без WM_TIMER нужно обойтись...
#4
26.01.07 19:55
0
А почему бы не сделать так:

Код
var
  t : LARGE_INTEGER;
  f : LARGE_INTEGER;
  time:integer;

...

  QueryPerformanceFrequency(Int64(f));
  QueryPerformanceCounter(Int64(t));
  time := Trunc(1000 * t.QuadPart / f.QuadPart);


ну и смотришь сколько времени прошло :)
Отредактировано: 26.01.07 19:55
#5
Mirage
26.01.07 21:10
0
beisik
Есть в MMSystem такое на потоках работает и точность высокая. Смотри хелп.;)
#6
статус
26.01.07 21:10
0
+ данный способ высокоточен в отличии от WM_TIMER:)
#7
27.02.07 02:00
0
люди, а можете выложить полный код реализации таймера,
а использоватьего как???тоже выложите.плиз а тоя не догоняю.
выкладывайте просто как цитаты плиз
#8
27.02.07 02:29
0
самый простой способ реализовать таймер - это SetTimer(...) :)
#9
статус
27.02.07 14:29
0
Код
  
const
  TIMER_INDX = 1;
  TIMER_INTERVAL = 1000;
....

//создание окна и все такое)
SetTimer(h_Wnd, TIMER_INDX, TIMER_INTERVAL, nil);

....

function WndProc(hWnd: HWND; Msg: UINT;  wParam: WPARAM;  lParam: LPARAM):
LRESULT; stdcall;
begin
  case (Msg) of

    WM_TIMER :
      begin
        if wParam = TIMER_INDX then
        //Делаем что-нибудь
      end;

  end;
  
Result := DefWindowProc(hWnd, Msg, wParam, lParam);

end;
#10
mov, просто mov
27.02.07 22:30
0
Вопрос первый зачем нужен таймер ? :)
#11
Студент
28.02.07 00:59
0
MegaI2
К примеру, у тебя чувак должен перемещаться по щелчку мыши, в определённую позицию. Ты ставишь таймер, и он у тебя будет постепенно наращивать координаты.
#12
mov, просто mov
28.02.07 02:12
0
petyakurochkin
:)
#13
02.03.07 21:53
0
вопрос
это h_Wnd=createwindow
или в сеттаймере устанавливается ему значение
и ещё вопрос
а можна сообщение вм_тиамер обрабатывать в другом месте, а в wndproc-неделать никого указателя на эту обработку
#14
статус
03.03.07 13:02
0
Цитата(lans @ 2.03.2007 - 19:53) [snapback]50945[/snapback]
вопрос
это h_Wnd=createwindow



да


Цитата
а можна сообщение вм_тиамер обрабатывать в другом месте, а в wndproc-неделать никого указателя на эту обработку


неа :)

#15
mov, просто mov
03.03.07 22:27
0
Цитата
а можна сообщение вм_тиамер обрабатывать в другом месте, а в wndproc-неделать никого указателя на эту обработку

гы ^_^
#16
03.03.07 22:49
0
Цитата(RedRick @ Сегодня, 09:02)
[snapback]50983[/snapback]
неа

ОБИДно
Цитата(MegaI2 @ Сегодня, 18:27)
[snapback]51029[/snapback]
гы

как смешно
#17
05.03.07 04:43
0
кстати смешно :) если ты не мыслишь, что такое hwnd, спрашивая как сделать таймер на винапи...
#18
статус
05.03.07 18:03
0
Цитата(beisik @ 5.03.2007 - 02:43) [snapback]51156[/snapback]

кстати смешно

нефиг смеятся, пучть чел учится, все когда-то были новичками ;)
#19
05.03.07 23:02
0
Цитата(beisik @ Сегодня, 00:43)
[snapback]51156[/snapback]
кстати смешно

ну если чесно то ты начал тему =)
Цитата(RedRick @ Сегодня, 14:03)
[snapback]51187[/snapback]
все когда-то были новичками

разве????
=)
#20
mov, просто mov
05.03.07 23:45
0
Цитата
разве????

аха

У меня даже Люди ада на DelphiX сохранились иногда включаю поржать :rofl:
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}