<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 10/10/2013 10:50, FreeMan wrote:<br>
    </div>
    <blockquote cite="mid:5256786C.30002@delphiturkiye.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Maybe this two screenshot give more info, copy and paste from
      clipbord. same selected text. blackbackgroud in lazarus IDE, other
      one in "Kate" text editor. 'İ' is okey on kate just font proble
      and dot is small. <br>
      Just look carefully to this string part  " ....', PChar...." 
      before comma space is different. My idea is unicode function
      problem in synedit, or string ansisting problem<br>
    </blockquote>
    I already can tell what is happening.<br>
    Compare the width of the upper "i" with the width of the "2" below.
    It is not the same.<br>
    <br>
    SynEdit is a monospace ONLY editor. It only works with monospaced
    fonts. (Some exceptions, see below)<br>
    <br>
    SynEdit assumes that the "I" has the same width as every other char.
    So it assumes that the "S" behind the "I" is exactly above the ")"
    below.<br>
    You will note that the caret moves into the middle of the "S"<br>
    <br>
    SynEdit makes one call to the OS TextOut function for all chars with
    the same color. And if the OS does not paint the chars at the pos
    that a strictly monospaced font would dictate, then SynEdit does not
    know. But SynEdit will behave as if the OS did.<br>
    <br>
    The "," has a diff color. SynEdit makes a new TextOut call to the
    x-pos where it should be. That is why there is a gap.<br>
    Text selection changes color, so the gap starts moving around.<br>
    <br>
    If you can not change the font, you can set "Extra Char Spacing"  in
    the editor options to 1 or -1 (or any none zero value). Then SynEdit
    will paint each char on its own (for internal reasons that does mess
    up script languages like Arab, except on windows)<br>
    <br>
    SynEdit detects none monospaced fonts if Latin letters (i,w,m,@) do
    not have the same width.<br>
    It only test Latin letters as they are present in most fonts.<br>
    <br>
    If SynEdit would include upper dotted i in that test, it would fix
    your problem. But it would have side effects for people who use such
    a font, but only use English alphabet. (In which case the font is
    ok).<br>
    <br>
    Same for testing any other none English char. There would always be
    side effects between different languages (Arab to affect Chinese, or
    Turkish or English or vice versa...)<br>
    <br>
    <br>
    You can edit "TextDrawer" in SynEdit<br>
    <br>
    line 735<br>
    <br>
    <blockquote type="cite"><br>
        //if OverHang >0 then debugln(['SynTextDrawer: Overhang=',
      OverHang]);;<br>
        FontData^.CharAdv := Width;<br>
        FontData^.CharHeight := Height;<br>
        FontData^.NeedETO := ETO;<br>
      end;<br>
    </blockquote>
    <br>
    change<br>
      FontData^.NeedETO := ETO;<br>
    to<br>
      FontData^.NeedETO := True;<br>
    <br>
    It will use more CPU / be slower. It will mess up Arab (except on
    Win)<br>
    <br>
    In the end: Your font is not monospaced. SynEdit only works with
    monospaced fonts<br>
    <br>
    <br>
    <blockquote cite="mid:5256786C.30002@delphiturkiye.com" type="cite">
      <br>
      <img src="cid:part1.04060409.09010108@mfriebe.de" alt="">
      <div class="moz-cite-prefix"><img
          src="cid:part2.07030801.06030205@mfriebe.de" alt=""><br>
        <br>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>