close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 16 years ago

Closed 16 years ago

#705 closed doubt (fixed)

Referencia a objetos del Eval sin nombre.

Reported by: Alejandro Owned by: Jorge
Priority: normal Milestone:
Component: Interface Version: 1.1.7
Severity: normal Keywords:
Cc: javipor@…

Description

Hola,
por despiste compilé en el Eval un Set sin nombre, que tardaba mucho tiempo y con el que tenía que seguir trabajando.
Ej: Set 1, 2, 3 ?;
y vi la necesidad de referirme a él de algún modo para utilizarlo, pero vi que no se puede hacer ( o no supe como ), y me parece que pudiera ser de utilidad en alguna ocasión futura.

Hablándolo por aquí surgieron varias "propuestas" posibles que os comento por si pudieran ser de utilidad o inspiración:

1- Poder referirse a los elementos compilados del Eval por su posición, como a los de un fichero, en plan:
Ej: Set ConNombre = Consola[1];

2- Crear una función que te devuelva todo lo que hay compilado en el Eval (GetConsoleElements) y luego acceder a él...
Ej: Set ElementosConsola = GetConsoleElements(1);

Set ConNombre = ElementosConsola[1];

Aquí habría que tener cuidado que no te de un bucle infinito al usarse tb en el Eval ....

3- Crear una función de botón dcho para guardar el Set (o cualquier otro elemento) en un Ois, solicitando la dirección, y después simplemente leerlo.
Esta función puede ser de especial utilidad y comodidad independientemente de haberle o no puesto nombre al objeto...

Change History (1)

comment:1 Changed 16 years ago by Jorge

Cc: javipor@… added
Resolution: fixed
Status: newclosed

He implementado la opcion 2-

Dejo el codigo aqui para que la prueben mientras esta disponible la version con este cambio.


Anything GetConsoleObject( Real idx )

{

Set cmd_info = [[ "tol::info",

"address",
"Console "+IntText(idx) ]];

Set result = Tcl_EvalEx( cmd_info );
Anything If( result[ "status" ],

GetObjectFromAddress( result[ "result" ] ),
Error( "GetConsoleObject: " +

result[ "result" ] +
"\nevaluating tol::info address'" ) )

};
PutDescription("Retorna el objeto de consola con indice idx",

GetConsoleObject);

Note: See TracTickets for help on using tickets.