In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

TOleAuto y Arrays

Foro de Xailer profesional en español
Responder
Angel
Mensajes: 135
Registrado: Mié Mar 21, 2007 1:11 pm

TOleAuto y Arrays

Mensaje por Angel »

¿Existe alguna manera de volcar en un array los miembros de un objeto
TOleauto? Por ejemplo, los miembros que un objeto TOleauto adquiere al
hacer una consulta SELECT sobre WMI.
En caso de que TOleauto tenga un miembro que es en realidad un array,
¿como visualizar el contenido de dicho array?
Por ejemplo, haciendo esta consulta a WMI sobre Toleauto: ("Select *
from Win32_OperatingSystem") uno de los miembros segun MSDN de Microsoft
serí­a MUILanguages[] que contendrí­a un array con los lenguajes
instalados. ¿Es posible visualizar su contenido?
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TOleAuto y Arrays

Mensaje por ignacio »

Ángel,
En principio no debería haber ningún problema. Debería poder interrogar
dicho miembro como un array cualquiera.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"Ángel Fernández" <angel@agelso.com> escribió en el mensaje
news:48be4e22$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> ¿Existe alguna manera de volcar en un array los miembros de un objeto
> TOleauto? Por ejemplo, los miembros que un objeto TOleauto adquiere al
> hacer una consulta SELECT sobre WMI.
>
> En caso de que TOleauto tenga un miembro que es en realidad un array,
> ¿como visualizar el contenido de dicho array?
>
> Por ejemplo, haciendo esta consulta a WMI sobre Toleauto: ("Select * from
> Win32_OperatingSystem") uno de los miembros segun MSDN de Microsoft sería
> MUILanguages[] que contendría un array con los lenguajes instalados. ¿Es
> posible visualizar su contenido?
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Angel
Mensajes: 135
Registrado: Mié Mar 21, 2007 1:11 pm

TOleAuto y Arrays

Mensaje por Angel »

Ignacio Ortiz de Zúñiga escribió:
> íngel,
>
> En principio no deberí­a haber ningún problema. Deberí­a poder interrogar
> dicho miembro como un array cualquiera.
>
> Un saludo,
>
Ignacio, por más que lo intento no consigo acceder a los miembros
TOleauto que son arrays; simplemente, recibo el error
DISP_E_MEMBERNOTFOUND. He buscado en el prg de la clase alguna solución,
pero tampoco la encuentro.
Algo que me serí­a de mucha utilidad serí­a poder obtener ya sea en un
array o en una cadena, los handle a cada miembro de un objeto TOleauto o
bien el nombre de cada miembro, ya que en el debugger no es posible
visualizar el contenido interno de esta clase. ¿es esto posible?
Pregunta aparte, ¿esta clase está documentada en xHarbour Language
Reference Guide? Porque si es así­, con ésta y con el resto de clases,
merecerí­a la pena adquirirlo.
Saludos.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

TOleAuto y Arrays

Mensaje por jfgimenez »

Ángel,
> Ignacio, por más que lo intento no consigo acceder a los miembros TOleauto
> que son arrays; simplemente, recibo el error DISP_E_MEMBERNOTFOUND. He
> buscado en el prg de la clase alguna solución, pero tampoco la encuentro.
Lo primero que deberías verificar es si realmente es un array o una
"colección OLE". Lo más normal es que se trate de una "colección OLE", que
están perfectamente soportadas. Pero cada uno de los elementos de la
colección no es un valor simple, sino otro objeto OLE. Por lo tanto, para
ver su valor hay que utilizar alguna de sus propiedades. P.ej., supongamos
que tienes un objeto 'oSheet' que es una hoja de excel. Este objeto tiene
una propiedad 'Cells' que es el conjunto de celdillas de la hoja.
Aparentemente es una array de 2 dimensiones, pero no lo es; es una
"colección OLE". Para obtener sus valores, no puedes simplemente poner:
oSheet:Cells( 1, 1 )
sino que deberás utilizar la propiedad 'Value' de cada celda. Así:
oSheet:Cells( 1, 1 ):Value
En el caso de arrays de valores simples, sé que también están soportados,
pero yo personalmente no los he utilizado y no te lo puedo asegurar.
> Algo que me sería de mucha utilidad sería poder obtener ya sea en un array
> o en una cadena, los handle a cada miembro de un objeto TOleauto o bien el
> nombre de cada miembro, ya que en el debugger no es posible visualizar el
> contenido interno de esta clase. ¿es esto posible?
No, me temo que no. La clase TOleAuto maneja los objetos OLE de forma
dinámica (late binding) lo que significa que resuelve el nombre de la
propiedad o método que invoques en el mismo momento de hacerlo. No hay
ninguna lista de propiedades "a priori" que se pueda consultar.
> Pregunta aparte, ¿esta clase está documentada en xHarbour Language
> Reference Guide? Porque si es así, con ésta y con el resto de clases,
> merecería la pena adquirirlo.
Personalmente no sé si está documentada o no. Pero sí es cierto que esta
clase es original de xHarbour, no de Xailer.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder