Ver Mensaje Individual
  #3  
Antiguo 06-09-2003
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Reputación: 24
gatosoft Va camino a la fama
EL problema que tienes es la manera como defines tu variable de salida. Es erroneo hacer :

Código:
TMiEv = procedure (Sender: TObject; datos: array of variant) of object ;
debes definir la variable datos asi:

Código:
TMiEv = procedure (Sender: TObject;  VAR  datos: array of variant) of object ;
Y dentro de tu codigo, la puedes utilizar asi:

Código:
Procedure CalcularAlgo;
   var vDatos:Array of Variant;
Begin

{.....Calculos.....}

if Se_cumplio_Condicion then
    if assigned(FMiEv) then
       begin
          FMiEv(self, vDatos);
          for i:= low(vDatos) to high(vDatos) do
               {...haces lo que quieras....}
       end;

end;
Ya lo probe y funciona asi, pero me pregunto: ¿para que utilizas este tipo de eventos?. Lo digo por que al principio me llamo la atencion un evento que devolviera valores de ese modo, y me hice la misma pregunta que Julià T.: "¿y como accedes?". Es una manera poco comun de definir un evento. (me parece)
Responder Con Cita