Novo

Forum kao aplikacija na telefonu

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

  • 15 odgovora
  • 6.316 pregleda

Najnovija ↓

vb - Timer neradi svaki put isti interval... 15.04.2005. u 15:38 · pre 262 meseca #1
U StatusBar upisujem šta se dešavaa tokom rada u programu... i imam aktiviran tajmer u istom vremenu da pobriše StatusBar za 5sec... ali on meni nekad to pobriše u sekundi, nekad u 3, nekad u 5... kao da briše po nekom default vremenu a da mu je maximalno vrijeme 5sec.

Tajmer kad pobriše StatusBar, on se i disejbluje timer.enabled=false, kako bi stao i počeo od nule drugi put kad se enejbluje.

kako uraditi da se to ne dešava... i da uvijek radi sve poslije toliko vremena, koliko mu se postavi interval?

Samo mi prvi put uradi u tom vremenu... i nikad više!

Hvala
Potpis
Pozdrav
GoGy
Re: vb - Timer neradi svaki put isti interval... 15.04.2005. u 16:27 · pre 262 meseca #3
Code:

Private Sub Form_Load()
    
    Timer.Enabled = False ' Disable Timer for StatusBar
    Timer.Interval = 7000

End Sub

'--------------------------------------------------------

Private Sub cmdStop_Click
    
    StatusBar.Panels(2) = "Control Stopped! Choose fiber mode now"
    Timer.Enabled = True ' Enable Timer to delete StatusBar panel2 after 7 sec

End Sub

'--------------------------------------------------------

Private Sub Timer_Timer()

    StatusBar.Panels(2) = ""   ' Timer will delete text in StatusBar panel2 after 7 sec
    Timer.Enabled = False ' Disable Timer
    
End Sub


Znači posle toga kad se izvrši sve to... drugi put kada se stisne cmdStop... Timer više ne radi na 7 sec... nego uvek manje nego 7
Potpis
Pozdrav
GoGy
Re: vb - Timer neradi svaki put isti interval... 15.04.2005. u 18:36 · pre 262 meseca #5
Timer je neprecizna kontrola. Intervali zavise od zauzeća procesora. Ja sam ranije pravio program za odgođeno gašenje računara i koristio tu kontrolu. Taj program sam koristio da mi ugasi računar nakon što Winamp završi sa svirkom. Pokazalo se da se vrijeme kod Winampa i kod ovog programa mnogo razlikuje. Problem sam riješio tako što sam koristio Timer funkciju koja je vezana za sistemski sat, a pomoću Timer kontrole sam svakih (npr.) pola sekunde provjeravao vrijednost sistemskog sata. Probaj i ti tako da riješiš svoj problem, ako su ti bitni tačni vremenski intervali.
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: vb - Timer neradi svaki put isti interval... 15.04.2005. u 22:27 · pre 262 meseca #6
@mladenovicz

isto je i kad uradim .exe

@Not now, John!

pa treba mi dosta precizno... pošto programiram jedan čitav postupak u laboratoriju za optiku (Optical Fibre Attenuation) i pošto uzimam 5 vrijednosti u sekundi i pravim njihov prosjek... pa onda ubacim signal da se Monokromator pomjeri za korak i sačekam 2 sekunde da se umiri i opet čitam 5 i prosjek........

znači ako mi počne ranije nego 2 sekunde, ne valja... ako mi u intervalu 0,2sec... ne dolazi u obzir da mi nekad uzme svih 5 vrednosti u manje nego što treba 1 vrijednost.

kako si napravijo funkciju, da ti stalno gleda sistemski sat? ustvari da odbraja itd...

može li nešto više neko o tome?

Hvala za odgovore svima
Potpis
Pozdrav
GoGy
Re: vb - Timer neradi svaki put isti interval... 16.04.2005. u 01:16 · pre 262 meseca
izmenjeno 1 put, poslednji put Dark Icarus 16.04.2005. u 15:37
  1. Dark Icarus16.04.2005. u 15:37zapis iz teksta poruke
#7
Ako hoćeš preciznije od kontrole Timer onda koristi funkciju Timer(), ona je sistemska tj. ne moraš da je deklarišeš a inače daje broj sekundi proteklih od ponoći.
Code:
ReferentnoVreme = Timer
Do
  DoEvents

  ProtekloVreme = Timer - ReferentnoVreme
  If ProtekloVreme <0 Then ProtekloVreme = ProtekloVreme + 24*60*60  ' korekcija za slučaj da je upravo prošla ponoć

  If ProtekloVreme >= 7 Then 'ovde naravno može bilo koji interval
     ReferentnoVreme = Timer
     'ovde ide kod koji hoćeš da se izvršava svakih 7 sekundi
  End If

Loop
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Re: vb - Timer neradi svaki put isti interval... 23.04.2005. u 19:48 · pre 262 meseca #10
mozda bi trebaloa da probas sa ocitavanjem biosovog sata (Time$)
u okviru tajmera
zapises trenutno vreme(time$)
u inervalu 100-500 proveravas razliku izmedju trenutnog i zapisanog vremena
ako je razlika 7 izvrsis procedure koju hoces i na kraju te procedure
zapises novo trenutno vreme i sve tako

Time$ nikada ne gresi.Naravno radi se o sekundama.

Ukoliko nisi resio problem reci. Modu da postavim kod.

Trenutno sam preinstalirao win pa jos nisam instalirao VB ali to cu uskoro uraditi!
Re: vb - Timer neradi svaki put isti interval... 28.06.2005. u 22:09 · pre 259 meseci
izmenjeno 1 put, poslednji put manix 28.06.2005. u 22:14
  1. manix28.06.2005. u 22:14zapis iz teksta poruke
#12
ok ali Timer i Time$ valjda nije isto
Ako jesu onda je greska moja...

Uzmite u obzir da sam pocetnik,a zeleo sam da pomognem !
Re: vb - Timer neradi svaki put isti interval... 29.06.2005. u 15:41 · pre 259 meseci #14
Timer se oslanja na windows poruku WM_TIMER, koja moze biti odlizena zbog nekog hitnijeg posla. Ako ste primetili kako stuca i zapinje scroll SMS poruka po domacim televizijama, uzrok je koriscenje isto tog Timera koji ti zelis da iskoristis. Obicno kliktanje misa po dugmicima u aplikaciji drasticno poremeti rad ovog timera.

Windows nije relatime OS. Da bi dobio precizno merenje moras napraviti mrtvu petlju i kontrolisati frequency counter (API funkcije su QueryPerformanceCounter i QueryPerformanceFrequency). Na ovaj nacin ces potrositi 100% procesora u trenutku merenja, ali ce bar biti precizno.

Sa druge strane ako zelis da imas timer koji radi svakih npr N ms, (N > 10ms), mozes koristiti Multimedia Timere (funkcije timeBeginPeriod, timeEndPeriod, timeGetDevCaps,
timeGetSystemTime, timeGetTime, timeKillEvent, TimeProc, timeSetEvent) koji su prilicno precizni.

yooyo

Re: vb - Timer neradi svaki put isti interval... 30.06.2005. u 00:32 · pre 259 meseci
izmenjeno 1 put, poslednji put manix 30.06.2005. u 00:35
  1. manix30.06.2005. u 00:35zapis iz teksta poruke
#15
DA neke od tih stvari sam vec znao...

Moje pitanje se odnosilo na post "Dark Icarus -A sad pročitaj moj prethodni post."

Hteo sam reci da moj i njegov odgovor nisu isti jer on koristi Timer a ja sam nave primer sa Time$...

Sada mi recite jesam li upravu ???

Hvala vam za odgovore.

Takodje me zanima gde mogu saznati vise o:

"Multimedia Timere (funkcije timeBeginPeriod, timeEndPeriod, timeGetDevCaps,
timeGetSystemTime, timeGetTime, timeKillEvent, TimeProc, timeSetEvent) koji su prilicno precizni.
yooyo"
Re: vb - Timer neradi svaki put isti interval... 30.06.2005. u 13:48 · pre 259 meseci #16
Citat:

Takodje me zanima gde mogu saznati vise o:
Multimedia Timere (funkcije timeBeginPeriod, timeEndPeriod, timeGetDevCaps,
timeGetSystemTime, timeGetTime, timeKillEvent, TimeProc, timeSetEvent) koji su prilicno precizni.


Sve se nalazi u MSDN.
Nije mi jasno kako ljudi uopste mogu da programiraju a da nemaju MSDN?

yooyo
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme