Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Constantes en el IDE. ¿Alguien sabe hacer ésto de otra forma?
#1

Pongamos que quieres un control que sea un TextArea con una propiedad añadida que indique el tipo de Texto, por decir algo.

Lo llamaremos "Nota" y sería algo así:

GAMBAS
  1.  
  2.  
  3. Public Const _Properties As String = "*,Type{TextTypes.*}=Nota"
  4. Public Const _Group As String = "Form"
  5. Public Const _Similar As String = "TextArea"
  6. Public Const _DrawWith As String = "TextArea"
  7.  
  8. Property Type As Integer Use $type = 0



Para que el IDE te ofrezca los posibles valores de IDE creas otra clase exportada llamada "TextTypes":
GAMBAS
  1. ' Gambas class file
  2.  
  3.  
  4. Public Const Confidential As Integer = 3



Y todo funciona guay:
[Imagen: NdmpqMi.png]

Sin embargo, me suena que se podía hacer de otra manera resolviéndolo todo en la clase principal sin tener que declarar la segunda clase que contiene las constantes. ¿Lo he soñado?¿Alguien sabe cómo hacerlo?

Adjunto el micro proyecto para pruebas.

Saludos.


Archivos adjuntos
.gz tipos-0.0.1.tar.gz Tamaño: 11.94 KB  Descargas: 4

No podemos regresar
    ¡Gracias!
#2

Cita:Sin embargo, me suena que se podía hacer de otra manera resolviéndolo todo en la clase principal sin tener que declarar la segunda clase que contiene las constantes. ¿Lo he soñado?¿Alguien sabe cómo hacerlo?

¿ Te refieres a la declaración de una enumeración ?. Varias constantes, que en vez de ser números se le pone nombres para hacerlo más fácil.

GAMBAS
  1. Public Enum lunes, martes, miercoles, jueves, viernes, sabado, domingo



Otro ejemplo con clases.

Main:

GAMBAS
  1. Public Sub Main()
  2.  
  3.   Dim cerveza As BebidaCerveza
  4.  
  5.   cerveza = New BebidaCerveza(BebidaCerveza.GUINNESS, Vaso.JARRA)
  6.   cerveza.servir
  7.  



Clase BebidaCerveza:

GAMBAS
  1. Public Enum AMBAR = 1, GUINNESS = 2, HEINEKEN = 3
  2.  
  3. Private $unvaso As Vaso
  4.  
  5. Public Sub _new(marca As Integer, medida As Integer)
  6.  
  7.   $marca = marca
  8.   smarca = Choose(marca, "AMBAR", "GUINNESS", "HEINEKEN")
  9.   $unvaso = New Vaso(medida)
  10.  
  11.  
  12. Public Sub servir()
  13.  
  14.   Print "Sirviendo " & $unvaso.getCentimetrosCubicos() & " cc. de cerveza " & smarca
  15.  



Clase Vaso:

GAMBAS
  1. Public Enum JARRA = 500, TUBO = 250, TERCIO = 333, CANA = 200
  2.  
  3.  
  4. Public Sub _new(cc As Integer)
  5.  
  6.   $cc = cc
  7.  
  8.  
  9.  
  10. Public Sub getCentimetrosCubicos() As Integer
  11.  
  12.   Return $cc
  13.  



Salida:
 
Cita: 
Sirviendo 500 cc. de cerveza GUINNESS

Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#3

¿Pero así se consigue el el IDE te lo ofrezca en el desplegable de la propiedad? Es lo que busco.

No podemos regresar
    ¡Gracias!
#4

(10-03-2023, 21:17)Shordi escribió:  ¿Pero así se consigue el el IDE te lo ofrezca en el desplegable de la propiedad? Es lo que busco.

No lo he llevado a tu ejemplo, pero es un grupo de constantes y "públicas"

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#5

Algo así ?.

[Imagen: 3ObJiUH.png]

GAMBAS
  1.  
  2.  
  3. 'Public Const _Properties As String = "*,Type{TextTypes.*}=Nota"
  4. Public Const _Properties As String = "*,Type{Nota.Nota;Aviso;Memo;Confidential}=Nota"
  5. Public Const _Group As String = "Form"
  6. Public Const _Similar As String = "TextArea"
  7. Public Const _DrawWith As String = "TextArea"
  8.  
  9. Public Const Confidential As Integer = 3
  10.  
  11. Property Type As Integer Use $type = 0



Ahora con Enum.

GAMBAS
  1.  
  2.  
  3. Public Enum Nota, Aviso, Memo, Confidential
  4.  
  5. 'Public Const _Properties As String = "*,Type{TextTypes.*}=Nota"
  6. Public Const _Properties As String = "*,Type{Nota.Nota;Aviso;Memo;Confidential}=Nota"
  7. Public Const _Group As String = "Form"
  8. Public Const _Similar As String = "TextArea"
  9. Public Const _DrawWith As String = "TextArea"
  10.  
  11. 'Public Const Nota As Integer = 0
  12. 'Public Const Aviso As Integer = 1
  13. 'Public Const Memo As Integer = 2
  14. 'Public Const Confidential As Integer = 3
  15.  
  16. Property Type As Integer Use $type = 0



"El buen perfume en frasco pequeño se vende"
[-] Los siguientes 1 usuarios dice gracias a Shell por este post:
  • tincho
    ¡Gracias!
#6

No lo sé. Eso lo reconoce el editor pero no sé si el IDE también. El lunes lo miro, que este finde no puedo acercarme al ordenador.

Saludos

No podemos regresar
    ¡Gracias!
#7

(11-03-2023, 01:26)Shordi escribió:  No lo sé. Eso lo reconoce el editor pero no sé si el IDE también. El lunes lo miro, que este finde no puedo acercarme al ordenador.

Pues no sé que será lo de abajo.  Rolleyes

[Imagen: rGqi6Bz.png]

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#8

He tenido 10 minutos libres y lo he comprobado: No funciona, tron.

No subas el código, sube el proyecto que estés usando entero, a ver si es algo de los componentes u qué...

Saludos

No podemos regresar
    ¡Gracias!
#9

Shordi: Yo aplique esos cambios y funciona en mi IDE. El código de Shell esta correcto.
https://imgur.com/hBbJnXc

Adjunto el proyecto.


Archivos adjuntos
.gz tipos-0.0.2.tar.gz Tamaño: 11.87 KB  Descargas: 1

1 Saludo.
    ¡Gracias!
#10

(11-03-2023, 14:32)tincho escribió:  Shordi: Yo aplique esos cambios y funciona en mi IDE. El código de Shell esta correcto.

Genial, es la mejor forma de verlo con el vídeo que hiciste.

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)