Ich habe einen merkwürdigen Laufzeitfehler entdeckt. Dieser Fehler erscheint, sobald die Msgbox-Funktion in der KeyEvent-Prozedur auskommentiert wird
(Hier: Msgbox(oKeyEvent.KeyChar)). Ich stehe vor einem Rätsel. Hier ist der Code, der nur einen Beispiel-Charakter hat:
Code: Alles auswählen
Sub Main
oDialogModel=createUnoService("com.sun.star.awt.UnoControlDialogModel")
With oDialogModel
.Title="KeyListener-Beispiel"
.Width=200
.Height=100
End With
oDialog=createUnoService("com.sun.star.awt.UnoControlDialog")
oDialog.setModel(oDialogModel)
oControlModel=oDialogModel.createInstance("com.sun.star.awt.UnoControlEditModel")
With oControlModel
.setPropertyValue("Name","txtFile")
.setPropertyValue("PositionX",20)
.setPropertyValue("PositionY",20)
.setPropertyValue("Width",100)
.setPropertyValue("Height",15)
.setPropertyValue("TabIndex",0)
End With
oDialogModel.insertByName("txtFile",oControlModel)
oKeyListener=CreateUnoListener("KeyEvent_","com.sun.star.awt.XKeyListener")
oControl=oDialog.getControl("txtFile")
oControl.addKeyListener(oKeyListener)
oDialog.setVisible(True)
oDialog.Execute()
End Sub
Sub KeyEvent_KeyPressed(oKeyEvent)
Msgbox(oKeyEvent.KeyChar)
Select Case oKeyEvent.KeyCode
Case com.sun.star.awt.Key.ESCAPE
Msgbox("ESC")
Case com.sun.star.awt.Key.A
Msgbox("A")
Case com.sun.star.awt.Key.END
Msgbox("END")
Case com.sun.star.awt.Key.F2
Msgbox("F2")
End Select
End Sub
Gruss