Wenn du die Zeilen im Ganzen haben willst und nicht nur die selektierten Zeichen, dann müsste es so gehen:
Delphi-Quellcode:
Var
StartLn, EndLn, i: Integer;
SList: TStrings;
Begin
With SynMemo1 Do
Begin
StartLn := pred(CharIndexToRowCol(SelStart).Line);
EndLn := pred(CharIndexToRowCol(SelEnd).Line);
End;
SList := TStringList.Create;
Try
For i := EndLn Downto StartLn Do
SList.Add(Trim(SynMemo1.Lines[i]));
ListBox1.Items.Assign(SList);
Finally
FreeAndNil(SList);
End;
End;
CharIndexToRowCol gibt dir von einer absoluten Position Line und Char. Das wird in umgekehrter Reihenfolge in eine StringList geschrieben. Die StringListe wird dann an die Items der ListBox übergeben.
Edit: Tippfehler