Sleep który nie zatrzymuje dzialania programu

0

Jak zatrzymac program cos na styl Sleep(999) tylko tak by program dzialal tzn mam taka sytuacje:

Wykonuje dodawanie elementow do wykresu
Wykres automatycznei odswieza dane
Zapisuje do pliku wykres

zdarza sie tak ze wykres nie nadaza byc odswiezony a juz zaczyna sie zapisywanie.

Jak zatrzymac program na sekunde by odswiezal wykres na formie?

0

Proponuję takie rozwiązanie:

Na TTimer w procedurze onTimer:

zapisz_do_pliku;
Timer1.Enable := False;

Przy procedurze wywołującej:

  • dodaj punkt
  • Timer1.Enabled := True;

Przy starcie aplikacji Enable timera ma być wyłączone

0

A ja proponuję skorzystać z Google'a: na pewno widziałem gdzieś taki kod, na jakiejś stronie z archiwum pewnej grupy dyskusyjnej (bądź po prostu FAQ, nie pamiętam dokładnie). A czasem wystarczy po prostu pomyśleć - jeśli sam rysujesz ten wykres (nie przez żaden komponent do rysowania wykresów), to dodaj sobie zmienną boolowską, np. Rysowanie (oznaczającą, że trwa rysowanie) i zrób taką pętelkę:

while Rysowanie do; // <- średnik jest b. ważny

Spowoduje to wstrzymanie procedury, dopóki zmienna Rysowanie ma wartość True.

0
brodny napisał(a)

A ja proponuję skorzystać z Google'a: na pewno widziałem gdzieś taki kod, na jakiejś stronie z archiwum pewnej grupy dyskusyjnej (bądź po prostu FAQ, nie pamiętam dokładnie). A czasem wystarczy po prostu pomyśleć - jeśli sam rysujesz ten wykres (nie przez żaden komponent do rysowania wykresów), to dodaj sobie zmienną boolowską, np. Rysowanie (oznaczającą, że trwa rysowanie) i zrób taką pętelkę:

while Rysowanie do; // <- średnik jest b. ważny

Spowoduje to wstrzymanie procedury, dopóki zmienna Rysowanie ma wartość True.

taki sposób jest dosyć niebezpieczny :) wole z wait() na razie ... a rysowanie jest automatyczne

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