Hay problemas conocidos con algunas versiones de las Indy. Si estás utilizando Indy 10, procura actualizar a la última versión. Este problema se arregló hace poco más de un mes o mes y medio.
Que versión de Indy estás manejando ? Que versión de Delphi ?
En cualquier caso, prueba esto a ver si hay suerte (probado con Delphi 2010):
Código Delphi
[-]function EncodeBase64(const Value: string):string;
var
fstream, fStringStream: TStringStream;
begin
fstream := TStringStream.Create(Value);
try
fStringStream := TStringStream.create('');
try
EncodeStream(fstream, fStringStream);
result := fStringStream.DataString;
finally
FreeAndNil(fStringStream);
end;
finally
FreeAndNil(fStream);
end;
end;
function DecodeBase64(const Value: string):string;
var
fstream, fStringStream: TStringStream;
begin
fstream := TStringStream.Create(Value);
try
fStringStream := TStringStream.create('');
try
DecodeStream(fStream, fStringStream);
result := fStringStream.DataString;
finally
FreeAndNil(fStringStream);
end;
finally
FreeAndNil(fStream);
end;
end;
El uso sería el siguiente:
Código Delphi
[-]Edit2.Text := EncodeBase64(Edit1.Text);
Edit1.Text := DecodeBase64(Edit2.Text);