Sigo dándole vueltas al asunto, en el edit ¿estas introduciendo la cadena de texto '#27+#105'?, es decir la cadena de texto tal cual. Porque así el resultado es una cadena de 8 caracteres y no los 2 que tu necesitas para hacer el corte. Se me ocurre lo siguiente para que puedas introducir los caracteres especiales como el 27:
Código Delphi
[-]
function Decode(Str: string): string;
var
i: integer;
begin
Result:= '';
while Length(Str) > 0 do
begin
if Copy(Str, 1, 1) = '%' then
begin
if not TryStrToInt('$' + Copy(Str, 2, 2),i) then
begin
Result:= '';
Exit;
end;
Result:= Result + Char(i);
Delete(Str, 1, 2);
end else Result:= Result + Copy(Str, 1, 1);
Delete(Str,1,1);
end;
end;
var
s: string;
begin
s:= Decode(Edit1.text);
PWrite(s);
end;
De este modo, por ejemplo, si queremos imprimir esto:
Código:
Hola mundo
(Cortar)
Escribiriamos en el edit
Código:
Hola mundo%0A%0D%1B%69
Es decir sustituimos los caracteres problematicos por un '%' seguido del codigo correspondiente en hexadecimal. Espero que te sirva.