eine Möglichkeit, etwas umständlicher und nicht so elegant wäre wenn du den Inhalt des Edits ein zweites mal abspeicherst. Im onChange kannst du dann überprüfen: hat sich der Text um mehr als ein Zeichen verlängert wurde etwas eingefügt, entweder übers Popup-Menü oder Strg+V. in dem Fall kannst du einfach den Text zurücksetzen.
Gemeint:
Delphi-Quellcode:
TForm1 = class(TForm)
//...
Edit1Text: string;
end;
//...
procedure Edit1Change(Sender: TObject);
begin
if length(Edit1.Text) > length(Edit1Text) + 1 then
Edit1.Text := Edit1Text
else
Edit1Text := Edit1.Text;
end;