On 19/07/13 13:45, Koenraad Lelong wrote:
Works fine, except for navigating up and down. Left and right is OK, I
have to find out how to know on what line the cursor is, and then going
to the next/previous line, if possible.

Well I did say it was only to get you started :D

Memo1.CursorPos.y will tell you on which line the cursor is.

Here's a suggestion for navigating to the line above. I'll leave it to you to work out how to navigate to the line below.

Malcolm

==================================

procedure TForm1.UpButtonClick ( Sender: TObject ) ;
var
  newcaretPos: Integer;
  x: Integer;
begin
  newcaretPos := 0;
  writeln(Memo1.CaretPos.Y, #32, Memo1.CaretPos.X);
  for x := 0 to Memo1.CaretPos.Y-2 do
newcaretPos := newcaretPos + Length(Memo1.Lines[x]) + Length(LineEnding);
  if Length(Memo1.Lines[Memo1.CaretPos.Y-1]) < Memo1.CaretPos.X
then newcaretPos := newcaretPos + Length(Memo1.Lines[Memo1.CaretPos.Y-1]) + 1
     else newcaretPos := newcaretpos + Memo1.CaretPos.X;
  Memo1.SelStart := newcaretPos;
  Memo1.SetFocus;
end;




--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to