И правда, Memo2.Lines[-1] не вызывает ошибки.
А TStringList вызывает.
Класс TMemoStrings
Код:
function TMemoStrings.Get(Index: Integer): string;
{$IF DEFINED(CLR)}
const
MaxLineBytes = 4096 * 2;
begin
SendGetTextMessage(Memo.Handle, EM_GETLINE, Index, Result, MaxLineBytes);
end;
{$ELSE}
var
Text: array[0..4095] of Char;
begin
Word((@Text)^) := Length(Text);
SetString(Result, Text, SendMessage(Memo.Handle, EM_GETLINE, Index,
LPARAM(@Text)));
end;
{$ENDIF}
Все ясно
