De antemano se agradece tu aporte y tu buena voluntad de colaborar con el público José.
Pero no me queda claro el propósito de la función que has compartido. Mucho menos entiendo el código que has publicado. No veo que haga reemplazos. Por ejemplo no entiendo que hace este código:
if (Length(VarSLet)=1) and (VarSLet='á') then VarSLet:='á';
Me da la impresión que no hace ningún tipo de modificación sobre la cadena.
Talvez me podrías aclarar un poco el código porque sinceramente no lo entiendo
Saludos,
Chris