INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Sichtbarkeit eines Fensters bestimmen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.12.2016, 17:38
Beitrag #1

THL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 111
Registriert seit: May 2011

2012
2009
EN


Deutschland
Sichtbarkeit eines Fensters bestimmen
Hallo ihr Labview-Spezialisten,

ich würde gerne innerhalb eines VIs ermitteln ob das Frontpanel eines anderen VIs (zumindest teilweise) sichtbar ist oder durch andere Fenster vollständig verdeckt wird.
Hintergrund: Ich habe im Haputprogramm einen Knopf mit dem ich beim Einschalten eine Unteranwendung starte (mit entsprechendem angezeigten Frontpanel) und beim Ausschalten
dies Anwendung beende. Mir schwebt vor, mit dem gleichen Knopf das Frontpanel dieser Anwendung nach vorne zu holen, falls dieses nicht mehr sichtbar ist. Mit anderen Worten:
- Knopf ist auf "AUS" und wird gedrückt: Knopf geht auf "EIN", Anwendung wird gestartet, Anwendungs-Frontpanel wird angezeigt
- Knopf ist auf "EIN", wird gedrückt und Anwendungs-Frontpanel ist sichtbar: Knopf geht auf "AUS", Anwendung wird beendet, Anwendungs-Frontpanel wird geschlossen
- Knopf ist auf "EIN", wird gedrückt und Anwendungs-Frontpanel ist komplett verdeckt (oder minimiert): Knopf bleibt auf "EIN", Anwendungs-Frontpanel wird nach vorne geholt/angezeigt

Gibt es da was mit Labview-Bordmitteln? Bei meiner Suche bin ich derzeit nur auf die Windows-Funktion GetWindowRng (aus user32.dll) gestoßen,
bei der man den Rückgabewert wohl auf NULLREGION testen soll. Da ich mit DLL-Aufrufen bislang wenig zu tun hatte, sind für mich Begriffe wie window-Handle nur Bahn
Kann mir da evtl. jemand auf die Sprünge helfen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2016, 21:03
Beitrag #2

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
Such in den VI-Properties mal nach 'is front most' oä.
Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 09:02 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2016 09:02 von Freddy.)
Beitrag #3

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
Zunächst starte man das VI über eine Referenz. Mit der Referenz gibt es die Möglichkeit der Abfrage "ist im Vordergrund".

Gruß
Freddy


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 09:55 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2016 09:59 von THL.)
Beitrag #4

THL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 111
Registriert seit: May 2011

2012
2009
EN


Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
Danke für die Antwort, aber leider klappt es mit der frontmost-Abfrage nicht. Sobald ich im Hauptprogramm den Knopf drücke, ist automatisch *dieses* Fenster im Vordergrund und eben nicht das Fenster der Anwendung, die ich testen möchte. Ich habe jetzt mal auf die schnelle was zusammengestoppelt und wie man sieht, schafft man es nicht, über die frontmost-Abfrage das entsprechende Fenster zu schließen, da der Rückgabewert immer 'false' ist. Was ich bräuchte wäre statt "isFrontmost" ein "isVisible".

12.0 .vi  demo_bigWindow.vi (Größe: 20,15 KB / Downloads: 182)

12.0 .vi  demo_smallWindow.vi (Größe: 20,17 KB / Downloads: 203)

12.0 .vi  demo_main.vi (Größe: 20,67 KB / Downloads: 191)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 10:05
Beitrag #5

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
Zitat:Was ich bräuchte wäre statt "isFrontmost" ein "isVisible"
Da habe ich etwas Verständigungsprobleme. Wenn ich auf einem VI aktiv bin kann kann ich nicht ein anders auf IsVisible testen bzw. es ist immer false, weil ich eben nicht drauf bin.
Oder verstehe ich das falsch?

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 10:34
Beitrag #6

THL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 111
Registriert seit: May 2011

2012
2009
EN


Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
Siehe mein Beispiel: Man startet 'demo_main'. Drückt man die (ausgeschalteten) Knöpfe 'bigWindow' und 'smallWindow' starten entsprechende Unteranwendungen.
Wird das Fenster 'smallWindow' vom Fenster 'bigWindow' verdeckt, so soll ein Druck auf den (jetzt eingeschalteten) Knopf 'smallWindow' dieses Fenster nach vorne bringen/sichtbar machen.
Das tut es in meinem Beispiel ja auch.
Ist stattdessen das Fenster 'smallWindow' jedoch sichtbar/im Vordergrund, so soll nun ein Druck auf den Knopf 'smallWindow' die Anwendung 'smallWindow' beenden und dessen Fenster schließen.
Und daran scheitert es, da ich nicht bestimmen kann, ob das Fenster 'smallWindow' (für den Benutzer) sichtbar ist oder nicht.
Die Frontmost-Abfrage von 'smallWindow' hilft da nicht weiter, da in dem Augenblick in dem ich den Knopf 'smallWindow' im Hauptprogramm drücke, automatisch das Fenster des Hauptprogramms in den Verdergrund gelangt und das von 'smallWindow' nach hinten rutscht.

Deshalb meinte ich nur, ich dass einen Eigenschaftsknoten von der Art "is visible?" bräuchte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 10:44
Beitrag #7

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
Ich glaube, dass Du den Knöpfen im demo_main.vi zu viele Funktionen zuweist.
Trenne doch einfach die Funktionen in 'VI öffnen', 'VI schließen' und 'VI in den Vordergrund'.

Dann wird es einfach.
Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 10:50
Beitrag #8

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
ich kann zur Zeit nicht Deine Beispiele austesten. Aber versuch doch mal den Methodenknoten.


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 11:40
Beitrag #9

THL Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 111
Registriert seit: May 2011

2012
2009
EN


Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
(06.12.2016 10:44 )BNT schrieb:  Ich glaube, dass Du den Knöpfen im demo_main.vi zu viele Funktionen zuweist.
Trenne doch einfach die Funktionen in 'VI öffnen', 'VI schließen' und 'VI in den Vordergrund'.

Dann wird es einfach.
Gruß Holger
Hast ja recht. Ein separater Knopf "VI in den Vordergrund bringen" (der dann auch noch ausgegraut sein kann, wenn das entsprechende VI gar nicht läuft) wäre die einfachste Lösung.
Meine Idee war einfach mal ein Versuch ein schon bestehendes Programm um ein kleines Gimmick zu ergänzen und es dem Benutzer zu erleichtern in einem mit Fenstern zugekleisterten Bildschirm das gewünschte Panel schnell anzeigen zu lassen - und das ohne ein sorgsam designtes Hauptmenü umzumodeln Big Grin

Ich habe inzwischen auch schon eine "von Hinten durch die Brust ins Auge"-Lösung gefunden. Bleibt abzuwarten ob ich das dann auch so implementiere Denknach

12.0 .vi  demo_bigWindow_fglobal.vi (Größe: 10,06 KB / Downloads: 156)

12.0 .vi  demo_smallWindow_fglobal.vi (Größe: 10,07 KB / Downloads: 182)

12.0 .vi  demo_bigWindow.vi (Größe: 22,75 KB / Downloads: 159)

12.0 .vi  demo_smallWindow.vi (Größe: 22,77 KB / Downloads: 175)

12.0 .vi  demo_main.vi (Größe: 23 KB / Downloads: 161)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2016, 14:16
Beitrag #10

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Sichtbarkeit eines Fensters bestimmen
Alternativ könntest Du die offenen Fenster zur Answahl im Menü verfügbar machen.

   

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz arphex 5 5.278 16.01.2013 08:57
Letzter Beitrag: GerdW
  Anzahl der Zeilen eines Strings bestimmen Pral 6 9.041 26.11.2012 11:16
Letzter Beitrag: Pral
  PID Regler eines Systems bestimmen Jansen83 5 11.436 15.04.2010 12:40
Letzter Beitrag: Jansen83
  Öffnen eines Fensters LABVIEW_NEU 8 5.946 05.06.2009 13:09
Letzter Beitrag: LABVIEW_NEU
  Größe eines Cluster-Elements bestimmen (Sizeof) FEL 21 16.470 07.04.2009 11:32
Letzter Beitrag: rolfk
  Dauer eines Programms bestimmen Flobias 15 12.596 12.12.2008 22:16
Letzter Beitrag: Flobias

Gehe zu: