Hallo zusammen
ich hätte da mal eine Frage...
wenn ich eine event structure benutze mit der ich viele Buttons abfrage.. wo kann ich die Buttons im BD dann hinsetzten damit die nicht kreuz und quer im DB verstreut sind ...
ist ein wenig schwer zu beschreiben...
bei diesem Programm habe ich die buttons in eine extra Schleife ausgelagert weil ich keinen platz dafür habe ... nur kommt mir das "ein wenig falsch" vor ....
[
attachment=17499]
die Buttons in einer extra Schleife ... (die Eingabe und Idikator Elemente sind noch nicht im Programm untergebracht werden es aber noch...)
[
attachment=17498]
sollte ich die Buttons alle in den Timeout der event structur packen?
T
Wenn ich einen Button per Event-Structure abfrage, kommt der bei mir normalerweise in den Case, in dem das entsprechende Value-Change-Event auch abgefragt wird.
Hintergrund: Bei Latch-Buttons muss man das sogar so machen, sonst wird der Button nicht automatisch zurückgesetzt.
Alle Terminals nur daneben verteilen, finde ich persönlich schlechten Stil. Irgendwo muss man doch sicher das Terminal mal schreiben oder lesen, und dafür sollte man es auch dann verwenden anstatt dies immer nur über lokale Variablen zu machen.
Gruß, Jens
' schrieb:Wenn ich einen Button per Event-Structure abfrage, kommt der bei mir normalerweise in den Case, in dem das entsprechende Value-Change-Event auch abgefragt wird.
Hintergrund: Bei Latch-Buttons muss man das sogar so machen, sonst wird der Button nicht automatisch zurückgesetzt.
Das ist auch genau das was NI empfielt (Erklärung hat Jens schon gegeben).
' schrieb:wenn ich eine event structure benutze mit der ich viele Buttons abfrage.. wo kann ich die Buttons im BD dann hinsetzten
Wird ein Eingabeelement mit ValueChanged (etc.) im EventCase abgefragt - dann tu ich dieses Control genau in diesen Eventcase. Und zwar gleich unter den (linken) Anschluss "Neuer Wert". (Nachtrag: Naja, jetzt stehts dreimal da. Kann also nicht ganz falsch sein.)
Oft ist auch auch sinnvoll, mehrere Eingabeelemente zu einem Cluster zusammenzufassen.
FP-Anzeigeelemente, die im BD keinen Anschluss haben, gibt es normalerweise gar nicht. Irgendwann muss mal ein Wert hineingeschrieben werden - und der wird dann in das Control geschrieben (und nach Möglichkeit nicht in die lokale Variable).
FP-Eingabeelemente, die im BD keinen Anschluss haben, sind normalerweise sinnlos. Entweder ist der Anschluss indirekt in einem Eventcase, dann kommt das Control in den Eventcase. Oder das Element liefert die Eingabe als ordinärer Datenfluss. Dann steht das Control ja irgendwo im BD.
Außernahmen gibt es auch hier: Manchmal verwendet ich ein Tabsheets als Panel. Sowas ist dann weder ein Eingabe- noch ein Ausgabeelement. (Es dient lediglich zum unsichtbar machen). Sowas leg ich im BD dann oben links über die oberste Struktur in einen Sequenzrahmen.
Bei mir tritt das Problem immer nur andersherum auf: Was ich im FP brauche, hat im BD immer eine sinnvolle Position. Manchmal braucht man aber im BD eine Variable, deren FP-Äquivalent nicht notwendig wäre. Solche Elemente setz ich dann links unterhalb des Bildschirmbereiches (oder auf ein Panel auf einer Karte Verschiedenes).
' schrieb:Bei mir tritt das Problem immer nur andersherum auf: Was ich im FP brauche, hat im BD immer eine sinnvolle Position. Manchmal braucht man aber im BD eine Variable, deren FP-Äquivalent nicht notwendig wäre. Solche Elemente setz ich dann links unterhalb des Bildschirmbereiches (oder auf ein Panel auf einer Karte Verschiedenes).
Zu diesem Zweck klicke ich im Blockdiagramm rechts auf das Element und sage: Anzeige- /Bedienelement ausblenden. Damit bleibt es im Blockdiagramm erhalten, im Frontpanel verschwidnet es!
Nervig finde ich allerdings die Blockdiagrammelemente für die angesprochenen TabControls. Die liegen wirklich immer dumm da rum!
LG
Torsten.
P.S.: Ansonsten bin ich die vierte Stimme für die Elemente in den CaseStrukturen!
' schrieb:Zu diesem Zweck klicke ich im Blockdiagramm rechts auf das Element und sage: Anzeige- /Bedienelement ausblenden. Damit bleibt es im Blockdiagramm erhalten, im Frontpanel verschwidnet es!
Nervig finde ich allerdings die Blockdiagrammelemente für die angesprochenen TabControls. Die liegen wirklich immer dumm da rum!
LG
Torsten.
P.S.: Ansonsten bin ich die vierte Stimme für die Elemente in den CaseStrukturen!
Ich finde es keine gute Lösung, Anzeige-oder Bedienelemente auszublenden. Besser in einem nicht sichtbaren Bereich des FP legen (also ausserhalb des Fensters).
Gruß
montanaro
So mach' ich es auch.
Gruß Markus
PS: Und in der Eventstruktur kommen die Elemente auch in den jeweiligen Case.
' schrieb:Ich finde es keine gute Lösung, Anzeige-oder Bedienelemente auszublenden. Besser in einem nicht sichtbaren Bereich des FP legen (also ausserhalb des Fensters).
Gruß
montanaro
Ich denke das ist Geschmackssache. Ich bin kein Fan vom "unter den Teppich kehren". Es gibt immer mittel und Wege Objekte die außerhalb des sichtbaren Bereichs liegen zu bedienen.
Außerdem gibts Probleme wenn man die Größe des FP auf alles sichtbare Beschränken möchte, und dabei kein Panel unterlegen will.
Sicherlich gibts auch Probleme beim Finden von Objekten. Aber das regel ich über Vernünftige Dokumentation.
(weichen wir gerade vom Thema ab?!)
LG
Torsten
Die wirklich bewegende Frage ist doch nicht, wo man die vielen Elemente auf dem BD hintut, sondern: Wie um gotteswillen bringt man das alles auf dem FP unter? Mit einer Registerkarte mit vielen Tabs wäre es vorstellbar. Nur so aus Neugier: Kann man das mal sehen?