Ver Mensaje Individual
  #15  
Antiguo 28-04-2015
doctorhd doctorhd is offline
Miembro
NULL
 
Registrado: abr 2013
Posts: 48
Reputación: 0
doctorhd Va por buen camino
Gracias nlsgarcia y Al González por sus respuestas, me queda claro el origen del error.
Ahora a raíz del cambio indicado por ustedes, tengo el siguiente problema...(no se si sera necesario abrir un nuevo hilo)
al llamar a la función:
Código Delphi [-]
....
funGlobal.CloseObjet([FDetail]);{Destruimos las clases integrantes}
....

procedure TfunGlobal.CloseObjet(var AObjeto:Array of TObject);
var vIndice:Integer;
begin
  for vIndice:= Low(AObjeto) to High(AObjeto) do begin
    if Assigned(AObjeto[vIndice]) then FreeAndNil(AObjeto[vIndice]){Liberamos la memoria}
  end;{for}
end;{procedure}
tengo el siguiente error:
Código Delphi [-]
[dcc32 Error] ControlErroresUnit.pas(108): E2197 Constant object cannot be passed as var parameter
el cual indica que no puedo pasar una constante como parámetro a una función que requiere una variable, cuestión que no es cierta, ya que FDetail es un campo de una clase que a su vez también es una clase, aquí va la definición de ambas:

Código Delphi [-]
type
   TClassError = class
   private { Private declarations }
     FAccionOrigen:String;
     FTraceError:String;
     FMensajeError:String;
     FViewTraceError:Boolean;
     FTileMsg:string;
   public { Public declarations }
     constructor Create(AAccionOrigen:String;ATraceError:String;ATileMsg:String);
     procedure DisplayError;
     procedure SetMensajeError(AMensajeError:String);
     procedure SetViewTraceError(AViewTraceError:Boolean);
   public
     property AccionOrigen: String read FAccionOrigen;
     property TraceError: String read FTraceError;
     property MensajeError: String read FMensajeError;
     property ViewTraceError: Boolean read FViewTraceError;
   end;

type
   TControlErrores = class
   private { Private declarations }
     FDetail:TClassError;
     FTileMsg:string;
     procedure CreateMsgError(AError: Exception; AAccionOrigen:String; ATraceError:String);
     function ConstruyeMsgErroresDataSnap(AError:Exception; AAccionError:String; var AmsgSalida:String): Boolean;
     function ConstruyeMsgErroresBD(AError:Exception; AAccionError:String; var AmsgSalida:String): Boolean;
     function ConstruyeMsgErroresSistema(AError:Exception; AAccionError:String; var AmsgSalida:String): Boolean;
   public { Public declarations }
     constructor Create(AE:Exception;AAccionOrigen:String;ATileMsg:string);
     destructor Destroy; override;
     procedure DisplayError;
   public
      property Detail:TClassError read FDetail;
   end;

Saludos...
Responder Con Cita