Strona 1 z 1

Wskażniki regulatory

: 13 lip 2004 19:08
autor: jacobs
Do zmiany skali używam regulatora (slide lub bar) który ma płynną regulację a potrzebna mi skokowa. Oczywiście można w date range ustawić sobie inkrementację i rzeczywiście to dobrze realizuje skok. Ale czy można ustawić nierówne wartości skoków? Już na wstępie znam te wartości (1,2,5,10,20,50,100)ale nie wiem jak je na twardo ustawić. Niech mi ktoś powie że jest to możliwe.

: 13 lip 2004 20:33
autor: PMaj
Witam
Oczywiście jest to możliwe - przychodzi mi tu na myśl wariant z wykorzystaniem kontrolki 'text ring' z menu 'ring and enum'. Przypmina ona zwykłą kontrolkę numeryczną - można ją podpiąć do 'case', w którym należy wpisać odpowiednie wartości. Chcąc koniecznie wykorzystać 'slide' należałoby prawdopodobnie odwołać się do property node...
mam nadzieję ze choć troche pomogłem :)
pozdrawiam

Re: Wskażniki regulatory

: 13 lip 2004 20:35
autor: Mikrobi
[quote="jacobs"]Do zmiany skali używam regulatora (slide lub bar) który ma płynną regulację a potrzebna mi skokowa. Oczywiście można w date range ustawić sobie inkrementację i rzeczywiście to dobrze realizuje skok. Ale czy można ustawić nierówne wartości skoków? Już na wstępie znam te wartości (1,2,5,10,20,50,100)ale nie wiem jak je na twardo ustawić. Niech mi ktoś powie że jest to możliwe.[/quote]
Nie zawsze musi być kawior :) Trzeba będzie wykorzystać tabelę, i odczytywać pole aktywne przy kliknięciu na nie kursorem. Można to zrobić na dwa sposoby, tak jak przedstawiłem na diagramie: [img]http://layer.uci.agh.edu.pl/~mikrobi/la ... bela_d.png[/img] W skrócie: - tworzysz na diagramie stałą tablice stringów i wpisujesz w kolejne pola swoje wartości, - wybierasz na panelu element Tabela - przez element Build Array podpinasz stałą tabelę ze swoimi wartościami do kontrolki Tabela - i teraz: dla WERSJI1: tworzysz z prawego klawisza myszy Create>>Property Node (2 elementy) w jednym określasz rozmiar tabeli (1 wiersz i tyle kolumn ile ma utworzona tablica stringów) z drugiego odczytujesz za pomocą Unbundle By Name jedną z wartości Edit Position (Column) i nią indeksujesz wyciąganie danych ze stałej tablicy stringów Potem już tylko zamiana wartości ze stringu na numer i gotowe.
dla WERSJI2: z praw. kl. myszy tworzysz referencje i podpinasz to do elementu z palety Functions>>Application Control (VI na tacy :) ) Property Node. Reszta w zasadzie podobna (dobieranie właściwości tabeli itd..)
Zaletą WERSJI2 jest to że łatwiej ją będzie wrzucić do subVI'ja.
Panel jest tutaj: [img]http://layer.uci.agh.edu.pl/~mikrobi/la ... _panel.png[/img]
Klikając na odpowiednią wartość w tabeli dostaniesz ją jako wybrany element.
powodzenia Mikrobi

Rozwiązanie

: 13 lip 2004 21:33
autor: bogdani
Witaj
Jeśli używasz LabVIEW 7 Express lub nowszej wersji to możesz zrobić coś takiego. We właściwościach regulatora Slider określasz jego skalę jak pokazano poniżej:
[img]http://www.labview.pl/images/forum/skala03.png[/img]
Potem otrzymujesz taki regulator:
[img]http://www.labview.pl/images/forum/skala01.png[/img]
Do którego możesz zrobić taki kod i po sprawie:
[img]http://www.labview.pl/images/forum/skala02.png[/img]
Wszystko to pod warunkiem, że masz dobra wersję LabVIEW, bo chyba w wersji 6.1 tego jeszcze nie było.
bogdani