Dass es doppelt kommt, hat seine Ursache darin, dass bei Loslassen der Shift-Taste auch KeyUp ausgelöste wir, und das TMemo, brav wie es ist, hängt eben noch mal 'DEF' dran. Deshalb hab ich ja nach anhängen von 'DEF' auch gleich den Cursor dahinter gesetzt. Dann trifft die Bedingung nicht mehr zu und es passiert nix.
SelStart repräsentiert immer die Cursor-Position, wenn kein Text selectiert ist, daher
Memo1.SelStart:=Length(Memo1.Text);
. Dann sind die drei Zeichen davor ja nicht 'ABC'
Also nach dem Anhängen gleich Cursor dahinter setzen.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)