Basic: Zugriff auf View-Objecte

24/03/2009 - 11:38 von Ingmar Hellhoff | Report spam
Ich brauche mal wieder Eure Hilfe.

Ich benötige eine Funktion, die mir den Namen des Kontrollelementes in
einem Formular (Base) zurückliefert, welches aktuell den Fokus besitzt.
Mein Ansatz sieht wie folgt aus:

function myWhoHasFocus as String
myDocCtl = thisComponent.getCurrentController()
myForm = thisComponent.drawpage.forms(0)
for i=0 to myForm.getCount-1
myField = myForm.getByIndex(i)
myView = myDocCtl.getControl(myField)
if myView.hasFocus then
myWhoHasFocus = myCtl.getName
exit function
end if
next i
end function

Leider quittiert myView = myDocCtl.getControl(myField)meine Bemühungen
mit einer der Fehlermeldung:

"Type: com.sun.star.lang.IllegalArgumentException
Message: cannot coerce argument type during corereflection call"

Was will mir das sagen? Was mache ich falsch? Was mich noch mehr
verwundert ist die Tatsache, daß

myField = myForm.getByName("irgendeinkontrollfeld")
my View = myDocCtl.getControl(myField)

anstandslos funktioniert.

Schon mal vielen Dank Ingmar
 

Lesen sie die antworten

#1 Volker Kohaupt
24/03/2009 - 22:47 | Warnen spam
Ingmar Hellhoff schrieb:

function myWhoHasFocus as String
myDocCtl = thisComponent.getCurrentController()
myForm = thisComponent.drawpage.forms(0)
for i=0 to myForm.getCount-1
myField = myForm.getByIndex(i)
myView = myDocCtl.getControl(myField)
if myView.hasFocus then
myWhoHasFocus = myCtl.getName
exit function
end if
next i
end function

Leider quittiert myView = myDocCtl.getControl(myField)meine Bemühungen
mit einer der Fehlermeldung:

"Type: com.sun.star.lang.IllegalArgumentException
Message: cannot coerce argument type during corereflection call"



Der code làuft hier unter OpenOffice 3.0.1 Fehlerfrei durch. Ich tippe
darauf das du zusàtzlich noch mit einem Unterformular arbeitest.
Erst wenn ich ein Unterfomular hinzufüge erscheint genau diese
Fehlermeldung und der code wird an der von dir beschriebene stelle
abgebrochen.

Volker

Ähnliche fragen