Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Funkcija svakih sat vremena

[es] :: Visual Basic 6 :: Funkcija svakih sat vremena

[ Pregleda: 2606 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KaAmIkAzA
Banja Luka

Član broj: 55521
Poruke: 58
*.teol.net.



Profil

icon Funkcija svakih sat vremena09.07.2008. u 13:28 - pre 192 meseci
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.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Funkcija svakih sat vremena09.07.2008. u 13:53 - pre 192 meseci
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.
 
Odgovor na temu

KaAmIkAzA
Banja Luka

Član broj: 55521
Poruke: 58
*.teol.net.



Profil

icon Re: Funkcija svakih sat vremena09.07.2008. u 14:04 - pre 192 meseci
@Shadowed hvala na odgovoru probacu sada to.
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
93.86.24.*



+1 Profil

icon Re: Funkcija svakih sat vremena09.07.2008. u 15:33 - pre 192 meseci
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.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Funkcija svakih sat vremena09.07.2008. u 15:58 - pre 192 meseci
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.
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
93.86.24.*



+1 Profil

icon Re: Funkcija svakih sat vremena09.07.2008. u 16:11 - pre 192 meseci
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.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Funkcija svakih sat vremena09.07.2008. u 17:04 - pre 192 meseci
ako je potrebno merenje vremena tacno u milisekund onda moze da koristi sistemski tajmer (dobro, treba malo subclassinga, ali nije to prob)...
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



+7 Profil

icon Re: Funkcija svakih sat vremena10.07.2008. u 00:12 - pre 192 meseci
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 ...
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Funkcija svakih sat vremena10.07.2008. u 01:32 - pre 192 meseci
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...).
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



+7 Profil

icon Re: Funkcija svakih sat vremena10.07.2008. u 02:16 - pre 192 meseci
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

 
Odgovor na temu

KaAmIkAzA
Banja Luka

Član broj: 55521
Poruke: 58
*.teol.net.



Profil

icon Re: Funkcija svakih sat vremena10.07.2008. u 08:46 - pre 192 meseci
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
 
Odgovor na temu

[es] :: Visual Basic 6 :: Funkcija svakih sat vremena

[ Pregleda: 2606 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.