[delphi] Okresowe wykonywanie czynnosci

0

Witam wszystkich!

Zapewne moj problem dla wszystkich jest banalny.. dla wszystkich procz mnie. Zaczalem zabawe w programowanie kilka(nascie) dni temu, studiowalem rozne kursy, faqi etc. i udalo mi sie splodzic programik. Programik, ktory co 60 sekund pobiera malutki plik z internetu, sprawdza jego rozmiar i na jego podstawie przyjmuje okreslona ikone w trayu.

korzystam z bsd2005
jako, ze nie wiedzialem za bardzo jak to zrobic, stworzylem petle mniej wiecej na takiej zasadzie;

repeat
pobierzplik(http://plik.txt);
// wykonaj operacje;
sleep(60000);
until 0 = 1;

i w ten sposob petla jest wykonywana co 60 sekund w nieskonczonosc. Jednak podczas tych 60 sekund nie moge nic zrobic, bo program spi. Nie moge np. przeniesc okna ani nic.

Jak to rozwiazac, zeby jakies instrukcje byly wykonywanie regularnie co iles sekund i zeby w czasie pomiedzy tymi operacjami mozna bylo normalnie korzystac z programu?

Pozdrawiam i przepraszam za moja niewiedze.
Naprawde szukalem :)

0

A co się spodziewałeś po sleep ?

0

ale ja sie nie dziwie, ze sleep usypia program, tylko pytam jak to zbudowac i czego uzyc zamiast sleep?

Pozdrawiam

0

Użyj timera w innym wątku.

0

niezbyt to dla mnie jasne, ale dzieki... mam jakis punkt zaczepienia.. moglbym prosic o jakis przykladowy schemat kodu? wieczorem bede probowal cos stworzyc...

Pozdro

0

Zakładka System: wybierasz Timer (zegarek) i nanosisz go na formę.
Zaznaczasz go na formie i w Proporties ustawiasz Interval na 60000.
Przechodzisz do zakładki Events i dwukrotnie klikasz na OnTimer. Otwiera Ci się okienko z kodem, gdzie wpisujesz:
pobierzplik('http://plik.txt');
czyli kod będzie wyglądał tak:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
pobierzplik('http://plik.txt');
end;

... Timer tworzy swój własny wątek więc nie musisz się tym przejmować.

0

ooo.. serdecznie dziekuje! Dokladnie o cos takiego mi chodzilo! ;)

Pozdrawiam!

0

A jakbyś chciał by było powazniej i porządniej sugeruję zrobić to w watku, a najlepiej jako usługę systemową. Delphi ładnie wspomaga taką zabawę.
Andrzej Dąbrowski

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