Hola.
He intentado declarar tres variables globales y no doy con la tecla.
Donde y como debo declarar una variable global?
Desde ya muchas gracias
Hola Javier,
Lo ms habitual es crear un mdulo y aadirle las variables que quieras hacer globales. Esas propiedades pueden ser globales (public, accesibles directamente desde cualquier parte de la aplicacin), protegidas (protected, accesibles desde cualquier parte de la aplicacin pero hay que especificar el mdulo al que pertenecen al usarlas: miModulo.miVariable) o privadas (slo accesibles desde el mdulo en el que se encuentran).
Puedes poner variables pblicas en la clase App y en ventanas tambin, pero lo ms habitual es crear un mdulo para ellas.
Julen
Ok. Pruebo y comento, muchas gracias Julen
puse una constante en el modulo con un valor especifico y funciono.
Debe realizar que constant no se puede modifiar como la variables. Pero el principio es bueno. Alguna typo de proprietad se puede poner en un Modulo.
Yo evito como la peste el uso de variables globales en un entorno 100% orientado al objeto. Xojo es un lenguaje OOP. El uso de variables globales es sintomtico de no estar familiarizado con un entorno OOP ( usuarios que vienen de procedural, como VB6). Esto sin absolutamente acritud: la programacin orientada al objeto es un cambio significativo y hay quien se siente intimidado e incluso lo rechaza, pensando que es una forma de programacin compleja. Y todo lo contrario…
Yo te recomiendo que uses una clase en lugar de variable. Es la base de la OOP. Puedes emular una variable global creando una clase y creando una variable shared. No slo tienes la misma funcionalidad, sino que adems de accedes a esa variable sabes el porqu por el el nombre de la clase. Si quiero acceder a la variable Impresoras / Animales / Pedidos / Vidas ( ad infinitum ) uso la clase para saber qu cosa se refiere o pregunto / cambio. Es bastante ms prctico que usar esto:
Global VarGlobaljcxs34 = 6.
Eso es anti OOP y lo realmente alucinante de Xojo es que es muy muy OOP, y puedes beneficiarte de esto. Es algo que he creo expliqu el primer da de clase a mis alumnos de Xojo. Xojo es muchsimo mejor que VB6, no es un sustituto, es realmente una maravilla de lenguaje: OOP con la facilidad de VB6. Y eso… tiende a despistar a muchos que vienen de VB6 y quieren usar Xojo. Vale que puedes, pero te pierdes lo mejor.
Ah va un ejemplo muy sencillo…
https://www.dropbox.com/sh/6ixfvjhzrpq8u8k/AAAGhHC1pCbIzukaMqFx7qI6a?dl=0
Amando
Pincha aqu para bajarte un sencillo ejemplo
Edito al mensaje anterior:
Si necesitas si o si, usar una variable global, yo suelo meterlas dentro de App ( como es el ejemplo de una Random )
P.S: El da que pueda editar mis mensajes… Xojo, por favor, haced algo con esto de la edicin de mensajes. Xojo: Do I need to create a feedback case is order to just edit my messages??? Sigh…
Muchas gracias por tu ejemplo, me funciono de primera.
Gracias
Una consulta con las varaibles globales, puede ser que al hacer una web app, y se declare una variable global, sta quede cargada para otros usuarios que estn ingresando, si es asi, solo se soluciona manejandola como objeto, o es un tema de sessin de usuarios, por lo que queda cargada. Gracias!
Variables globales en multi usuario Web son accesible para todas la sesiones. Mejor es de emplear propiedades de sesión que son específicas de cada usuario.
También las variables estáticas se compartirán con todos los usuarios. Mejor es de emplear una propiedad de la webpage or webcontainer, porque son instancias de la sesión, entonces específicas del usuario.