Probem z Doubleclick w Evencie

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
kapitan7
Posty: 114
Rejestracja: 31 paź 2005 00:00
Wersja środowiska: LabVIEW 8.2
Lokalizacja: Cz-wa / Wa-wa

Probem z Doubleclick w Evencie

Post autor: kapitan7 »

Struktura event jest uruchamiana przyciskiem (np edytuj). Następnie w tej strukturze muszę odczytać numer rzędu klikniętego w multicolumn listbox.
Powstaje problem polegający na "zawieszeniu" się programu gdy doubleclick jest w pętli (pętla szuka wartości innej niż -2 (dla doubleclick = brak kliknięcia))
Proszę o pomoc w jaki sposób odczytać wartość doubleclick w strukturze event nie uruchamianej doubleclickiem.
kapitan7
Awatar użytkownika
Blamek
Posty: 115
Rejestracja: 20 paź 2005 00:00
Lokalizacja: Kraków

Re: Probem z Doubleclick w Evencie

Post autor: Blamek »

Hmmm cos nie bardzo rozumiem ...
chodzi o przekazanie numeru dwukliknietego wiersza do innego eventa czy same eventy sie "przycinaja'?
God is dead - Nietsche, Nietsche is dead - God
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: Probem z Doubleclick w Evencie

Post autor: PMaj »

też nie kumam o co chodzi - jeżeli sie dobrze domyślam, to problem polega na tym, ze jezeli klikasz raz to jest ok, a jak dwa razy to nie jest ok - w takim przypadku, jezeli nie reagujesz w inny sposob na double click, mozesz po prostu dołożyć zdarzenie double click do tego pojedyńczego i juz.

Jeżeli nie o to chodzi to proszę poprawić pytanie :wink:

pozdrawiam

pmaj
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
kapitan7
Posty: 114
Rejestracja: 31 paź 2005 00:00
Wersja środowiska: LabVIEW 8.2
Lokalizacja: Cz-wa / Wa-wa

Re: Probem z Doubleclick w Evencie

Post autor: kapitan7 »

Widać że nie jasno się wyraziłem.
Okno event uruchamiam przyciskiem jakimkolwiek np "OK" lub "wstaw" i potrzebuje w tym oknie działającym odzytać wartość doubleclicka (doubleclick używam dopiero po uruchomieniu tego okna ("ok" lub "wstaw") przyciskiem )
Problem polega na tym że nie wiem jak odzytać tą wartość ( w przypadku pętli czekającej na doubleclick program "wisi" - nie da się wogóle zmienić podświetlenia wiersza)
W przypadku eventa w evencie też nic nie działa. Wiem że mogę użyć event obok eventa - dwie struktury obok siebie, ale wydaje mi się to niepoprawne programistycznie.
Czy można to zrobić jakoś prządnie ??
kapitan7
Awatar użytkownika
Blamek
Posty: 115
Rejestracja: 20 paź 2005 00:00
Lokalizacja: Kraków

Re: Probem z Doubleclick w Evencie

Post autor: Blamek »

Moje propozycje zamiescilem w zalaczniku.
Jesli zachodzi potrzeba zapamietania dwukliku na dluzej, to mozna rowniez wykozystac wlasciwosc ActiveCell dla listbox'a.
Da sie tez bawic bez event'ow - metoda listboxa get dblclk row - co kto lubi i co komu wygodniej stosowac.
God is dead - Nietsche, Nietsche is dead - God
kapitan7
Posty: 114
Rejestracja: 31 paź 2005 00:00
Wersja środowiska: LabVIEW 8.2
Lokalizacja: Cz-wa / Wa-wa

Re: Probem z Doubleclick w Evencie

Post autor: kapitan7 »

Dziękuje za nadesłane propozycje jednakże nie o to mi chodziło
Mam pewien problem z poprawnym zdefiniowaniem problemu w związku z tym dąłączm plik z przykładowym problemem i wyszczególnie kilka ważnych podproblemów:
1. W jednej strukturze(pętli?) event będzie kilka zdarzeń (kilka "event case")
2. W części z nich po uruchomieniu któregoś eventa case'a przyciskiem np"OK" lub innym, będę musiał odczytać wartość dwukrotnie klikniętego wiersza z multicolumn listbox.
3. Zpewnych względów odpada propozycja dodatkowego eventa w którym wybierany by był przycisk np: "OK" lub inny, a w następnym event case pobierany przez "Row" wartość douleclick
- Mam nadzieje że mój problem się nieco rozjaśnił.
Proszę o pomoc w jego rozwiązaniu.
kapitan7
Awatar użytkownika
Blamek
Posty: 115
Rejestracja: 20 paź 2005 00:00
Lokalizacja: Kraków

Re: Probem z Doubleclick w Evencie

Post autor: Blamek »

Teraz dziala :)
Dla poprawienia czytelnosci kodu mozna wprowadzic enum zamiast samych liczb.
God is dead - Nietsche, Nietsche is dead - God
kapitan7
Posty: 114
Rejestracja: 31 paź 2005 00:00
Wersja środowiska: LabVIEW 8.2
Lokalizacja: Cz-wa / Wa-wa

Re: Probem z Doubleclick w Evencie

Post autor: kapitan7 »

Dziękuje za odpowiedź Jakkolwiek potrzebuje aby w event case uruchamianym przez przycisk 'OK' lub"OFF" mógł korzystać z wartości GetDblClick (bez uruchamiania innego event case'a - np event case Get Doubleclick)
Poprostu pojedynczy event case muszę uruchomić przyciskiem 'Ok' lub innym (podobnych event caseów będzie kilka tam też będę musiał korzystać z get dbl click i z ich wartości) i po uruchomieniu muszę odczytać wartość getdouble click bez wychodzenia z event case'a - Tylko jak to zrobić ??
kapitan7
Awatar użytkownika
Blamek
Posty: 115
Rejestracja: 20 paź 2005 00:00
Lokalizacja: Kraków

Re: Probem z Doubleclick w Evencie

Post autor: Blamek »

Niestety, ale wydaje mi sie ze sie nie da jednego z drugim pozenic, albo struktura event i Double Click, albo petla while i get dblclk row. Dodatkowo zwracam uwage na fakt ze listbox musi zawierac dane zanim bedzie prawidlowo wskazywac klikniete wiersze.
Przedstawione przezemnie rozwiazanie w poprzedniej wiadomosci nie powoduje wyjscia z event case, a jednynie przerzuca obluge zdarzen na double click, w strukturze case mozna zamiesic obsluge dowolnej liczby przyciskow czy jakick kolwiek innych kontrolek. Z wyjatkiem jakichs szczegolnych przypadkow, powinno to byc wystarczajace.
God is dead - Nietsche, Nietsche is dead - God
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Probem z Doubleclick w Evencie

Post autor: Mikrobi »

Witam
Przydał by się diagram do przeglądnięcia.
Struktura event obsługuje interfejs, lepiej aby była jedna lub wcale ;)
Czy na pewno potrzebujesz (używasz) - kilku struktur event w jednym VIju czy nie rozumiem idei?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
Blamek
Posty: 115
Rejestracja: 20 paź 2005 00:00
Lokalizacja: Kraków

Re: Probem z Doubleclick w Evencie

Post autor: Blamek »

taki program sie zawiesi:

[img]http://student.agh.edu.pl/~ablam/LabView/hang-lv.jpg[/img]

bo krecac sie w petli while sami sobie blokujemy eventy
z tego samego powodu get dblclk row nie ma zastosowania w strukturze event. Wiec z czegos nalezaloby zrezygnowac albo ze struktury event albo z metody get (...)
God is dead - Nietsche, Nietsche is dead - God
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Probem z Doubleclick w Evencie

Post autor: Mikrobi »

Jeśli event ma reagować na DoubleClick to obsluga tego zdarzenia oczywiście usuwa informację o wybranym wierszu.
Można tą informację zapamiętać korzystając z LVglobali i poprzez taką strukturę z tego korzystać.
Zapytam jednak ponowne: czy na pewno mamy aplikację z kilkoma różnymi strukturami event kapitanie7?
Może jednak można poszukać innego rozwiązania? Kapitanie?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
Blamek
Posty: 115
Rejestracja: 20 paź 2005 00:00
Lokalizacja: Kraków

Re: Probem z Doubleclick w Evencie

Post autor: Blamek »

A! Juz wiem, qumpel zwrocil mi na to uwage, trzeba odznaczyc opcje lock front panel (...) dla eventow (chyba wszystkich) i hula tak jak sobie tego kapitan7 zazyczyl. Po mojemu to za elegancko nie jest bo dodatkowo dochodzi nam sprawa z tworzeniem sie kolejki eventow co pewnikiem w oknie interface'u wprowadzi troche zamieszania.
God is dead - Nietsche, Nietsche is dead - God
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Probem z Doubleclick w Evencie

Post autor: Mikrobi »

Masz rację, ten sposób zadziała. Sugeruję jednak unikać gromadzenia zdarzeń do obsługi.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
kapitan7
Posty: 114
Rejestracja: 31 paź 2005 00:00
Wersja środowiska: LabVIEW 8.2
Lokalizacja: Cz-wa / Wa-wa

Re: Probem z Doubleclick w Evencie

Post autor: kapitan7 »

Witam i przepraszam za długie nieodpisywanie

Jednak dzięki Panów pomocy problem udało się skutecznie naprawić
Serdecznie dziękuje za okazaną cierpliwość i pomoc

Szczególne podziękowania dlaBlamka za przykłady i pomoc w skutecznym rozwiązaniu problemu :D
kapitan7
ODPOWIEDZ