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]);
....
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])
end;
end;
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
FAccionOrigen:String;
FTraceError:String;
FMensajeError:String;
FViewTraceError:Boolean;
FTileMsg:string;
public
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
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
constructor Create(AE:Exception;AAccionOrigen:String;ATileMsg:string);
destructor Destroy; override;
procedure DisplayError;
public
property Detail:TClassError read FDetail;
end;
Saludos...