Hola.
Ya es hora de usar la etiqueta [ delphi ], no te parece.
la solución podria ser:
Código Delphi
[-]
procedure TForm1.Button3Click(Sender: TObject);
begin
memo2:=obtenermemo;
end;
function Tform1.obtenermemo:Tmemo;
var
memo1:Tmemo;
begin
memo1:=Tmemo.Create(self);
memo1.Lines.Add('hola');
memo1.Parent := self; obtenermemo:=memo1;
end;
ojo!! que estas haciendo una asignación "a lo pelado" de un puntero. Si memo2 apuntaba a un memo creado con anterioridad, estas perdiendo la forma fácil de acceder a él, y dejandolo en memoria hasta que se libere la forma (gracias al ownership, que si no la memoria se quedaba tirada para siempre).
Espero que sepas realmente lo que queres conseguir con esto.
Hasta luego.