Germán,
el problema que tienes es de tiempos de ejecución, es decir, primero se crean los
Gets y la variable
inx del bucle llega a su fin. La función termina y se destruyen las variables locales, como
inx. Luego, cuando se producen los eventos del click esa variable ya no existe, date cuenta que la función que creó los
Gets terminó y como variable local se destruyó. Si intentas leer su valor desde el codeblock lees basura, o el contenido de otra variable o vete a saber que hay la memoria que ocupó la variable en ese momento.
Para hacer lo que quieres yo implementaría algo así:
Código:
METHOD DefgetDat( achdatos, WinActual ) Class Tgetfac_Prg
For inx = 1 to 5
::get[inx] :=TEdit():Create( ::getBarD1 )
::get[inx]:Caption:= "Prueba "+str( inx )
::get[inx]:Cargo:= inx
::get[inx]:OnDblClick := { | oSender | ::BuscaInfOnDblClick( oSender ) }
Next inx
Return
Method BuscaInfOnDblClick ( oSender ) Class Tgetfac_Prg
local oObject
oObject := aScan( ::get, oSender )
if oObject != nil
oObject:HazLoQueSea()
endif
return