Strona 1 z 1

Wartości w zakładce Tab

: 03 wrz 2010 16:01
autor: enigmatus
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

Re: Wartości w zakładce Tab

: 06 wrz 2010 17:50
autor: smiga
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

Wartości w zakładce Tab

: 07 wrz 2010 09:59
autor: enigmatus
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

Re: Wartości w zakładce Tab

: 07 wrz 2010 10:54
autor: smiga
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.

Re: Wartości w zakładce Tab

: 07 wrz 2010 10:57
autor: Pitol
ś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 :D

Re: Wartości w zakładce Tab

: 07 wrz 2010 11:03
autor: smiga
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 ;)

Wartości w zakładce Tab

: 07 wrz 2010 11:41
autor: enigmatus
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

Kod: Zaznacz cały

GetPanelHandleFromTabPage (int panelHandle, int controlID, int index, int *tabPanelHandle); 
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)