Muchas gracias por tu apreciación, ArdiIIa.
La fuente que estaba utilizando era la Times New Roman. De todas formas, he probado con la Tahoma (que es la que por defecto utilizan los componentes TNT) y da el mismo resultado.
En todos los cambios de rutinas que he realizado me he dado cuenta que si en la función, el parámetro lo recibe una variable string en lugar de widestring, se pierden esos caracteres especiales. Y en el caso del TextOut la llamada sólo permite enviar string. De ahí que achacara ese comportamiento a eso... A que aunque yo le envío el widestring, TextOut lo toma como un string...
Código:
procedure TextOut(X: Integer; Y: Integer; const Text: string);
¿Se os ocurre alguna otra posibilidad?
Gracias de nuevo.