RETURN im textfield mit Zeichen (#) automatisch ersetzen
Verfasst: Sa, 20.02.2010 19:36
Hallo,
ich habe mir eine Dialogbox erstellt in der sich u.a. ein textfield befindet. Der Inhalt des texfields wird von einer Datenbank gelesen und eingetragen.
Nun möchte ich Zeilen mittels der RETURN-Taste einfügen, die automatisch nach dem Loslassen der Returntaste mit einem Zeichen (in dem Fall #) beginnen.
Das loslassen der Taste habe ich mittels eines Listeners ganz gut hinbekommen. Welche Taste gedrück wurde kann ich auch ermitteln.
Nun soll aber die Zeile automatisch mit # beginnen und nicht mit CRLF bzw. LF. Irgendwie habe ich keine Lösung gefunden innerhalb des textfields die Cursor bzw. die Zeilenposition zu ermitteln, womit man einen Pointer im textfield auf die entsprechnede Zeile/Position verweisen könnte.
Ich greife übrigens auf die controls in der View zu.
Einen Auzug des Codes habe ich hier:
Das ganze funktioniert zwar mit dem Ersetzen, jedoch wird der Cursor nach jeder Eingabe von RETURN wieder am vor Beginn des Textes im textfield der geöffneten Dialogbox positioniert.
Wie kann ich den Cursor im textfield dazu zwingen zur letzten Position (direkt nach der Eingabe) zurückzukehren?
Danke & Greetz,
Billy
ich habe mir eine Dialogbox erstellt in der sich u.a. ein textfield befindet. Der Inhalt des texfields wird von einer Datenbank gelesen und eingetragen.
Nun möchte ich Zeilen mittels der RETURN-Taste einfügen, die automatisch nach dem Loslassen der Returntaste mit einem Zeichen (in dem Fall #) beginnen.
Das loslassen der Taste habe ich mittels eines Listeners ganz gut hinbekommen. Welche Taste gedrück wurde kann ich auch ermitteln.
Nun soll aber die Zeile automatisch mit # beginnen und nicht mit CRLF bzw. LF. Irgendwie habe ich keine Lösung gefunden innerhalb des textfields die Cursor bzw. die Zeilenposition zu ermitteln, womit man einen Pointer im textfield auf die entsprechnede Zeile/Position verweisen könnte.
Ich greife übrigens auf die controls in der View zu.
Einen Auzug des Codes habe ich hier:
Code: Alles auswählen
REM Die folgende Sub wird vom Listener com.sun.star.lang.XKeyListener aufgerufen
Sub KEY_keyReleased( oKeyListener ) As Boolean
Dim sControlName as String
Dim oControlView as Object
Dim aText(), sText As String
Dim iArrCnt2 As Integer
If oKeyListener.KeyCode = com.sun.star.awt.Key.RETURN Then
sControlName = oKeyListener.Source.Model.Name
oControlView = oDialog.getControl( sControlName )
aText = Split( oControlView.Text, sLF)
For iArrCnt2 = LBound( aText ) to UBound( aText )
If aText( iArrCnt2 ) = "" Then
aText( iArrCnt2 ) ="#"
End If
Next iArrCnt2
oControlView.Text = Join( aText , sLF )
End If
End Sub
Wie kann ich den Cursor im textfield dazu zwingen zur letzten Position (direkt nach der Eingabe) zurückzukehren?
Danke & Greetz,
Billy