A mi me parece que ambos se están confundiendo y se están yendo por una camino equivocado e innecesario.
Cualquier string, sea dinámico o estático, puede accederse caracter por caracter
como si fuera un arreglo- que no lo es.
Código Delphi
[-]
var
S: String;
T: String[30];
begin
S := 'Club';
T := 'Delphi';
ShowMessage(S[3] + T[5]); end;
Sólamente hay que tener cuidado en que los índices no excedan los límites (desde 1 hasta la longitud del string), incluso en los string dinámicos. En el ejemplo no se puede acceder a S[100] por ejemplo. Al menos no de manera segura ya que se exponen a una violación de acceso. En el caso de strings estáticos no podrán exceder del límite declarado (30 en este caso) y en los dinámicos no podrán exceder de lo que actualmente contenga el string (en este caso 4 letras) a no ser que explícitamente se le asigne una longitud:
Abandonar la idea original de acceder de esta forma a los caracteres individuales del string no me parece correcto ya que es mucho más eficiente esto si se requiere tratar los caracteres individualmente que haciendo uso de la función Copy para acceder a cada caracter.
Por otro lado, la función Copy regresa un string,
no un caracter, puesto que sirve para tomar porciones de una cadena y no sólo caracteres individuales.
Creo que lo mejor sería que
Luli especificara cuáles son los errores que le salen ya que hasta ahora aún no lo ha hecho.
// Saludos