![]() |
Lanzar evento....
Hola a todos. La duda que tengo sobre el lanzamiento de un evento es la siguiente. Quisiera que al lanzar un determinado evento, se retorne en el mismo un conjunto de valores dentro de un array, es decir:
TMiEv = procedure (Sender: TObject; datos: array of variant) of object ; Como veis asi declaro el evento, pero en el capturador del evento, cuando quiero acceder a los datos del array me da error. ¿Por qué? ¿Hay alguna otra forma de hacerlo? Los datos que contiene el array son de distintos tipos (entero, real y cadena de caracteres). Gracias de antemano por la ayuda. Un saludo. |
Y como accedes?
|
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 ; Código:
TMiEv = procedure (Sender: TObject; VAR datos: array of variant) of object ; Código:
Procedure CalcularAlgo; |
Antes de nada, gracias.
Lo que estoy intentado hacer es un pequeño panel de opciones, de forma que al pulsar OK se lance un evento, capturable y que retorne todas las modificaciones realizadas en las opciones que se presentan en dicho panel. El problema que se me presenta al utilizar este tipo de array abierto es que cuando intento asignar el valor de una casilla a la variable que deseo, me da un fallo. Un saludo. |
Bueno, el problema tal vez sea que no inicializas la variable Datos. como es un vector dinámico, debes decirle cual es la lomgitud de los datos que estas almacenando, con: SetLength .
Ahora, si ya lo hiciste, y te marca error al asignar una variable (cosa bien rara, por que por definicion, un variant acepta cualquier cosa), lo mas probable es que estes utilizando un subindice equivocado. Por ejemplo: Código:
vSubIndice:=0; Código:
vSubIndice:=0; |
La franja horaria es GMT +2. Ahora son las 00:31:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi