Thema: Delphi Textcursor

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Textcursor

  Alt 9. Jul 2006, 17:53
Hallo Orhan,

bei Multiline Edit Controls gibt es eine Besonderheit: du musst über den Zeilentrenner sLineBreak (#13#10) hinweg springen, mitten hinein funktioniert nicht.

Delphi-Quellcode:
function TDemoForm.MoveCaret(e: TRichEdit; forth: Boolean): Boolean;
var
  iPos, iDelta: Integer;
begin
  with e do
  begin
    iDelta := Ord(forth) shl 1 - 1;
    iPos := SelStart + iDelta;
    SelStart := iPos;

    // Sonderbehandlung von Multiline Edit Controls
    // nur bei forth = True notwendig
    if iPos <> SelStart then
    begin
      iPos := SelStart + iDelta shl 1;
      SelStart := iPos;
    end;

    if forth
      then Result := iPos < Length(Text)
      else Result := iPos > 0;

    self.Caption := Format('caret pos %d', [iPos]);
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat