Talk:SynEdit

From Free Pascal wiki
Revision as of 18:57, 12 June 2014 by Martin (talk | contribs) (→‎Repl)
Jump to navigationJump to search

Repl

 var p1,p2: TPoint;
 begin
   p1 := SynEdit.LogicalCaretXY;
   p2 := SynEdit.LogicalCaretXY;
   p2.x := p2.x + UTF8CharacterLength(@SynEdit.LineText[p2.x]); // byte len of char AFTER current caret
   SynEdit.TextBetweenPoints[p1,p2] := ;

Bad example. What it must do? replace One char with empty string? Show example how to replace 4 chars with S string. Alex22 03:55, 12 June 2014 (CEST)

Improved example. How to calculate bytepos of a utf8 char is not a SynEdit topic. This should be covered on its owe wiki page / or on a page related to utf8. If exists it can be linked. - Martin
How to write examp, which replaces string from (x=2,y=10) to (x=4,y=20) with string S ?
b) better remove @SynEdit.LineText[p2.x] , it's not good for exm. Alex22
if x=2/y=10 are correct logical positions (1-based first byte pos of a char)
(there is a unit that defines the function point / use codetools to find, it, or assign by hand to p.x/p.y of point)
Last byte replaced is at x=3 y=20
SynEdit.TextBetweenPoints[point(2,10),point(4,20)] := s;
This is identical to setting the text selection, and replacing it. Except, this can keep the current selection. -- Martin