Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Jugando Con Static
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Jugando Con Static 
 
Hola!.

Ando creando un juego pero entre pruebas y pruebas , me derivo a otras cosas y me pongo a verlas
y ver que hacen.

Este es un ejemplo de POO. En el tenemos 5 personajes. Ando haciendo cambios y viendo observadores
y probando cosas.

En este ejemplo llenamos un HPanel con 5 ToolButtons.
Cada ToolButton tiene su dibujo,es el mismo pero cambiado de color.
Tenemos una clase llamada político_old.

"La idea es en principio es que por cada botón aparezca el dibujo y un numero distinto del 0 al 4"

El código fuente de la clase politico_old (Esta modificada)
Inherits ToolButton

Private $imagen As Picture
Private colorespolitico As New String[]
Private ruta As String = ""
Private contador As Integer

Public Sub _new()
  
  CrearColores()
  $imagen = Picture[colorespolitico[Int(Rnd(0, colorespolitico.Count))]]
  Dimensionar()
   With Me
     .Picture = $imagen
    .Width = 75
    .Height = 75
    .Border = Border.Sunken
   .Text = CStr(contador)
   End With  
  contador += 1
End

Public Sub Dimensionar()
  With Me
      .Picture = $imagen
      .Width = 75
      .Height = 75
      .Border = Border.Sunken
  End With  
End



Public Sub CrearColores()
  Dim nomimagen As String
  
  For Each nomimagen In Dir(ruta, "peon*.png")
    colorespolitico.Add(nomimagen)
  Next
  
End
 


Nos presenta la siguiente imagen.

 ejemplo1

Ups!. Todos a 0. ¿ Que ha ocurrido aquí ?. Pero si le dije que sumase en new...

Ahora fijaros. Cambiemos esta linea:
....
Private contador As Integer
....
 


Por esta otra:

Static Private contador As Integer
 


Y ahora...

 ejemplo2

Aja. ¿ Que le ha ocurrido al valor contador ?.


Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Miercoles, 15 May 2013, 20:10; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Jugando Con Static 
 
Citar:
¿ Que le ha ocurrido al valor contador ?.


Es como se se hubiera convertido en una variable global... osea con static le estas diciendo que solo solo haya una dirección de memoria que se le asigne a esa variable y que es esa la que van a acceder los distintos métodos.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Jugando Con Static 
 
Gracias Julio.

Este mensaje se había quedado en el tintero.
Menos mal que están los mensaje que aun no se han leído para recordarlo.

Era la primera vez que usaba Static.Si no es por un poco de POO jamas le hubiese
encontrado uso.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Jugando Con Static 
 
Esto de Static, lo he leido como una forma de implementar el patrón Singleton  http://es.wikipedia.org/wiki/Singleton (osea que solo haya solo se pueda instanciar un objeto de una clase concreta).

Por ejemplo la clase gb.chart, esta hecha asi, solo podemos crear un gráfico en el programa ya que esta hecho asi su programación interna, la funciones son static... por lo menos recuerdo ver su código así... eso hacia imposible que en un mismo formulario se podia crear varias graficas con gb.chart.... (por lo menos eso pasaba antes, hace más de un año y con gambas2, ahora puede que sea diferente...).

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Jugando Con Static 
 
Esta buen la info! muy bueno el ejemplo.



Para implementar el patrón Singleton existe en gambas la etiqueta Create Private
Fue implementada justamente para eso. Esta bueno tener en cuenta Create Static también. Ambas son muy útiles.
 



 
última edición por sebikul el Lunes, 20 May 2013, 03:58; editado 1 vez 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Función O Procedimiento Static, Tipo Static Shell General 15 Martes, 14 Febrero 2012, 02:29 Ver último mensaje
fabianfv
No hay nuevos mensajes Jugando Con Tablas Shell General 1 Sabado, 30 Junio 2012, 11:41 Ver último mensaje
jsbsan
No hay nuevos mensajes Jugando Con Los Colores. Concurso Jueguito... shordi General 10 Martes, 04 Marzo 2014, 17:43 Ver último mensaje
shordi
No hay nuevos mensajes Static? Que Significa (mas Explicito) En V... mckaygerhard General 2 Lunes, 19 Junio 2017, 20:44 Ver último mensaje
mckaygerhard
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron