Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: mibo11 am 07.07.05 - 15:53:48

Titel: CurrentField ohne Focusverlust
Beitrag von: mibo11 am 07.07.05 - 15:53:48
Vielleicht hat jemand eine Idee und bringt mich auf andere Gedanken.

Innerhalb einer Dialogbox brauche ich nun einen Button, der das aktuelle Feld ausliest. UIDoc.Currentfield fällt mir da so als Lösung ein, jedoch wird der Focus durch den Klick auf den Button verschwinden und so keinen Feldnamen zurückliefern. Eine Aktionsschaltfläche würde den Focus nicht verändern, fällt jedoch innerhalb einer Dialogbox aus.

Gibt es noch andere Möglichkeiten?

Gruß Sascha
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: ..Andreas.. am 07.07.05 - 17:54:35
Ein kleines Script in den Entering-Event jedes Feldes der Dialogmaske, das den aktuellen Feldnamen "irgendwo" (ini, spezielles Feld, globale Variable, ...) hinschreibt? Das kannst Du dann im Buttonsourcecode auslesen.

Andreas
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: Glombi am 08.07.05 - 09:13:14
Wenn der Button auch in Script geschrieben ist, würde ich eine globale Variable (d.h. unter Declaration in Globals der Maske definiert) verwenden.

Wie Sascha geschrieben hat, den Wert im Entering setzen und auch im Exiting wieder zurücksetzen.

Andreas
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: Semeaphoros am 08.07.05 - 09:22:43
Andreas, bist Du sicher, dass das Exiting nicht feuert, wenn man einen Buhtong betätigt? Nach Windows-Modell müsste das bei Focusverlust feuern (das ist aber nicht überall tatsächlich der Fall). Insofern wäre ich mit dem Exiting-Event hier vorsichtig und würde statt das Löschen des Entering-Flags ein zweites Exiting-Flag verwenden
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: Glombi am 08.07.05 - 10:29:49
Meiner Erfahrung nach wird das Exiting Event nicht ausgelöst, wenn man einen Button anklickt. Aber das wäre noch mal zu testen.

Ich hatte es eigentlich nur erwähnt, damit das ganze etwas sauberer ist. Sonst hüpft der Cursor von einem Feld ins andere und das andere hat kein Entering. Dann "denkt" der Button, der Cursor steht noch im ersten Feld.

Andreas
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: Semeaphoros am 08.07.05 - 10:36:06
Die Ueberlegung ist sicher sehr wichtig, das Problemfeld lässt sich aber wohl nicht ganz absichern. Mit einem separaten Exiting-Flag ist das dann bei Bedarf ebenfalls überprüfbar, wenn auch ähnlich unzuverlässig, wie wenn nur ein Entering-Flag gesetzt ist.
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: mibo11 am 08.07.05 - 10:55:00
Hallo zusammen,

vielen Dank für die Anregungen. Ich habe es jetzt tatsächlich mit dem Entering in Verbindung mit einer globalen Variable gelöst.

Globals:
Dim feldname as string
dim uidoc as notesuidocument

Postopen:
set uidoc = Source

Entering:
feldname = uidoc.currentfield


Da die Maske 150 Felder hat und ich tendenziell eher faul bin und nicht in 150 Feldern das Entering verändern wollte, habe ich ggf. nach einem anderen Trick gesucht. Schade, dass der Focus durch den Klick auf den Button verloren geht, was zwar logisch ist, aber auch irgendwie unsinnig, da der geänderte Focus (des Buttons) nicht ausgewertet werden kann.

Gruß und Dank Sascha
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: Glombi am 08.07.05 - 10:56:37
Anstelle des Buttons könntest Du eine Aktion verwenden, da geht der Focus nicht verloren soweit ich weiss.

Andreas
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: Semeaphoros am 08.07.05 - 10:57:42
Sascha, das Verlieren des Focus hat nix mit Notes zu tun, so ist die Windows-Definition ....
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: mibo11 am 08.07.05 - 11:15:27
Anstelle des Buttons könntest Du eine Aktion verwenden, da geht der Focus nicht verloren soweit ich weiss.

Andreas

Leider nein, da das Ganze innerhalb einer Dialogbox statfindet!

Sascha, das Verlieren des Focus hat nix mit Notes zu tun, so ist die Windows-Definition ....

Hab' mich etwas unglücklich ausgedrückt. Es wäre schon, wenn die Funktion CurrentField bei Klick auf den Button ähnlich wie die Aktionsschaltfläche  (z.B. wie es ja jetzt progammiert ist), den Wert in den globalen Speicher packt, dann könnte man sich das selber programmieren sparen, zumal das CurrentField in Verbindung mit einem Button keine Auswirkung hat, also keine Fehler entstehen können.

Gruß Sascha
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: Semeaphoros am 08.07.05 - 11:41:33
Eine Diabox mit 150 Feldern? Viel vergnügen .... das tönt nach möglichem Chaos ....
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: mibo11 am 08.07.05 - 12:06:30
Gott sei Dank kann man die Objekte über den Objektbrowser ansteuern und muss nicht jedes einzelne Feld ansteuern.

Weiß du eigentlich ob die Teamstudio Tools Massenänderungen in dieser Form durchführen können?

Also Script in 150 Felder per Knopfdruck pushen und ggf. noch eine Laufvariable dabei erweitern, wie z.B.

uidoc.fieldsettext "Feld_" & Cstr(zaehler),wert

Gruß Sascha
Titel: Re: CurrentField ohne Focusverlust
Beitrag von: koehlerbv am 08.07.05 - 12:32:38
M.E. lässt sich bei Aufruf per Script der Teamstudio Configurator nicht mehr beim Search&Replace abbrechen, um on the fly szReplaceText zu verändern.
Ich würde mich da natürlich gerne eines besseren belehren lassen. Glombi ?

Bernhard