Forum » Programiranje » [MFC, C++] Sinhroniziranje Progress Bara z Timerjem
[MFC, C++] Sinhroniziranje Progress Bara z Timerjem
c0dehunter ::
Kaj želim doseči?
Da bi se Progress Bar začel polniti znova vsake toliko, ko bi se izvedla funkcija OnTimer. Do naslednje izvedbe OnTimer bi se Progress Bar moral enakomerno do konca zapolniti. Torej neke vrste sinhronizacija Progress Bara z timerjem.
Kaj mi ne deluje?
ProgressBar se pri spremembi Slider controla (od koder dobim čas za Timer) ne ujema več z Timerjem.
Kaj sem že naredil?
Vse Edini problem je - da, sinhronizacija. ProgressBarov range je definiran takole:
V OnButtonnClickedZacetek() imam deklarirana dva Timerja. Prvi Timer je tisti osnovni, ob katerem bi se moral ProgressBar resetirati in začeti znova . Drugi Timer imam samo za to, da enakomerno zapolnjujem ProgressBar z StepIt().
Potem pa vsakič v funkciji OnTimer preverjam, če je ID timerja TIMER2, potem delno zapolnim ProgressBar s StepIt(). BTW, če Step ne definiraš je privzeto 10 enot.
Kaj delam narobe, da ni sinhronizirano?
Da bi se Progress Bar začel polniti znova vsake toliko, ko bi se izvedla funkcija OnTimer. Do naslednje izvedbe OnTimer bi se Progress Bar moral enakomerno do konca zapolniti. Torej neke vrste sinhronizacija Progress Bara z timerjem.
Kaj mi ne deluje?
ProgressBar se pri spremembi Slider controla (od koder dobim čas za Timer) ne ujema več z Timerjem.
Kaj sem že naredil?
Vse Edini problem je - da, sinhronizacija. ProgressBarov range je definiran takole:
p_bar.SetRange(0,100);
V OnButtonnClickedZacetek() imam deklarirana dva Timerja. Prvi Timer je tisti osnovni, ob katerem bi se moral ProgressBar resetirati in začeti znova . Drugi Timer imam samo za to, da enakomerno zapolnjujem ProgressBar z StepIt().
UINT prvi_timer=SetTimer(TIMER1,drsnik.getPos(),(TIMERPROC) NULL); UINT drugi_timer=SetTimer(TIMER2,drsnik.getPos()/10,(TIMERPROC) NULL);
Potem pa vsakič v funkciji OnTimer preverjam, če je ID timerja TIMER2, potem delno zapolnim ProgressBar s StepIt(). BTW, če Step ne definiraš je privzeto 10 enot.
Kaj delam narobe, da ni sinhronizirano?
I do not agree with what you have to say,
but I'll defend to the death your right to say it.
but I'll defend to the death your right to say it.
- spremenilo: c0dehunter ()
c0dehunter ::
Edit:
drsnik.getPos() je čas v milisekundah, ki ga preberem iz sliderja
Drugi Timer se pa pojavi 10x pogosteje, in potem vsakič kličem StepIt za 10, od 0 do 100...
drsnik.getPos() je čas v milisekundah, ki ga preberem iz sliderja
Drugi Timer se pa pojavi 10x pogosteje, in potem vsakič kličem StepIt za 10, od 0 do 100...
I do not agree with what you have to say,
but I'll defend to the death your right to say it.
but I'll defend to the death your right to say it.
W3by ::
Kaj pa če bi probal naredit vse v enem timerju? Uporabiš čas drugega timerja - drsnik.getPos()/10, vsakič ko bi se timer izvedel bi premaknil progressbar, ko pa bi prišel do 10 bi resetiral vse skupaj.
Druga stvar - zakaj ne naštimaš range progressbar-a od 0 do 10, in potem samo normalno kličeš stepit, da se premakne po en korak.
Druga stvar - zakaj ne naštimaš range progressbar-a od 0 do 10, in potem samo normalno kličeš stepit, da se premakne po en korak.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# PomočOddelek: Programiranje | 1400 (1225) | jizzer |
» | [JAVA]Barvni string v labeliOddelek: Programiranje | 917 (845) | Infinity |
» | [JAVA] Nujno potrebujem pomoč!Oddelek: Programiranje | 1379 (1173) | Villain |
» | VB6 - ne zaključi proces programa - pomoč !!!Oddelek: Programiranje | 1391 (1232) | Mavrik |
» | VB6 kako uporabitiOddelek: Programiranje | 970 (832) | Area_51 |