![]() |
"RichEdit" Cursorposition in einem Wort
Hallo,
ich suche in einem RichEdit die Cursorposition in einem Wort. Testsatz: "Köln, Mainz, Ha|mburg, Berlin, Paris" Hier brauche ich jetzt den Wert 2 weil der Cursor an der 2ten Position im Wort "Hamburg" steht. Folgende Werte habe ich bereits:
Besten Dank |
Re: "RichEdit" Cursorposition in einem Wort
.SelStart liefert die die Position des Cursors
und .Text den Text dazu nun mußt du nur noch von der Position aus den Anfang des Wortes suchen und die Differenz ausrechnen. |
Re: "RichEdit" Cursorposition in einem Wort
Danke,
das bringt mich auf den richtigen Weg. Ich versuche es erstmal so.
Delphi-Quellcode:
Sonderzeichen usw habe ich so auch noch nicht berücksichtigt :?
Function CursorPosInWord(str : String; CursorPos : Integer) : Integer;
var I : Integer; begin Result := -1; for I := CursorPos Downto 0 do begin if Word(str[I]) in [13, 32, 9, 188] then begin Result := CursorPos - I; break; end; end; end; Wie würdet Ihr den Wortanfang suchen? |
Re: "RichEdit" Cursorposition in einem Wort
Vielleicht so:
Delphi-Quellcode:
Nur so auf die Schnelle aus dem Kopf. Sonderzeichen & Co. fehlen ebenfalls.
// 1. Zeichen gehört zum 1. Wort, somit ist zu Beginn "WortAnfang" = true
WortAnfang := true; for i := ... to ... do begin // Auswertung / Pos ermitteln etc. // if WortAnfang then AnfangsIndex := i; // ... Wortanfang := false; // Beim Leerzeichen das nächste Zeichen als Wortanfang markieren if Text[i] = ' ' then WortAnfang := true; end; |
Re: "RichEdit" Cursorposition in einem Wort
Delphi-Quellcode:
function CursorPosInWord(str : String; CursorPos : Integer) : Integer;
begin Result := CursorPos; while (Result > 1) and (not (str[Result] in [#13,#10,#09,' '])) do dec(Result); end; |
Re: "RichEdit" Cursorposition in einem Wort
man kann hier nun zwei Grundsätzliche Wege gehn
- man sucht der rückwärts solange, bis man ein Trennzeichen findet und und das Zeichen danach ist der 1. Wort-Buchstabe PS: dazu zählen nicht nur Zeilenumbrüche, Leerzeichen und Tabulatoren, sondern auch Satzzeichen und sonstnochwas - oder man geht solange zurück, wie man einen "Buchstaben" findet dieses wird bei Unicode etwas schwieriger und bei ANSI ist es außerhalb des ASCII-Bereich's abhängig von der aktuellen Codepage |
Re: "RichEdit" Cursorposition in einem Wort
Hallo,
Zitat:
Klar, sind noch einige Randbedingungen zu beachten, die aber Anwendungsabhängig sind. |
Re: "RichEdit" Cursorposition in einem Wort
Zitat:
|
Re: "RichEdit" Cursorposition in einem Wort
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz