Dialog: Aktuellen Feldnamen / aktuelle Position auslesen / bestimmen

Hallo zusammen,
verzweifle langsam, habe so ziemlich alles gegoogelt…

Habe einen Dialog “dlg” mit 9 Feldern.
Mit “TAB” kann ich zwischen den Feldern “DialogFeld1” bis “DialogFeld9” hin und her wandern.

Ich kann mit

dlg.getControl(DialogFeld3).setFocus

Das Feld direkt ansteuern und den Cursor dort positionieren.

Wie funktioniert aber der umgekehrte Fall?

Wie kann ich herausbekommen, in welchem Dialogeld ich mich gerade befinde?

pos, haspos, name, id, label, getname… alles funktioniert nicht.
Xray liefert mir für dlg.model.controlmodels zwar die Liste der Dialogfelder, das hilft aber alles nicht…

Wer kann mir helfen?
VG
Frank

Moin,
du kannst z.B. jedem Kontrollfeld zum Ereignis Fokus erhalten ein Makro zuordnen

sub read_My_Name (oEvent)
    sName = oEvent.Source.model.Name
end sub

sName beinhaltet dann den Namen des Kontrollfeldes.

F3KTotal
Du bist mein Held - es funktioniert!
Danke!!!

Aber warum denn jetzt .Source. ?
Hätte da immer .dlg. - also mein Dialog-Objekt genommen…

Info:
Ich arbeite eigentlich daran, innerhalb eines Dialogs die “Return-Taste” nutzen zu können.
Arbeite also mit einem Keyeventlistener.

z.B.
nField = “DialogFeld” & cIndex
iField = dlg.getControl(nField)
iField.setFocus

Also immer mit meinem “dlg.”

Und vielleicht gleich noch eine Frage:
Warum manchmal
oEvent…
und manchmal
oEvt…

Danke!!!

oEvent → Egeal, wie Du das nennst. Das auslösende Ereignis wird über die Prozedur eingelesen.
Source → da kommt das Ereignis her (also bereits hier: die Zuordnung zu dem Feld)
Model → Jetzt bist Du dort, wo Du die meisten Eigenschaften des Kontrollfeldes auslesen kannst.

Für Dein Vorhaben brauchst Du wohl oEvent.KeyCode, also einen Hinweis, welches Zeichen denn in einem Kontrollfeld einegegeben wurde. Der Return wird dabei mit der Zahl 1280 ausgegeben. Siehe https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1awt_1_1Key.html und eventuell auch das Handbuch Base - einfach einmal nach KeyCode suchen.