Strona 1 z 1
Zamykanie VI
: 16 wrz 2004 19:00
autor: Gość
Witam.
Mam vi który pełni funkcję menu głównego. Z niego odpalam inne vi. Pytanie: jak najprościej zamknąć (a nie tylko ukryć FP) menu główne kiedy uruchomię już inny program? Oczywiście kiedy zamknę tenże program uruchamia się spowrotem menu główne?
Do traya
: 16 wrz 2004 20:45
autor: bogdani
Witam
Możesz zamiast zamykać główny program zminimalizować go do traya (sposób dość szeroko tu opisywany). Jak zamkniesz uruchomiony wcześniej program to program główny (który siedzi w trayu) możesz zamknąć poprzez Quit LabVIEW.
Wiem że to nie dokładnie to o co pytałeś, ale to też jestr jakieś rozwiązanie.
bogdani
: 17 wrz 2004 02:08
autor: PMaj
Witam
Żeczywiście - nie znalazłem opcji zamykania VI'a innego niż ten opisany przez bogdaniego ... Nasuwa mi się jednak takie rozwiązanie 'na około': Ukrycie panelu frontowego powoduje to, że programu i tak nie ma w pasku zadań - jest to jakieś rozwiązanie, bo jeżeli dotego dołożymy STOP z menu Application Control, który działa jak zatrzymanie działania programu poprzez Abort Execution, to otrzymamy niepracujący i niewidoczny VI, który teraz można uaktywnić z innego VI'a, tzn. uruchomić i uczynić widocznym ...
Nie powinno się stosować Abort Execution, ALE skoro i tak w planach jest zamknięcie aplikacji to myślę, iż byłoby ok.
Nie jest to prawdopodobnie najlepszy sposób, więc również czekam na leprze pomysły
Pozdrawiam
: 17 wrz 2004 17:46
autor: Gość
Witam
Dzięki za sugestie.
Czekam na dalsze pomysły!
Pozdrawiam
: 19 wrz 2004 23:03
autor: rafal
Witam
Mam ten sam problem. I gdyby nie to, że pracuję na wersji 6i miałbym to z głowy.
Rozwiązałem to następująco:
W menu głównym mam przyciski uruchamiające poszczególne aplikacje. Wciśnięcie przycisku (uruchamiającego daną aplikację) powoduje uruchomienie 3 sekwencji. W 1-szej minimalizuje mi się menu główne (tzn. na razie się ukrywa, bo nie wiem jak w 6i je zminimalizować), w 2-giej uruchamia się dany podprogram. W opcjach podprogramu VI Properties>>Customize Window Apperance zaznaczyłem m.in. 3 opcje: Window is Modal (blokuje inne okna LabVIEW), Show Front Panel When Called (pokazuje panel wywoływanego podprogramu) oraz Close Afterwards if oryginal Closed (powraca do menu głównego po zakończeniu działania podprogramu). W 3-ciej sekwencji anulowana zostaje minimalizacja panelu menu głównego. W trakcie działania podprogramu program z menu głównym (zawierającym te 3 sekwencje) zatrzymuje się na drugiej sekwencji, dopóki nie zakończy się działanie podprogramu.
Nie wiem czy to jest to, o co Ci chodziło, ale może się przyda.
Jeszcze jedno: w 1-szej sekwencji nie mam obiektu Close LV Object Reference - jest on dopiero w 3-ciej.
Pozdrawiam
: 20 wrz 2004 09:05
autor: Gość
Witam.
> Rafal
Dzięki za pomysł ale (jeśli dobrze cię zrozumiałem) ja właśnie nie chcę ukrywać Panelu frontowego ale zatrzymać i zamknąć menu główne po odpaleniu danej aplikacji z niego (vi menu głównego pomimo ukrycia panelu frontowego nadal działa i dlatego chcę je zamknąć).
Mam nadzieję, że poprawnie to wyjaśniłem.
PS. Ja również pracuję w 6i.
Pozdrawiam
: 20 wrz 2004 09:30
autor: Mikrobi
[quote="Kodek"]Witam. > Rafal Dzięki za pomysł ale (jeśli dobrze cię zrozumiałem) ja właśnie nie chcę ukrywać Panelu frontowego ale zatrzymać i zamknąć menu główne po odpaleniu danej aplikacji z niego (vi menu głównego pomimo ukrycia panelu frontowego nadal działa i dlatego chcę je zamknąć). [/quote] Pytanie następujące: czy VI'je na które składa się twój program, czyli menu i uruchamiane przez nie podprogramy pracują w trybie samodzielnym (*.exe) czy w środowisku? Jeśli to praca samodzielna, to rozwiązaniem jest bloczek 'Quit LabVIEW' i każda część aplikacji wywoływana z menu jako samodzielny program (exe) - czyli metody oferowane przez przez VIServer i łańcuch:
"Open VI Reference", "Property Node", "Close LV Object Reference".
Bardziej zaawansowane opcje, czyli obsługa (np. minimalizowanie) okien lub "Abort VI", pojawiły się dopiero w LabVIEW7.0 zatem trudno znaleźć rozwiązanie dla wersji 6i.
Być może jednak można zoptymalizować pracę VI'a z menu i zostawić go w tle z zamknietym panelem? W zasadzie VI , który obsługuje głównie (jak przypuszczam) wybór z menu może zostać wykonany w sposób, który nie powinien zbytnio absorbować czasu systemu operacyjnego. Jeśli pracuje w petli WHILE to byc może rozwiązaniem będzie umieszczenie bloczka 'Wait Until Next' z opóźnieniem nawet do 300ms. Użytkownik nic nie zauważy, a system będzie miał wiele czasu 'pomiędzy'.
pozdrawiam Mikrobi
: 24 wrz 2004 08:22
autor: Gość
Witam.
>Mikrobi
Pracują w środowisku. VI menu faktycznie obsługuje głównie wybór innych VI i nie jest rozbudowane. Wydawało mi się mało eleganckie pozostawienie niepotrzebnie pracującego VI'a menu a na dodatek mam słabego PC-ta (PI 200MHz). Ale najprawdopodobniej zrobię jak sugerujesz.
Dzięki!
Pozdrawiam
: 19 paź 2004 22:26
autor: rumcajs
Panowie, troszkę mieszacie pojęcia.
Zminimalizować (czyli zwinąć na pasek stanu) lub
Ukryć (co też nie przerywa jej wykonywania) okno aplikacji można: W wersji od 7.0 (być może już również 6.1) wzwyż - bezpośrednio za po mocą metod i właściwości dostępnych przez Open VI Reference. W wersjach od 5.0 do 6.0 tylko z wykorzystaniem Windows API - bibliotekę można znaleźć na stronach NI.
Zamknąć (co wiąże się z zatrzymaniem jej wykonywania) napewno we wszystkich wersjach powyżej 5.0 wykorzystując oczywiście Metody i Właściwości Open VI Reference.
Postaram się dołączyć obrazki (robię to 1 raz): Tak otwieramy Panel Frontowy: [img]
http://www.labview.pl/images/forum/rumcajs01.png[/img] Jeżeli we właściwościach otwieranego vi mamy aktywne Run After Open to nie trzeba metody Run VI A tak zamykamy: [img]
http://www.labview.pl/images/forum/rumcajs02.png[/img] I tutaj też nie potrzeba teoretycznie metody Abort VI gdyż zgodnie z Knowledge Base zamkniecie Front Panela(u) powoduje zatrzymanie jego egzekucji. Jest jeszcze kilka niuansów, ale może na później. Pozdrawiam. Rumcajs.
: 20 paź 2004 09:14
autor: Mikrobi
[quote="rumcajs"] Chyba mi się nie udało z tymi obrazkami. Moze mi kotoś pomoże.[/quote]
Jeśli masz miejsce na swoim koncie na serwerze www to stwórz w katalogu public_html katalog na przykład 'labview_pl'. Do tego katalogu przenieś przez ftp diagramy a potem wejdz na swoją stronę, dopisując do adresu nazwę katalogu. Na moim serwerze wygląda to nastepująco: /public_html/labview_pl :
http://layer.uci.agh.edu.pl/~mikrobi/labview_pl/
Teraz wystarczy odnaleźć konkretny obrazek np.: paletaAplCtrl.png i kliknąć na nim, potem skopiować pełny adres z http:
http://layer.uci.agh.edu.pl/~mikrobi/la ... plCtrl.png
Pisząc post w miejscu w którym chcesz w stawić obrazek klikasz na przycisk "Img", Ctrl+V (wstawiasz adres) i znowu klikasz na przycisk który teraz ma postać 'Img*'. To zamyka znaczniki dla programu obsługującego forum.
Pełny zapis lokalizacji obrazka powinien wyglądać następująco:
Kod: Zaznacz cały
[img]http://layer.uci.agh.edu.pl/~mikrobi/labview_pl/paletaAplCtrl.png[/img]
Wstawianie obrazka
: 20 paź 2004 18:55
autor: bogdani
Witam
Dziękuję
mikrobi za wyjaśnienie, ja tylko dodam, iż jeśli nie posiadacie własnego konta www, które można linkować (czyli ściągać dane przez inne serwery i odwołania) to polecam metodę opisaną tutaj na forum:
http://www.labview.pl/modules.php?name= ... &p=423#423
Wystarczyło trochę poszukać.
W razie czego proszę pisać na PM lub wysłać mailem to pomogę.
bogdani
PS.
mikrobi pozwoliłem sobie nieco poprawić twój post, mam nadzieję, że się nie gniewasz.

Re: Wstawianie obrazka
: 20 paź 2004 19:05
autor: Mikrobi
[quote="bogdani"]
PS.
mikrobi pozwoliłem sobie nieco poprawić twój post, mam nadzieję, że się nie gniewasz.

[/quote]
:lol:
: 22 paź 2004 07:16
autor: PMaj
Witaj
rumcajs ... czekamy na te screeny - akurat zależy mi na ich obejrzeniu gdzyż nie wiem czy to jest coś innego niż to co obecnie zastosowałem więc jeśli możesz to spróbuj jeszcze raz - jest opis przy Twoim ostatnim poście dodany przez
bogdaniego jak sie nie mylę

Pozdrawiam