No widzisz - wszystko sprowadza się ZAWSZE do jednego. Tzn ludzie szukają "świętego grala" z tą obsługą pojedynczych klawiszy, bo to takie przecież proste, że aż nikomu nie chce się pochylić nad tym aby rozrysować sobie algorytm i opisać jak wygląda czy jak powinna wyglądać taka obsługa. Rzadko kto próbuje to przeanalizować tak jak ja to rozpisałem w pierwszej (niebieskiej) książce. Czyli nikomu nie chce się często pomyśleć nad tym żeby programowo rozróżnić takie stany jak: PRESS, PUSH oraz AutoREPEAT, a szkoda.
rzuć proszę okiem na ten post:
post16079.html#p16079A potem jeszcze raz sprawdź sobie SuperDebounce() i nie po to żeby zaraz na siłę z tego korzystać - tylko żeby spróbować zrozumieć jak podejść do pisania takich procedur.
Podpowiem że realizacja właśnie takiego efektu, że np:
mamy regulację głośności w TV. Pojawia się na dole często długi pasek postępu i gdy klikamy pojedynczo na pilocie klawisz "głośniej" to pasek skacze o bardzo małe wartości, próba w ten sposób zrobienia głośności na maxa trwałaby wieki. Tymczasem zwykle fajnie to działa że gdy trzymamy klawisz przyciśnięty dłużej to ...... co ?? to pasek zaczyna tym szybciej rosnąć im dłużej go trzymamy - prawda ? I o taki efekt pewnie ci chodzi. Dla mnie np to JEDNA Z PODSTAWOWYCH możliwści i opcji obsługi klawiszy, a związana jest z opcją AutoREPEAT .... i właśnie dzięki niej w SuperDebounce() bez mrugnięcia okiem takie coś zrealizować można a do tego jak widać:
1. zupełnie nieblokująco
2. bez żadnych _delay'ów
spójrz też na zmienną key_time w moich funkcjach obsługi RC5 (piloty) .... toż ta samo-inkrementująca się zmienna właśnie do tego mi służy
Oczywiście nie tylko do tego - ma jeszcze 100 innych zastosowań
.... ale piszę ci to wszystko żebyś zobaczył - że jak człowiek RAZ usiądzie i wymyśli sobie porządną obsługę klawisza to później przydaje się ona w praktycznie niezmienionej postaci dzięki callbackom w KAŻDEJ sytuacji i dowolnym programie.
Dlatego zachęcam do napisania sobie takiej uniwersalnej obsługi, niż za każdym razem walczyć w kodzie o realizację jakiegoś tam celu .... bo to - dopiero zajmuje czas a o pamięci FLASH już nie wspomnę (to tak a'porpos innego tematu)
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]