[ sale33 @ 06.04.2015. 21:34 ] @
Relativno sam nov u VB i ne poznajem sve instrukcije
Uradio sam neki program, koji se izvrsava klikom na komand buton.
Sve to lepo radi, ali imam mali problemcic.
Naime ako brzo kliknem vise puta na komad buton, on zapamti vise klikova i ponovi ceo program nekoliko puta.
Inace isto dugme se koristi vise puta u programu, ali za razlicite stvari, pa mi je neophodno da ne reaguje tako brzo

Pokusao sam sa
"Command1.Enabled = falshe", ali ni to ne pomaze jer zapamti bar 3 klika pre samog iskljucenja dugmeta.

Za sada sam problem resio tako sto sam na samom pocetku stavio sledece:

DoEvents
BlockInput True
Sleep 600
BlockInput False

Tek sa pauzom vecom od pola sekunde, uspeo sam da onemogucim vise klikova.
Pretpostavljam da postoji elegantnijii nacin za ovo, pa molim za pomoc.
Mozda nesto sa usporavanjem klika misa ili neka druga ideja?
[ captPicard @ 07.04.2015. 09:44 ] @
Gdje točno postaviš button.enabled = false?
[ sale33 @ 07.04.2015. 13:47 ] @
Na samom pocetku buton click procedure.
Imam na primer program koji se izvrsava desetak sekundi,pa program koji bi trebao da se izvrsi na drugi klik.
Mejutim ako brzo kliknem dva puta on odradi oba dela programa, bez obzira sto sam program traja dugo.


[Ovu poruku je menjao sale33 dana 07.04.2015. u 18:58 GMT+1]
[ dusans @ 07.04.2015. 13:59 ] @
Varijanta 1:
Zapamti vreme na kraju izvršenja click handlera.
Nemoj da obrađuješ dalje klikove ako je proteklo manje od npr. 1 sekunde od tog zapamćenog vremena.

Varijanta 2:
1. Ako je button disabled prekini izvršenje
2. Uradi disable buttona
3. Izvrši šta već treba...
4. Pozovi DoEvents()
5. Uradi enable buttona
[ sale33 @ 07.04.2015. 17:56 ] @
dusans
Hvala!
Varijanta 2 je upravo ono sto mi je trebalo.

Prosto ko pasulj, ali sam ja u startu odlutao u pogresnom smeru.