Warum verwendest Du ein Integer als Zählvariable?
Das sind nur unnötige IntToStr-Unwandlungen die Resourcen fressen.
Mein Vorschalg:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: Char;
begin
Memo1.Text := Edit1.Text;
For i := Low(Char) to High(Char) do
if not (i in [#35, #38, #59]) then
Memo1.Text := StringReplace(Memo1.Text, i, '&#'+IntToStr(Ord(i))+';',[rfReplaceAll]);
end;
//Edit:
Fehler korrigiert:
Eine IntToStr-Umwandlung brauch man doch - aber ich find's trotzdem so übersichtlicher.
Und wozu die zusätzliche String-Variable ist, ist mir auch unklar.