LabVIEWForum.de
Buttons deaktivieren, aber ALLE auf einen Streich - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Buttons deaktivieren, aber ALLE auf einen Streich (/Thread-Buttons-deaktivieren-aber-ALLE-auf-einen-Streich)

Seiten: 1 2


Buttons deaktivieren, aber ALLE auf einen Streich - DG1BGS - 18.06.2009 13:29

Hallo zusammen,
ich habe auf meinem Frontpanel sehr viele Buttons, die von einer Eventstruktur abgefragt werden. Bestimmte Buttons starten ein Sub-VI und es wird gewartet, bis dieses beendet wird. vorher werden noch ALLE Buttons deaktiviert (sehr umständlich über Eigenschaftsknoten, also ein Eigenschaftsknoten pro Button). Im IDLE-Case werden alle Buttons wieder aktiviert (also NICHT durch das Betätigen eines weiteren Buttons).
Funktioniert ja alles soweit ganz gut, nur wie kann ich auf einen STrech ALLE Buttons deaktivieren, auch Buttons die vielleicht erst später hinzugefügt werden?

Hat jemand eine Idee?


Buttons deaktivieren, aber ALLE auf einen Streich - TSC - 18.06.2009 13:39

du könntest alle entsprechenden buttons in ein cluster bündeln oder auf einem registerkartenelement plazieren. dann kannst dus mit nur einem eigenschaftsknoten realisieren.

EDIT: Damit mans nicht falsch interpretiert: dman erstellt dann einen eigenschaftsknoten auf das Cluster, oder das Registerkartenelement und deaktiviert dieses komplett.

LG
Torsten


Buttons deaktivieren, aber ALLE auf einen Streich - Lucki - 18.06.2009 14:15

' schrieb:du könntest alle entsprechenden buttons in ein cluster bündeln oder auf einem registerkartenelement plazieren. dann kannst dus mit nur einem eigenschaftsknoten realisieren.
Und: Wenn Dich die andere Ansicht stört, dann kannst Du das Cluster/die Registerkarte transparent machen, so daß überhaupt nichts mehr davon zu sehen ist. Völlig weg bekommt man es leicht in der klassischen Ansicht. In der Modernen Anschicht geht es wohl auch, aber ich weiß da nicht wie, bei mir bleibt dann immer der Reliefrahmen übrig.


Buttons deaktivieren, aber ALLE auf einen Streich - TSC - 18.06.2009 14:18

' schrieb:Und: Wenn Dich die andere Ansicht stört, dann kannst Du das Cluster/die Registerkarte transparent machen, so daß überhaupt nichts mehr davon zu sehen ist. Völlig weg bekommt man es leicht in der klassischen Ansicht. In der Modernen Anschicht geht es wohl auch, aber ich weiß da nicht wie, bei mir bleibt dann immer der Reliefrahmen übrig.

Probleme gibts nur, wenn du die Buttons nicht nebeneinander oder übereinander angeordnet haben magst, sonder dazwioschen noch andere elemente die nciht betroffen sein sollten. Da müsste man dann mal ein bissl weiter rumspielen!


Buttons deaktivieren, aber ALLE auf einen Streich - DG1BGS - 18.06.2009 15:27

Danke für die schnellen Antworten!

Zitat:Probleme gibts nur, wenn du die Buttons nicht nebeneinander oder übereinander angeordnet haben magst, sonder dazwioschen noch andere elemente die nciht betroffen sein sollten. Da müsste man dann mal ein bissl weiter rumspielen!

Ja, genau das ist bei mir der Fall. Ich werde es trotzdem mal testen. Auf die Idee mit dem Cluster bin ich gar nicht gekommen, dass scheint mir aber ein guter Trick zu sein. Ich hatte natürlich gehofft, das LV da eine Methode hat, meinetwegen "Alle BEdienelemnte auf FP deaktivieren" z.B. über einen Eigenschaftknoten des FP.


Buttons deaktivieren, aber ALLE auf einen Streich - TSC - 18.06.2009 15:47

Wenn du wirklich alle Elemente deaktivieren wilslt kannst du das auch mit einer schleife Lösen:

Lv86_img[attachment=19181]

ich hab mal einfach willkürlich einen haufen an elementen auf dem Frontpanel plaziert. Was passiert da?

zuerst wird der aktuelle VI-Pfad ausgelesen. Aus diesem Pfad wird eine Referenz auf das VI erstellt. Mittels diser Referenz wird eine Referenz auf das Frontpanel erstellt. Aus dieser Referenz wiederum kann man ein Array mit allen Elementen erstellen. An der Stelle könnte man auch Objekte verwenden oder Gestaltungselemente. Der zusammenhang zwischen den drieen ergibt sich durch:

Elemente + Gestaltungselemente = Alle Objekte

du kannst dir ja mal die hilfen dazu durchlesen. Das gewonnene Array wird in einer schleife durchlaufen und der aktiv status eines jeden elements wird auf 0, 1 oder 2 gesetzt.

0=aktiv
1=inaktiv
2=inaktiv und ausgegraut

natürlich kannst du in der schleife auch bestimmte elemente rausfiltern die dann nciht verändert werden sollen.

LG
Torsten


Buttons deaktivieren, aber ALLE auf einen Streich - Lucki - 18.06.2009 17:20

' schrieb:Ja, genau das ist bei mir der Fall. Ich werde es trotzdem mal testen.

Das kleine Problem ist: Man hat auf den Elementen, die nicht zum Cluster gehören, einen Schatten, der aber bei der Ausführung des VI verschwindet. Den habe ich auch durch Herumspielen wegbekommen, weiß nur nicht mehr wie.
Lv86_img[attachment=19186]


Buttons deaktivieren, aber ALLE auf einen Streich - TSC - 18.06.2009 17:30

Bei Luckys Lösung ist es wichtig, dass das CLuster im Hintergrund angeordnet ist. andernfalls überdeckt es die "ungeclusterten" elemente und diese sind nciht mehr bedienbar. ich habe festgestellt, dass der schatten weg geht, wenn man die elemente alle grupiert.

LG
Torsten


Buttons deaktivieren, aber ALLE auf einen Streich - jg - 18.06.2009 20:43

Wie wäre es mit der "guten alten" FGV-Lösung:

[attachment=19190]
[attachment=19191]
Lv86_img

Gruß, Jens


Buttons deaktivieren, aber ALLE auf einen Streich - DG1BGS - 19.06.2009 09:45

Eure Lösungsansätze sind echt genial. Großes Kompliment!
Ich habe nun die Variante von TSchAC eingebaut. Die von der Basis her identische Variante von Jens G (der mir hier schon sehr oft weitergeholfen hat, gerade bei kniffligen Problemen) ist dann sicher angebracht, wenn man wirklich nur einige der Bedienelemnte deaktivieren möchte.

Die Lösung von Lucki ist auch nicht schlecht. Respekt. Sehr elemtar.. auf was man alles nicht so kommt, wenn man versteift vor einem Problem steht. Dabei war es doch so naheliegend.

Danke nochmals... Wink