dariodr   07-10-2024, 06:22
#1
Buenas Gamberos, tengo un codigo para crear un estructura en Gambas, como accedo a los elementos del struct.
Saludos.
Código:
' Gambas module file

Public Struct Persona
      nombre As String
      edad As Integer
      direccion As String
      telefono As String
   End Struct
   
Public datos As Persona   

Public Sub Main()   
   
   datos.nombre = "Dario"
   datos.edad = 55
   datos.direccion = "Valencia 172"
   datos.telefono = "479-0804"
   
   Print datos
      
End

         Dario Delgado Razuri
Siempre aprendiendo algo nuevo
Shell   07-10-2024, 10:50
#2
Hola Dario

Has definido la estructura y le has asignado valores a cada una de sus "propiedades"
Al igual que le asignas los valores a sus propiedades. Muestra su objeto y su propiedad.

Para mostrar el nombre por ejemplo.

Código:
'Muestro el nombre
print datos.nombre
'Muestro otro
print datos.loquesea

La definición de una estructura se remonta a Visual Basic cuando se definían tipos propios.
La creación de una clase es mejor que una estructura, la estructura es una forma rápida, breve,
carente de métodos.

Ejemplo con una clase. Creamos una clase en el árbol de proyectos y le asignamos un nombre:

Clase Persona:

Código:
Property nombre As String Use $nombre
Property edad As Integer Use $edad
Property direccion As String Use sdireccion
Property telefono As String Use stelefono

Public Sub _new(snombre As String, iedad As Integer, sdireccion As String, stelefono As String)

With Me
  .nombre = snombre
  .edad = iedad
  .direccion = sdireccion
  .telefono = stelefono
End With

End

En el formulario definimos un tipo Persona. Un objeto.
Creamos una instancia de la clase Persona y añadimos los valores en su constructor (New)

FMain:

Código:
Private dato As Persona

Public Sub Form_Open()

  dato = New Persona("Dario", 55, "Valencia 172", "479-0804")

 'Obtener el nombre
  Print dato.nombre

End

Hasta ahí se puede parecer a la estructura. Pero ahora imagina que añades métodos que hace que esa persona
pueda realizar ciertas funciones. Añado una serie de métodos a la clase persona.

Clase Persona:
Código:
....
Public Sub Saludar(saquien As String)
 
  Print "Hola " & saquien
 
End

Public Sub DecirMiNombre()
 
  Print "Me llamo " & Me.nombre
 
End

Modifico el formulario principal. En caso de ser un proyecto con formularios, se puede hacer lo mismo en uno de consola.
En vez de Form_Open() , es Main.

Código:
Public Sub Form_Open()

  dato = New Persona("Dario", 55, "Valencia 172", "479-0804")

  'Obtener el nombre
  Print dato.nombre

  'Llamando a los métodos del objeto tipo Persona o nueva instancia de la clase Persona
  dato.Saludar("Alberto")
  dato.DecirMiNombre()

End

Como ves en la programación orientada a objetos (clases, métodos). Usamos la palabra método, en la estructurada se usa función, procedimiento.

Saludos
Última modificación: 07-10-2024, 11:05 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   07-10-2024, 11:21
#3
A lo ya expuesto por Shell, añado esta página:

https://www.gambas-it.org/wiki/index.php...one_ed_uso

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.