Enter = neue/nächste Zeile
gedrückt wurde es also in der Zeile davor
also Zeile bestimmen, in welcher der Cursor grade steht
und die davor löschen
PS: Ich würde aber nicht sofort beim Einfügen prüfen, sondern im OnExit.
Delphi-Quellcode:
// eventuell Leerzeilen am Anfang und Ende löschen (eventuell auch mitten drin)
if Lines.Count > Maximal
then begin
Memo1.SetFocus;
raise Exception.Create('
zuviele Zeilen');
end;