Opened 14 years ago
Closed 14 years ago
#1014 closed enhancement (fixed)
Extensión de UsingNameBlock a miembros no públicos
Reported by: | Víctor de Buen Remiro | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | highest | Milestone: | Mantainance |
Component: | OOP | Version: | |
Severity: | blocker | Keywords: | |
Cc: |
Description
UsingNameBlock sólo permite usar los miembros públicos pero a veces puede ser útil exportar los de sólo lectura y los privados.
Por ejemplo en la depuración de código puede ser muy útil para poder correr trozos de código en el ámbito global.
Change History (3)
comment:1 Changed 14 years ago by
comment:3 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
La API de la función queda ahora sí:
Real UsingNameBlock( NameBlock nameBlock [, Real usingAlsoReadOnly = False, Real usingAlsoPrivate = False])
En determinadas circunstancias los miembros públicos de un NameBlock pueden pasar al ámbito global, es decir, se puede acceder a ellos sin explicitarlo con ::
Ello se logra con el operador
Real UsingNameBlock(<nameblock_id>)
El operador UsingNameBlock
devuelve cierto si es compatible con el resto de variables de tipo NameBlock actualmente globalizadas, es decir, si no contiene ningún miembro público con el mismo nombre que otro o que una variable global.
Los miembros que ya estuvieran presentes no serán accesibles de forma implícita pero sí mediante ::
y se mostrará un mensaje de aviso para advertirlo.
Este operador no surte efecto si se llama en ambiente local, lo cual incluye dentro de un NameBlock, y devolverá un error si se intenta.
Si usingAlsoReadOnly es cierto los miembros de solo lectura también serán exportados.
Si usingAlsoPrivate es cierto los miembros privados también serán exportados.
ATENCION: No se puede usar esta función varias veces con diferentes argumentos para un mismo NameBlock en una misma sesión TOL. TOL se cae y no veo forma de evitarlo. Como se trata de una herramienta de depuración para usuarios expertos de momento se quedará así.
(In [2689]) Refs #1014