If you want to display the memo caret position, you can use code like this:
procedure TForm1.UpdateCaretPosDisplay;
begin
lblX.Text := (Memo1.CaretPosition.Pos + 1).ToString;
lblY.Text := (Memo1.CaretPosition.Line + 1).ToString;
end;
And if you want a complete sample code with that method called at the correct event handlers, here it is:
unit FmxMemoCaretPosDemoMain;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types,
FMX.StdCtrls, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo;
type
TForm1 = class(TForm)
Memo1: TMemo;
StatusBar1: TStatusBar;
lblX: TLabel;
lblY: TLabel;
procedure FormCreate(Sender: TObject);
procedure Memo1Change(Sender: TObject);
procedure Memo1Enter(Sender: TObject);
procedure Memo1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift:
TShiftState);
procedure Memo1MouseUp(Sender: TObject; Button: TMouseButton; Shift:
TShiftState; X, Y: Single);
private
procedure UpdateCaretPosDisplay;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.FormCreate(Sender: TObject);
begin
UpdateCaretPosDisplay;
ActiveControl := Memo1;
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
UpdateCaretPosDisplay;
end;
procedure TForm1.Memo1Enter(Sender: TObject);
begin
UpdateCaretPosDisplay;
end;
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin
UpdateCaretPosDisplay;
end;
procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton; Shift:
TShiftState; X, Y: Single);
begin
UpdateCaretPosDisplay;
end;
procedure TForm1.UpdateCaretPosDisplay;
begin
lblX.Text := (Memo1.CaretPosition.Pos + 1).ToString;
lblY.Text := (Memo1.CaretPosition.Line + 1).ToString;
end;
end.