Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 3.898 pregleda

Najnovija ↓

Funkcija svakih sat vremena 09.07.2008. u 14:28 · pre 222 meseca #1
Pozdrav

Imam funkciju napisanu, i problem mi je u tome kako da odradima kada je program aktivan da svaki sat vremena sam odradi odredjenu funkciju.
Re: Funkcija svakih sat vremena 09.07.2008. u 14:53 · pre 222 meseca #2
Stavis timer i jednu promenljivu u koju smestis trenutno vreme, timer stavis na 1000ms i proveravas da li je trenutno vreme vece od onog u promenljivoj + 1h, ako nije ne radis nista, ako jeste pozoves funkciju i u promenljivu stavis trenutno vreme.
Stvar se malo komplikuje ako ti je potrebna velika preciznost i/ili ako ti izvrsavanje funkcije traje neko poduze vreme.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Funkcija svakih sat vremena 09.07.2008. u 16:33 · pre 222 meseca #4
Citat:
Shadowed: Stvar se malo komplikuje ako ti je potrebna velika preciznost i/ili ako ti izvrsavanje funkcije traje neko poduze vreme.


VB zbog svoje "brzine" nije pogodan za upravljanje REAL-TIME sistemima, a i u tom slucaju moze da stavi da se funkcija izvrsava u zasebnom thread-u...

Mozes i sledece:

Code:

Public Tmr as Integer

Private Sub Form_Load()
    
    Timer1.Interval = 1000
    
End Sub

Private Sub Timer1_Timer()
    
    Tmr = Tmr + 1
    If Tmr = 60 Then
        Tmr = 0
        MojaFunkcija Arg1, Arg2, ..., ArgN
    End If
    
End Sub


Samo dodaj jednu Timer kontrolu.
Re: Funkcija svakih sat vremena 09.07.2008. u 16:58 · pre 222 meseca #5
Hm, nisam siguran sta si hteo reci :)
To za nepogodnost je ono sto sam i ja rekao za slucaj da je nesto zahtevnije u pitanju, a kod koji si dao radi manje vise kao sto sam i ja rekao, samo sto je neprecizniji i sto ne meri jedan sat nego jedan minut.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Funkcija svakih sat vremena 09.07.2008. u 17:11 · pre 222 meseca #6
Hteo sam reci da ako pise zahtevnu funkciju koja mora da se izvrsava u ms tacno u odredjeno vreme verovatno je ne pise VB-u.

Znam da je 60 sekundi = 1 minut a opet 60 minuta jedan sat, nego sam samo hteo da mu pokazem kako bi to trebalo da izgleda a valjda bi i sam shvatio da nije 60 nego 3600 sekundi... ;)

Napisao sam ovo jer je po onome kako si ti objasnio trebalo da svake sekunde proveri da li se vrednost DateTime.Hour(Now) promenila u odnosu na referentnu promenljivu. Po meni je ipak malo lepse da sam broji sekunde i broji vreme od pokretanja programa a ne po sistemskom satu. :)
Re: Funkcija svakih sat vremena 10.07.2008. u 01:12 · pre 222 meseca #8
Ovo sto je Stefan napisao je sasvim Ok resenje za ovo u VB -u. Cim covek hoce da namesti interval na jedan sat verovatno mu preciznost u ms nije toliko bitna.
Stefane, paradoksalno zvuci al za ovo je preciznije da se Timer stavi na minut (60000) pa da se broji do 60, zato sto mala kasnjenja pravi VB funkcija (a ne windows) kad inkrementira brojac. Kad su intervali redji smanjuje se i ta greska ...
Potpis
HomePage http://www.eurora3d.com
Re: Funkcija svakih sat vremena 10.07.2008. u 02:32 · pre 222 meseca #9
Sa nacinom koji sam opisao, maksimalna greska je jednaka intervalu koji se postavio timer-u. Moze da stavi i 10ms i da dobije prilicno precizno (pod uslozovm da Now vraca preciznije od sekunde, ne secam se kako je u 6ici, ali bi trebalo...).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Funkcija svakih sat vremena 10.07.2008. u 03:16 · pre 222 meseca #10
Znam sta si mislio ... nesto kao ovaj kod dole. Ovo je valjda najpreciznije moguce , mada bi ipak bilo bolje da se Timer stavi na veci interval jer nema potrebe da se trosi toliko procesorsko vreme
Code:

Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim StartTme As Long, TimeDelta As Long

Private Sub Form_Load()
StartTme = GetTickCount ' GetTickCount je brojac sistemskog sata , ms od kad je windows ukljucen
TimeDelta = 3600000  ' za koliko da okine sledeci event
Timer1.Interval = 1: Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
If StartTme + TimeDelta <= GetTickCount Then StartTme = GetTickCount: Debug.Print "Event"
' Umesto Debug.Print "Event" pozovi svoju funkciju
End Sub
Potpis
HomePage http://www.eurora3d.com
Re: Funkcija svakih sat vremena 10.07.2008. u 09:46 · pre 222 meseca #11
Evo ovako uradio sam kod kao sto je @Eurora3D Team postavio i za sada mi radi OK, bez ikakvih problema vidjet cu dalje sta ce se desavati.

Pozdrav i hvala svima
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme