LabVIEWForum.de - letztes Element wieder fokusieren nach Fenster lost focus

LabVIEWForum.de

Normale Version: letztes Element wieder fokusieren nach Fenster lost focus
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

ich bastell gerade eine kleines Programm für einen Kollegen, der zwei Listen mit fast den gleichen Daten füllt.
Er kopiert teils Daten aus PDFs und Emails zusammen und trägt diese in mein programm ein, welches dann zwei Strings ausspuckt, die er in die zwei Tabellen einfügt.

Nach dem kopieren der Daten verliert aber das actuelle Control sein Fokus und fürs weitertabben muss erst iweder richtig geklickt werden. Kann man das umgehen?

Etwas googln fand ich
-einen alten Vorschlag von Gerd über ein 'lost focus'-Event, was wohl nicht umgesetzt wurde.
-ein Xcontrol, das ich nicht verstanden habe (https://forums.ni.com/t5/LabVIEW/xcontro...ue#M726183)
-über Timeout den focus status abfragen.

Ein work around habe ich gebastelt mit 'mouse leave' und 'mouse click' Events, wenn die Maus das VI aber nicht verlässt, zB mit ALT+Tab wird mein letzter Foku nicht gespeichert und ich springe auf den vorletzten..
ALT+Tab will ich jetzt aber auch nicht blockieren, aber eine halb funktionierende Funktion ist halt auch nichts. Und wenn ich den Fokus bereits verloren habe kann ich den letzten Fokus nicht mehr ermitteln.
Würde mir da Xcontrol hier helfen? (Dann lese ich mich dazu ein) Ich vermute nur, das es damit zu spät ist.

Danke,
Timo

Edit: vi angehängt, Titel angepasst
Hallo Timo,

Zitat:Und wenn ich den Fokus bereits verloren habe kann ich den letzten Fokus nicht mehr ermitteln.
Wäre es eine Option, jeweils gleich den aktuellen Focus in einem Schieberegister zu speichern?
Dann musst du ihn erst gar nicht mehr suchen!

Zu deinem VI: ich würde Schieberegister statt der lokalen Variablen verwenden…
(28.11.2022 09:36 )GerdW schrieb: [ -> ]Wäre es eine Option, jeweils gleich den aktuellen Focus in einem Schieberegister zu speichern?
Dann musst du ihn erst gar nicht mehr suchen!
Da war für mich die Frage wann, bei jedem mal Tab drücken war ein gedanke, so in etwa:
[attachment=62443]

Wenn ich das 'mouse leave' nicht rein mache kann ich manuell nicht mehr in ein anderes Feld klicken Big Grin
FP.isFrontmost scheint nicht das zu machen was ich dachte (um 'mouse leave' zu ersetzen), zumindest im timeout ist es kein Ersatz für 'mouse leave'.

Zitat:Zu deinem VI: ich würde Schieberegister statt der lokalen Variablen verwenden…

Zum Anzeigen brauche ich ja dann doch wieder lokale Variablen, somit fand ich den Aufwand so deutlich geringer und ne race condition kann hier nicht passieren.
Ich gebe dir aber Recht, immer gleich anständig programmieren.. Dies ist ein Test ob ein solches Programm hilft, wenn ja wird das auf andere 18 verschiedene Geräte erweitert mit anderen Eingaben -.-' Da bin ich auch mal gespannt wie stark die Tabellen sich unterscheiden.

Grüße
Timo
Referenz-URLs