Witam,
aby nie tworzyć kolejnych tematów postanowiłem zapytać tutaj. Mianowicie jak pobrać wartości które są zapisane w w zakładkach.
Właśnie chodzi o to, żeby tworzyć, bo temat, do którego się podpiąłeś zakończył się jakieś dwa lata temu. Pitol
Pozdrawiam
Wartości w zakładce Tab
- smiga
- Administrator
- Posty: 823
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Wartości w zakładce Tab
Nie lubię wątków "wiszących" bez odpowiedzi, tym bardziej jeżeli jest to czyjś pierwszy wątek ;) ... podejrzewam, że przyczyna jej braku jest prozaiczna - źle / zbyt ogólnie sformułowane pytanie.
Proszę więc Kolegę Enigmatus'a o mniej enigmatyczne pytanie, czyli uściślenie, a na pewno rozwiążemy problem.
pozdrawiam
Proszę więc Kolegę Enigmatus'a o mniej enigmatyczne pytanie, czyli uściślenie, a na pewno rozwiążemy problem.
pozdrawiam
Wartości w zakładce Tab
faktycznie, nie przemyślałem swojego postu.
Sytuacja wygląda tak: na panelu jest element wyświetlający wykres (GRAPH) oraz element zawierający dwie zakładki (TAB). Na zakładkach są miejsca do wpisywania wartości (NUMERIC). Problem polega na tym że wciskając przycisk który znajduje się na panelu (a nie na zakładce) chcę pobrać wartości (z NUMERIC) do zmiennych i przekazać je po obliczeniach na wykres. Próbowałem pobrać wskaźnik dla zakładki poleceniem GetPanelHandleFromTabPage i użyć go w poleceniu GetCtrlVal. Tym sposobem dostaję za pierwszym kliknięciem jakieś wartości (które są niepoprawne) a przy następnych kliknięciach (nawet zmieniając wartości w NUMERIC) nie zmienia się nic.
Problem wydaję mi się że leży w tym, że polecenie GetCtrlVal nie dostaje odpowiedniego wskaźnika który pokazuje na konkretną zakładkę.
Pozdrawiam
Sytuacja wygląda tak: na panelu jest element wyświetlający wykres (GRAPH) oraz element zawierający dwie zakładki (TAB). Na zakładkach są miejsca do wpisywania wartości (NUMERIC). Problem polega na tym że wciskając przycisk który znajduje się na panelu (a nie na zakładce) chcę pobrać wartości (z NUMERIC) do zmiennych i przekazać je po obliczeniach na wykres. Próbowałem pobrać wskaźnik dla zakładki poleceniem GetPanelHandleFromTabPage i użyć go w poleceniu GetCtrlVal. Tym sposobem dostaję za pierwszym kliknięciem jakieś wartości (które są niepoprawne) a przy następnych kliknięciach (nawet zmieniając wartości w NUMERIC) nie zmienia się nic.
Problem wydaję mi się że leży w tym, że polecenie GetCtrlVal nie dostaje odpowiedniego wskaźnika który pokazuje na konkretną zakładkę.
Pozdrawiam
- smiga
- Administrator
- Posty: 823
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Wartości w zakładce Tab
Ja bym to zrobił w ten sposób:
To co wpisujemy w numeric'ach w zakładkach nie ma znaczenia bo nie powoduje bezpośredniej zmiany na wykresie (chyba że źle zrozumiałem), więc tu nic specjalnego nie kombinujemy.
Przycisk na panelu obsługujemy jako event - po jego wciśnięciu sczytujemy wartości z numeric'ów na zakładkach i przekazujemy na wykres (po obróbce ewentualnej jeżeli jest konieczna). Polecam zrobienie tego w konfiguracji producent/konsument gdzie producentem będzie event (gotowy patern: File/New... Producer/Consumer Design Pattern (Events). W "konsumencie" robi się wtedy obróbkę tego co "producent" wyprodukował. Pętla konsumenta wyświetli też dane na wykresie. Jeżeli nie są to złożone obliczenia i mamy dużo czasu pomiędzy event'ami przycisku to można wszystko zrobić wewnątrz pętli event pomijając układ producent/konsument z kolejkami itd.
To co wpisujemy w numeric'ach w zakładkach nie ma znaczenia bo nie powoduje bezpośredniej zmiany na wykresie (chyba że źle zrozumiałem), więc tu nic specjalnego nie kombinujemy.
Przycisk na panelu obsługujemy jako event - po jego wciśnięciu sczytujemy wartości z numeric'ów na zakładkach i przekazujemy na wykres (po obróbce ewentualnej jeżeli jest konieczna). Polecam zrobienie tego w konfiguracji producent/konsument gdzie producentem będzie event (gotowy patern: File/New... Producer/Consumer Design Pattern (Events). W "konsumencie" robi się wtedy obróbkę tego co "producent" wyprodukował. Pętla konsumenta wyświetli też dane na wykresie. Jeżeli nie są to złożone obliczenia i mamy dużo czasu pomiędzy event'ami przycisku to można wszystko zrobić wewnątrz pętli event pomijając układ producent/konsument z kolejkami itd.
Ostatnio zmieniony 07 wrz 2010 10:59 przez smiga, łącznie zmieniany 1 raz.
- Pitol
- Moderator
- Posty: 986
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Wartości w zakładce Tab
śmiga nie wiem czy zauważyłeś, ale kolega pisze w dziale LabWindows/CVI a nie LabVIEW. Nie wiem jak tam jest z implementacją Producent - Konsument 

- smiga
- Administrator
- Posty: 823
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Wartości w zakładce Tab
Faktycznie, przeoczyłem - dzięki za uwagę Pitol.
Może więc wszystko wstawić do eventa ... jeżeli nie często występuje takie zdarzenie i nie jest czasochłonne obliczanie danych do wykresu.
...ale przyznaję, że na LabWindows/CVI to się nie znam ... mam tylko nadzieję, że troszkę "popchnąłem" wątek ;)
Może więc wszystko wstawić do eventa ... jeżeli nie często występuje takie zdarzenie i nie jest czasochłonne obliczanie danych do wykresu.
...ale przyznaję, że na LabWindows/CVI to się nie znam ... mam tylko nadzieję, że troszkę "popchnąłem" wątek ;)
Wartości w zakładce Tab
Problem rozwiązany. Chodziło o źle pobierane wskaźniki dla stron zakładek. Stworzyłem kilka elementów NUMERIC aby prześledzić jakie wartości są zapisywane w zmiennych i tą drogą doszedłem gdzie jest błąd.
Jeżeli ktoś będzie miał problem z pobraniem wartości z zakładek to robi się to tak:
najpierw pobieramy wskaźnik na konkretną zakładkę poleceniem
gdzie panelHandle to wskaźnik panela gdzie znajduję się zakładka , controlID to zdefiniowana stała dla zakładek, index to numer dla strony zakładki (numeracja od zera w górę całkowitymi poczynając od prawej) *tabPanelHandle zmienia typu int gdzie zapisany zostanie wskaźnik zakładki.
a później używamy polecenia GetCtrlVal i w panelhandle wpisujemy zmienną *tabPanelHandle)
Jeżeli ktoś będzie miał problem z pobraniem wartości z zakładek to robi się to tak:
najpierw pobieramy wskaźnik na konkretną zakładkę poleceniem
Kod: Zaznacz cały
GetPanelHandleFromTabPage (int panelHandle, int controlID, int index, int *tabPanelHandle);
a później używamy polecenia GetCtrlVal i w panelhandle wpisujemy zmienną *tabPanelHandle)