VB 5/6-Tipp 0198: Textcursor nach Koordinaten setzen
von ActiveVB
Beschreibung
Hiermit kann der Cursor einer TextBox nach Zeichen Koordinaten gesetzt werden
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei PROJECT1.VBP ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Timersteuerelement "Timer1" ' Steuerelement: Textfeld "Text1" Option Explicit Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal _ wParam As Long, ByVal lParam As Any) As Long Private Const EM_GETLINE As Long = &HC4& Private Const EM_GETLINECOUNT As Long = &HBA& Private Const MAX_CHAR_PER_LINE As Long = &H100& Private Sub SetCursor(x&, y&, z&, Text As Control) Dim Max As Long, v As Long, w As Long, aa As String Max = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0, 0&) If Max - 1 < y Then Exit Sub For w = 0 To y v = v + Len(aa) If Mid$(Text1.Text, v + 1, 1) = vbCr Then v = v + 2 aa = GetLine(Text, w) Next w If x > Len(aa) Then x = Len(aa) Text.SetFocus Text.SelStart = v + x Text.SelLength = z End Sub Private Sub Form_Load() Timer1.Enabled = True Timer1.Interval = 50 End Sub Private Sub Timer1_Timer() Dim x As Long, y As Long x = Rnd * 30 y = Rnd * 14 Call SetCursor(x, y, 1, Text1) End Sub Function GetLine(Text As TextBox, ByVal Line&) As String Dim Lo As Integer, Hi As Integer Dim Result As Long Dim Buffer As String Lo = MAX_CHAR_PER_LINE And &HFF Hi = Int(MAX_CHAR_PER_LINE / &H100) Buffer = Chr$(Lo) & Chr$(Hi) & Space$(MAX_CHAR_PER_LINE - 2) Result = SendMessage(Text.hwnd, EM_GETLINE, Line, Buffer) GetLine = Left$(Buffer, Result) End Function '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei PROJECT1.VBP --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.