Strona 1 z 1

programowe zatrzymanie Event Key Down

: 03 paź 2008 10:16
autor: skalag
Witam
Istnieje mozliwosc programowego zatrzymania Event- Key Down ?
Problem jest taki.
Mam Event - key down i skanuje klawiature szukajac klawiszy 1, 2,3, G.
Uruchamiam VI i w pewnym momencie potrzbuje wpisac cos z klawiatury
(zadanie hasla, lub wpis innuych danych) i wtedy nastepuje zdarzenie.
Istnieje mozliwosc chwilowego wylaczenia obslugi skanowania i ponownego go zalacznia ?

Pzdr

Re: programowe zatrzymanie Event Key Down

: 03 paź 2008 12:51
autor: AzazeL
Wyższa szkoła jazdy, lecz można to zrobić. Przejrzyj załącznik.

Re: programowe zatrzymanie Event Key Down

: 08 paź 2008 02:50
autor: skalag
Nie jest to takie łatwe chyba .jak narazie u mnie nie chce dzialac. nawet jak wylacze (tzn zmienie wartosc i generruje event od eventa) to i tak oba eventy sa generowane. a w zamierzenieu jest wylacznie tego pierwszego (tzn zeby sie nie pojawilo okno dialogowe).
Powiedzcie co zle robie.
Przyklad podaje bardzo prosty VI a w rzeczywistosci mam 12 zdeklarowanych events.( w wiekszosci na zmiane wartosci i jeden jedyny na key down.to nim wykrywam klawisze i zalaczam odpowiedie podprogramy.)

pzdr

Re: programowe zatrzymanie Event Key Down

: 08 paź 2008 05:39
autor: Ender
Zamiast eventa "Key down" spróbuj wykorzystać "Key down?". Po prawej stronie eventa pojawi Ci się wtedy property 'Discard?" - podanie wartości logicznej true (np informacja, że akurat jest wprowadzane hasło) powoduje, że zmiany dokonane w tym evencie po wyjściu z niego są ignorowane. Nie jest to rozwiązanie idealne, ale może przy odrobinie kombinacji pomoże rozwiązać Twój problem.

Re: programowe zatrzymanie Event Key Down

: 08 paź 2008 09:46
autor: skalag
Zrobilem tak jak mowisz i dziala, tyle ze wylacza calkowicie obsluge klawiatury. wiec poszedlem dalej uzylem scan mode zeby wykrywac klawisze ktore sa mi potrzebne i wtedy AND z przyciskiem i do discard.
Dziala ale problem teraz taki ze jak wylaczam te przyciski (1,2,3) to nie moge ich uzyc do sczytywania danych(bo nie sa obslugiwane) a o to glownie mi chodzi. Nie moge tez zmenic klawiszy 1,2,3 na literowe bo takie wymagania projektu.
Jakies wizje jak to rozwiazac?

pzdr

Re: programowe zatrzymanie Event Key Down

: 08 paź 2008 11:12
autor: Rudyjerz
Trochę nie rozumiem, co chcesz zrobić z tymi dwiema pętlami z eventami, ale czy Tobie nie chodzi o coś takiego?

W tym przykładzie normalnie klawisze 1, 2, 3 generują event (zapalają lampkę), ale jak wejdziesz do pola hasło, albo uruchomisz prompt o hasło, to program na nie nie reaguje.

Re: programowe zatrzymanie Event Key Down

: 09 paź 2008 01:23
autor: skalag
Jakos nie moge tego zrealizowac.
Ponizej przyklad w ktorym
klawisze 1,2 3 przelaczaja poszczegolne taby 1, 2, 3.
w tabie 3 jest kontrolka Edit ( switch when presesed ) i ona zalacza tryb edycji zmiennej Nr3. problem w tym ze jak probuje wpisac cyfry 1,2,3 do tej zmiennej to generowany jest event i nie widze juz tej wpisanej zmiennej bo sie taby przelaczyly.
Wyjscie z trybu edycji to ponowne wcisniecie EDIT.
I wogule jakos dziwnie klawisz 3 sie zawiesza czasami.
Nie rozumiem juz tego.

Re: programowe zatrzymanie Event Key Down

: 09 paź 2008 08:33
autor: Ender
Metoda Rudego jest zdecydowanie bardziej elegancka i skuteczniejsza - człowiek uczy się całe życie :)

Chodzi Ci o coś takiego?

Re: programowe zatrzymanie Event Key Down

: 09 paź 2008 10:06
autor: Rudyjerz
Nie wiem co zrobił Ender bo użył LV8.6 a ja mam 8.5, ale ja bym to zrobił tak jak w załączniku.

Trochę tu jest inaczej niż w poprzednim przykładzie, bo wtedy jak się szybko naciskało któryś z tych klawiszy (1,2,3) to mimo wszystko generowały one event. Teraz już tego nie ma.

Specjalnie nie ma tam drugiej pętli while, bo zostawienie jej powoduje, że ona kręci się cały czas i zużywa 99% zasobów procesora. Dlatego proponuje Ci robić wszystko w tej samej pętli co event, ew. używać jakiś innych mechanizmów, żeby ta pętla się nie kręciła cały czas.