Strona 1 z 1

Zamkniecie panelu nie zamyka programu

: 16 cze 2011 15:26
autor: rivui
Witam!

Mam oto nastepujacy problem. Stworzylem program gdzie uzywajac run-time menu uzytkownik moze odpalic rozne Sub-VI oferujace rozne opcje.
Problem pojawia sie gdy uzytkownik zamknie (poprzez nacisniecie krzyzyka w gornym prawym rogu) panel. Wtedy program znika ale sam program zostaje i nie ma mozliwosci operowania "oryginalnym" oknem.

Moge problem obejsc stosujac Event Structure i Panel Close? even gdzie uzywam Discard i po prostu normalnie koncze petle jednakze wydaje sie to za duze obejscie. Czy jest jakies prostsze rozwiazanie?

Pozdrawiam,
Michal

Re: Zamkniecie panelu nie zamyka programu

: 16 cze 2011 16:26
autor: skoziate
Najprostszym rozwiązaniem jest wyszarzenie X w rogu (VI Properties > Window Appearance).

Możesz oczywiście obsługiwać zdarzenie wciśnięcia przycisku X. Discard typowo jest wtedy używany, jeśli chcesz na przykład wyświetlić okno dialogowe "Czy na pewno?" i wtedy w zależności od odpowiedzi robisz Discard albo nie. No i oczywiście jeśli odpowiedź jest "Tak" to należy zatrzymać wszystkie pętle, żeby VI zakończył działanie.

Jeśli dodatkowo to działa w EXE, to należy wywołać funkcję Quit LabVIEW.

Jeśli nie wyszarzysz X i nie obsłużysz zdarzenia jego wciśnięcia, to front panel zniknie, ale aplikacja będzie działała dalej.

Re: Zamkniecie panelu nie zamyka programu

: 16 cze 2011 20:50
autor: rivui
Czyli w skrócie muszę obsługiwać event. Nie ma innego automatycznego sposobu gdzie naciśnięcie 'X' spowoduje 'twarde' zamknięcie aplikacji kończąc wszystkie pętle etc.

Dziękuje za szybką odpowiedź!

Re: Zamkniecie panelu nie zamyka programu

: 16 cze 2011 20:56
autor: skoziate
Innego sposobu nie ma. Ty decydujesz o zachowaniu okna przez obsługę zdarzeń. Ale w sumie to tylko jeden dodatkowy event do obsługi, więc chyba nie katastrofa.