| |
Fortgeschrittene ProgrammierungInhalt der aktuellen Zeile einer RTF-Box oder Länge der aktuellen Zeile | | | Autor: vb__ | Datum: 18.03.04 12:58 |
| Hallo,
wie kann man den Inhalt oder die Länge der aktuellen Zeile der RTF-Box ermitteln?
Danke und MfG
vb__ | |
Re: Inhalt der aktuellen Zeile einer RTF-Box oder Länge der aktuellen Zeile | | | Autor: vb__ | Datum: 18.03.04 22:20 |
| Hi Dieter,
das habe ich schon. Leider stürzte VB aber immer ab. Habe jetzt aber einen anderen Weg gefunden.
MfG
vb__ | |
Re: Inhalt der aktuellen Zeile einer RTF-Box oder Länge der aktuellen Zeile | | | Autor: vb__ | Datum: 19.03.04 13:08 |
| Hi Dieter,
Private Function GetRowContent(hWnd As Long) As String
Dim CursorPos As Long
Dim Line As Long
Dim FirstChar As Long
Dim RowLength As Long
Dim Buffer() As Byte
CursorPos = SendMessage(hWnd, EM_GETSEL, 0, ByVal 0&) \ 65536
Line = SendMessage(lngHWnd, EM_LINEFROMCHAR, CursorPos, ByVal 0&)
FirstChar = SendMessage(lngHWnd, EM_LINEINDEX, Line, ByVal 0&)
RowLength = SendMessage(lngHWnd, EM_LINELENGTH, FirstChar, ByVal 0&)
ReDim Buffer(RowLength)
Buffer(0) = RowLength
SendMessage hWnd, EM_GETLINE, Line, abytBuffer(0)
GetLineContent = Left$(StrConv(Buffer, vbUnicode), RowLength)
End Function Der heutige Tipp mit dem Spaltentausch ist super. Noch besser fände ich es, wenn man das auch beim sevDataGrid hinbekommen könnte. Hab das zwar schon mal versucht, aber leider nicht hinbekommen. Vielleicht wär das ja was für den Tipps & Tricks Bereich (oder für sevDataGrid 2.0 ).
MfG
vb__ | |
--KORRIGIERTE VERSION-- | | | Autor: vb__ | Datum: 19.03.04 13:10 |
| --KORRIGIERTE VERSION--
Hi Dieter,
Private Function GetRowContent(hWnd As Long) As String
Dim CursorPos As Long
Dim Line As Long
Dim FirstChar As Long
Dim RowLength As Long
Dim Buffer() As Byte
CursorPos = SendMessage(hWnd, EM_GETSEL, 0, ByVal 0&) \ 65536
Line = SendMessage(lngHWnd, EM_LINEFROMCHAR, CursorPos, ByVal 0&)
FirstChar = SendMessage(lngHWnd, EM_LINEINDEX, Line, ByVal 0&)
RowLength = SendMessage(lngHWnd, EM_LINELENGTH, FirstChar, ByVal 0&)
ReDim Buffer(RowLength)
Buffer(0) = RowLength
SendMessage hWnd, EM_GETLINE, Line, abytBuffer(0)
GetRowContent = Left$(StrConv(Buffer, vbUnicode), RowLength)
End Function Der heutige Tipp mit dem Spaltentausch ist super. Noch besser fände ich es, wenn man das auch beim sevDataGrid hinbekommen könnte. Hab das zwar schon mal versucht, aber leider nicht hinbekommen. Vielleicht wär das ja was für den Tipps & Tricks Bereich (oder für sevDataGrid 2.0 ).
MfG
vb__ | |
Jetzt aber: | | | Autor: vb__ | Datum: 19.03.04 13:35 |
| Hi Dieter,
war doch noch ein Fehler drin. Jetzt sollte es aber klappen:
Private Function GetRowContent(hWnd As Long) As String
Dim CursorPos As Long
Dim Line As Long
Dim FirstChar As Long
Dim RowLength As Long
Dim Buffer() As Byte
CursorPos = SendMessage(hWnd, EM_GETSEL, 0, ByVal 0&) \ 65536
Line = SendMessage(hWnd, EM_LINEFROMCHAR, CursorPos, ByVal 0&)
FirstChar = SendMessage(hWnd, EM_LINEINDEX, Line, ByVal 0&)
RowLength = SendMessage(hWnd, EM_LINELENGTH, FirstChar, ByVal 0&)
ReDim Buffer(RowLength)
Buffer(0) = RowLength
SendMessage hWnd, EM_GETLINE, Line, Buffer(0)
GetRowContent = Left$(StrConv(Buffer, vbUnicode), RowLength)
End Function MfG
vb__ | |
Re: Jetzt aber: | | | Autor: Danny Grobe | Datum: 20.05.16 15:28 |
| Warum dieses:
Buffer(0) = RowLength Das führt nur dazu, dass es einen Überlauf gibt, wenn die aktuelle Zeile länger ist als 255 Zeichen. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|