Hola,
Una posibilidad es usar variables pasadas a la función como argumentos "por referencia":
Código Delphi
[-]
function Foo(var a: string) : boolean;
begin
a := a + ' from Brasil';
Result := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a: string;
begin
a := 'Paulao';
Foo(a);
ShowMessage(a);
end;
Como ves, es bastante sencillo, basta con usar la palabra reservada "var" antes del identificador de la variable. Cualquier cambio que se haga a la variable "a", se mantendrá en dicha variable incluso fuera ya de la función.