Home » Tipps & Tricks » Komponenten » TRichEdit/TMemo/TEdit » Aktuelle Zeile/Spalte in Memofeldern bestimmen

Aktuelle Zeile/Spalte in Memofeldern bestimmen

Bis zu Delphi Version 5 muss diese Methode angewendet werden:

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Zeile bestimmen
  Label1.Caption := IntToStr(SendMessage(Memo1.Handle, 
    EM_LINEFROMCHAR, Memo1.SelStart, 0)+1);

  //Spalte bestimmen
  Label2.Caption := IntToStr(Memo1.SelStart-SendMessage(Memo1.Handle,
    EM_LINEINDEX, SendMessage(Memo1.Handle, EM_LINEFROMCHAR, Memo1.SelStart, 0), 0)+1);
end;

Ab Delphi Version 6 kann man folgendes anwenden:

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Zeile bestimmen
  Label3.Caption := IntToStr(Memo1.CaretPos.y+1);
  //Spalte bestimmen
  Label4.Caption := IntToStr(Memo1.CaretPos.x+1);
end;