Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.vbclassic > #7584
| From | Klaus Ketelaer <usenet@ketelaer.de> |
|---|---|
| Newsgroups | de.comp.lang.vbclassic |
| Subject | Tabs in der Rich Textbox |
| Date | 2023-09-14 15:09 +0200 |
| Message-ID | <udv0m6$4vgk$1@solani.org> (permalink) |
Hallo zusammen,
ich hätte 2 Fragen zur Ritch Textbox.
Wenn ich in der Rich Textbox keine Tabulatoren eingerichtet habe,
dann habe ich eine Standard-Tabulatorgröße von 6 Zeichen. Wie kann
ich diesen Wert abfragen und ggf. ändern, ohne neue Tabulatoren
einzurichten?
Gibt es eine Möglichkeit die korrekte Spaltenposition in einer Zeile
zu berechnen, ohne sich einen abzubrechen?
Berechnungen wie EM_GETSEL - EM_LINEINDEX liefern nur Quark weil
Tabulatoren nur als 1 Zeichen gewertet werden.
Ich habe jetzt die folgende Funktion programmiert, die einwandfrei
funktioniert; Aber das kann's ja wohl nicht sein, dass man so einen
Aufwand betreiben muss, der auch alles andere als performant ist.
Public Function CurrentCol() As Long
Dim lSel As Long
Dim lRow As Long
Dim lCol As Long
Dim lPos As Long
Dim i As Long
Call SendMessage(m_RTF.hwnd, EM_GETSEL, 0&, lSel)
lRow = SendMessage(m_RTF.hwnd, EM_LINEFROMCHAR, lSel, ByVal 0&) + 1
lCol = SendMessage(m_RTF.hwnd, EM_LINEINDEX, lRow - 1, 0&) + 1
lPos = 0
For i = lCol To lSel
If Mid$(m_RTF.Text, i, 1) = vbTab Then
lPos = lPos + 1
Do Until (lPos Mod 6) = 0
lPos = lPos + 1
Loop
Else
lPos = lPos + 1
End If
Next i
CurrentCol = lPos + 1
' CurrentCol = m_RTF.SelStart - SendMessage(m_RTF.hwnd, EM_LINEINDEX,
CurrentRow() - 1, 0&) + 1
End Function
Gruß Klaus
Back to de.comp.lang.vbclassic | Previous | Next — Next in thread | Find similar | Unroll thread
Tabs in der Rich Textbox Klaus Ketelaer <usenet@ketelaer.de> - 2023-09-14 15:09 +0200
Re: Tabs in der Rich Textbox "Wendelin Uez" <wuez@online.de> - 2023-09-15 17:21 +0200
Re: Tabs in der Rich Textbox Klaus Ketelaer <usenet@ketelaer.de> - 2023-09-16 02:09 +0200
Re: Tabs in der Rich Textbox Klaus Ketelaer <usenet@ketelaer.de> - 2023-09-16 17:04 +0200
csiph-web