[ X-Cite @ 15.04.2005. 14:38 ] @
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
[ Burgos @ 15.04.2005. 15:01 ] @
Možeš li postovati kod? Verovatno je uzrok nepreciznost Timer Kontrole.
[ X-Cite @ 15.04.2005. 15:27 ] @
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
[ mladenovicz @ 15.04.2005. 15:51 ] @
A ako kompajliras i pokrenes exe, da li onda radi ispravno?
[ Not now, John! @ 15.04.2005. 17:36 ] @
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.
[ X-Cite @ 15.04.2005. 21:27 ] @
@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
[ Dark Icarus @ 16.04.2005. 00:16 ] @
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


[Ovu poruku je menjao Dark Icarus dana 16.04.2005. u 15:37 GMT+1]
[ X-Cite @ 16.04.2005. 07:17 ] @
Ovo ću moći da isprobam tek sledeće sedmice, pa ću javiti...

Hvala!
[ mladenovicz @ 16.04.2005. 15:07 ] @
Vredi procitati Timers tutorial by Dragi Tata
[ manix @ 23.04.2005. 18:48 ] @
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!
[ Dark Icarus @ 24.04.2005. 03:43 ] @
A sad pročitaj moj prethodni post.
[ manix @ 28.06.2005. 21:09 ] @
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 !

[Ovu poruku je menjao manix dana 28.06.2005. u 22:14 GMT+1]
[ Aleksandar Ružičić @ 29.06.2005. 13:20 ] @
naravno da Time i Timer nije isto Timer vraca vreme proteklo od ponoci a Time vraca nesto u formatu HH:MM:SS
[ yooyo @ 29.06.2005. 14:41 ] @
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

[ manix @ 29.06.2005. 23:32 ] @
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"


[Ovu poruku je menjao manix dana 30.06.2005. u 00:35 GMT+1]
[ yooyo @ 30.06.2005. 12:48 ] @
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