LabVIEWForum.de - Cursor sprung nach Programmende

LabVIEWForum.de

Normale Version: Cursor sprung nach Programmende
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich möchte nach Ablauf eines Programms das der Cursor der Maus in ein bestimmtes Eingabefeld springt. Als Eingabefeld dient ein einfaches Stringfenster.

Für einen Tipp wäre ich dankbar.

Gruß Heiko
Hallo Heiko,

die zugehörige Property heißt "KeyFocus"...
(Wobei "Cursor-Sprung" bei grafischen Oberflächen schon was antiquiertes hatSmile)
Ja super genau das habe ich gesucht. Da soll mal einer drauf kommen Cool

Ob antiquiertes oder nicht, das ganze dient als Funktionstest von Baugruppen und nach jedem Durchlauf wird ein neuer Barcode eingescannt der dann in dem Feld stehen soll. Da ist es einfach praktisch wenn man nicht mehr da rein klicken muss.


Vielleicht könnt ihr mir ja noch bei zwei weiteren kleinen Problemen helfen.

1. Ich habe ein Meldungsfenster (String Indicator) wo im laufe des Tests immer wieder irgend welche Meldungen rein geschrieben werden, nach Ablauf sollen die aber wieder gelöscht werden. Wie bekomme ich das hin?

2. Ich habe einen Abbruch Button der bei einem Fehler automatisch betätigt wird damit das Programm anhält oder abbricht. Dieser ist aber nach betätigen immer "eingerastet", da er wohl unter den Properties>Operation als "Switch when released" eingestellt ist. Wenn ich diesen umstelle auf z.B. "Switch until released" dann funktionieren die Localen Variablen die auf den Abbruch Button verweisen nicht mehr!?

Gruß Heiko
Hallo Heiko,

antiquiert bezog sich auf den Terminus "Cursor-Sprung"... Der KeyFocus ist natürlich wichtig und berechtigt!

1) einfach einen leeren String in eine lokale Variable schreiben? Hängt natürlich auch von deinem restlichen VI ab, wie das am besten gehandhabt werden kann (FGV löschen, entsprechendes Kommando in Queue, globale Variable?, etc.)

2) Meinst du statt "Switch until released" evtl. "Latch..."? Das würde ein Nicht-Funktionieren deiner lokalen Variablen erklären wesentlich besser erklären! Merke: die Latch-Operationen funktioniert nicht mit lokalen Variablen oder "Value"-PropertyNodes! Um das Latch von Hand zu realisieren einfach den Button per erneutem Schreiben in die lokale Variable zurücksetzen (oder bei VI-Anfang entsprechend initialisieren). Insgesamt ist aber die Benutzung von lokalen Variable mit Gefahren für den Programmablauf verbunden!
Hi.

zu 1. --> einfach eine leere String-Konstante in den Indikator schreiben?

zu 2. --> Es gibt eine Methode zu jedem Control, die "Standardwert wiederherstellen" (Reinitialize to Default Value) heißt. Die kann man per Methodenknoten aufrufen und in so einem Fall den Schalter wieder rücksetzen. Meist besser, aber wahrscheinlich nicht so schnell zu implementieren: State-Machine mit Event-Struktur, die auf Mausklick auf dem Button reagiert, nicht auf den entsprechenden Wert.

ch

edit: ich habs ja geahnt, dass ich zu spät bin...Wink
Danke für die schnellen Antworten!

zu 1. Das Problem habe ich immer noch nicht gelöst bekommen. In das Fenster werden immer wieder neue Meldungen rein geschrieben, die alten verschwinden aber nicht, die neuen stehen nur drunter. Ich möchte aber nach einem Durchlauf das das Fenster einmal "resetet" wird.

zu2. das Programm läuft schon über eine State-Machine mit Event-Struktur, hab das ganze jetzt etwas anders gestaltet und schon tuts das ganze auch ohne Lokalen Variablen. Danke!


Gruß Heiko
Hallo Heiko,

zu 1)
Irgendwo werden die neuen Meldungen ja an die alten angehangen. Dort musst du einen Case einfügen, der auch das löschen aller Meldungen ermöglicht!
zu1) die werden halt mittels Shift Register immer in den nächsten State übergeben, ich weiß aber nicht wie ich das dann löschen kann an einer bestimmten Stelle!
Lad' doch dein VI hoch Bratfisch, dann wissen deine Helfer direkt wie man dein Problem konkret und am besten löst.

Ein weiterer Vorteil: Meist wird man auch auf andere Defizite hingewiesen. Ist also doppelt sinnvoll!
Ah ich habs geblickt :rolleyes:einfach den Fluss unterbrechen, man das war ja einfach *g*
Referenz-URLs