Du definierst im Thread eine Private String-Variable und dazu ein passendes Property
Delphi-Quellcode:
TMyThread =class(TThread)
private
fText: String;
public
property Text: String write fText read fText;
end;
Im OnKeyDown weist du dann Text den String im Memo zu. Im Thread arbeitest du dann nur mit fText anstatt mit dem aus dem Memo. So brauchst du nicht auf die Daten des Threads in Syncronize zugreifen.