Ver Mensaje Individual
  #5  
Antiguo 06-03-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Reputación: 21
ozsWizzard Va por buen camino
Yo tiro por la tangente.

Yo, a veces, tengo dos métodos de clase, dos procedimiento llamados "Instanciar" y "Liberar", en ellos hago lo siguiente:
Código Delphi [-]
class procedure TObj.Instanciar(var Param: TParam; var pObj; TObj);
begin
    Liberar(pObj);

    pObj := TObj.Create(Param);
end;

class function TObj.Liberar(var pObj: TObj);
begin
   if Assigned(pObj) then
      FreeAndNil(pObj);
end;
A esta forma de trabajar, para que se parezca a la tuya bastaría con cambiar el "Instanciar" y realizar lo siguiente

Código Delphi [-]
class procedure TObj.Instanciarr(var Param: TParam; var pObj; TObj);
begin
    Liberar(pObj);

    if TObj.ValidarParam(Param) then //Siendo ValidarParam una función de clase de tipo booleana
          pObj := TObj.Create(Param);
end;

Se me olvidaba la llamada:
Código Delphi [-]
begin
   TObj.Instanciar(Param, Obj);
end;

La opción "TryCreate" no me parece mal tampoco.
__________________
La Madurez se llama...
~~~Gaia~~~

Última edición por ozsWizzard fecha: 06-03-2013 a las 15:55:47.
Responder Con Cita