Kilka timerów

Odpowiedz Nowy wątek
2006-01-22 12:43
0

Jeśłi mam kilka timerów na formatce to żadne z nichnie działa prawidłowo odmierzajc z podanym interwałem - tzn odmierza dwa razy szybciej. I tteraz pytanie czym zastapić standartowego timera tak by mogł "taktować" nie wpływajac na inne timery? Albo co należy zrobić by te timery co już mam nie wpływały na siebie wzajemnie.


Błędy ortograficzne w moich postach wynikają z tego że szybciej myśle niż pisze.

Pozostało 580 znaków

2006-01-22 13:20
0

Najłatwiej zastąpić timera wątkiem i dac sleep'a jako interwała :). O wątkach znajdziesz artykuł... Nie rozumiem, dlaczego one nawzajem na siebie wplywaja? Nigdy sie nie spotkałem z czyms takim :)


Pozostało 580 znaków

2006-01-22 13:31
0

one zazwyczaj odliczają czas jak im się podoba (np u mnie często odliczają czas 3 razy szybciej jak ruszam myszką po formie :-| ), nie ma co im ufać, ale jeśli fucktycznie wpływają na siebie to możesz ustawić jednego timera na ich wspólny NWD i zwiększać w nim licznik i odpalać odpowiednie procedury przy określonych warunkach, np

var Form1: TForm1;
  licznik: integer = 0;
  TimerEnabled: array[0..2] of boolean;

...

procedure TForm1.Button1Click(Sender: TObject);
begin
  TimerEnabled[0] := not TimerEnabled[0];
end;

procedure WykonajProcedure;
begin
  ShowMessage('Yellow !');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(licznik);
  if((licznik * Timer1.Iterval) mod 500 = 0) and TimerEnabled[0] then WykonajProcedure;
  if((licznik * Timer1.Iterval) mod 750 = 0) and TimerEnabled[1] then WykonajProcedure2;
  if((licznik * Timer1.Iterval) mod 1000 = 0) and TimerEnabled[2] then WykonajProcedure3;
end;

Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-01-22 14:44
0

Rozwiazałem problem stawiaj jednego timera i dodaja do jego funkcji zminną typu boolean, i poprostu timer taktuje co 1000ms i w kazdym takcie sprawdza czy zminna jest true. jeśłi jest to zgodnie z warunkiem wykonuje oparacje jeśłi nie to idzie dalej. Rozwiaznaie całkiem dobre - a mi dokładne taktownie nie jest potrzebne


Błędy ortograficzne w moich postach wynikają z tego że szybciej myśle niż pisze.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0