Strona 1 z 1

jedna fukcja w kilku zakładkach

: 19 gru 2008 22:23
autor: voodoo84
Witam wszystkich,

mam taki problem, program który piszę podzieliłem zakładkami Tab Control które odpowiadają „podprogramom” wykonującym tylko wybrane funkcje programu głównego. Pewnie przyciski pojawią się w większości zakładek i teraz pytanie: jak połączyć ich funkcję, tzn żeby można było wywołać jedną procedurę z kilku zakładek (nie wszystkich) np przyciski: reset, inizjalizacja. ewentualnie jak inaczej to rozwiązać?

[img]http://img244.imageshack.us/img244/6711/sc1go4.jpg[/img]
[img]http://img257.imageshack.us/img257/1189/sc2arr5.jpg[/img]

Re: jedna fukcja w kilku zakładkach

: 20 gru 2008 16:51
autor: jogurt_owocowy
Hej
Pewnie przyciski pojawią się w większości zakładek
Jest to pewien problem.
Pierwsze rozwiązanie jest opisane m.in. TUTAJ i polega na wjechaniu takim przyciskiem nad Tab Control za pomocą klawiszy kursorów, dzięki czemu przycisk nie wiąże się z Tab Controlem, a zamiast tego wisi niejako nad nim. Niezbyt to eleganckie moim zdaniem.
Drugie rozwiązanie to osobne przyciski dla osobnych zakładek, ale każdy z nich robi to samo - możesz zrobić dla nich wspólny event Value Change. W takim rozwiązaniu, jeśli chciałbyś aby tych kilka przycisków wyglądało jak jeden tj. aby były w tym samym miejscu na różnych zakładkach, warto byłoby zadbać o ich pozycjonowanie względem Tab Controla przy starcie programu. Nie do końca przekonany, ale skłaniałbym się ku temu drugiemu rozwiązaniu. Ma ktoś jakiś lepszy pomysł?
Pozdrawiam

jedna fukcja w kilku zakładkach

: 20 gru 2008 18:41
autor: Mikrobi
Przyznaję:
1. nie rozumiem idei programu
2. nie widzę algorytmu (nawet ogólnego, a przydal by sie i ogólny i szczegółowy do modułów programu) ale widzę duże błędy programowe:
1. w każdej iteracji pętli tworzysz-konfigurujesz-uruchaniasz-gromadzisz dane-zatrzymujesz-usuwasz-sprawdzasz satus błędu obu wątków sprzętowych. To nie jest dobre rozwiązanie. Trzy pierwsze i trzy ostatnie VIje w wątkach sprzętowych powinny pracować poza petlą akwizycji danych.
2. Pracujesz z interfejsem operując na poolingu czyli w każdej iteracji sprawdzasz stan przycisków - do operacji z interfejsem przeznaczona jest struktura event (operuje się na niej od wersji 6.1 - nie wiemy na jakiej pracujesz)
3. Wszystko (większość kodu jak wnioskuję, a zapewne rdzeń aplikacji) dzieje się w jednej pętli - obsługa interfejsu, akwizycja danych a czesci diagramu nie widac, więć zakładam że i coś jeszcze. Warto popatrzeć w oknie Getting Started w menu File>> New>>VI>> From Template>>Frameworks na różne metody realizacji aplikacji i przeczytać ich opisy
Napisz więcej o aplikacji, postaramy sie pomóc.
tytułem uzupełnienia Dobrze, przeczytalem poprzedni Twój post, pracujesz w LabVIEW 8.0. Co więcej przedyskutowałem go też z pewnym dydaktykiem LabVIEW, który zanikł ostatnio na naszym forum ;).
Wnioski dydaktyczne: jak na początkującego w środkowisku diagram wygląda dobrze i czytelnie, więc to dobry początek.
Sugestia: a) znajdz dzień na sprawdzenie jak operuje struktura event - zrób kilka VIjów, które będą reagowały na przyciski b) zastanów się jak byś podzielił program pod kątem operacji (wątków) które wykonują się jednocześnie, określ które dane trzeba będzie przeności miedzy tymi wątkami. c) utwórz projekt i przenieś do niego posiadane już VIje - jesli sobie z tym nie poradzisz - pytaj.
I oczywiście nie bierz tego wszystkiego do siebie, uwagi dotyczą kodu 8)

Re: jedna fukcja w kilku zakładkach

: 20 gru 2008 20:29
autor: voodoo84
jogurt_owocowy pisze:Hej
Pewnie przyciski pojawią się w większości zakładek
Drugie rozwiązanie to osobne przyciski dla osobnych zakładek, ale każdy z nich robi to samo - możesz zrobić dla nich wspólny event Value Change. W takim rozwiązaniu, jeśli chciałbyś aby tych kilka przycisków wyglądało jak jeden tj. aby były w tym samym miejscu na różnych zakładkach, warto byłoby zadbać o ich pozycjonowanie względem Tab Controla przy starcie programu. Nie do końca przekonany, ale skłaniałbym się ku temu drugiemu rozwiązaniu. Ma ktoś jakiś lepszy pomysł?
Pozdrawiam
Pierwsze rozwiązanie w ogóle nie wchodzi rachubę, drugie by mi podpowiadało tylko że nie potrafię go zastosować, używam wspólnej stałej jednak zdublowane klawisze nie wykonują zadanych funkcji. Nie wiem już co robie źle. Prosiłbym Cię bardzo żebyś umieścił u mnie w programie w dwóch różnych zakładkach np. klawisz RESET i Waveform Chart – przebieg czasowy kodu błędu. Liczę bardzo na waszą pomoc.