// ersetzt in Memo1 die Zeile (aRow), auf welcher der Cursor aktuell steht (bzw. stand, bevor der Button gedrückt wurde)
procedure TForm1.Button1Click(Sender: TObject);
var
aRow: integer;
begin
with memo1 do
begin
aRow := SendMessage(
Handle, EM_LINEFROMCHAR, SelStart, 0);
SelStart := Perform(EM_LINEINDEX, aRow, 0);
Perform(EM_SCROLLCARET, 0, 0);
SelLength := length(lines[aRow]);
if aRow=lines.Count then
SelText := 'Diese Zeile wurde ersetzt'
else
SelText := 'Diese Zeile wurde ersetzt'#13;
end;
end;