Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
[SOLUCIONADO] No Puedo Asignar Valores A Una Variable Declarada Como Un Struct
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje [SOLUCIONADO] No Puedo Asignar Valores A Una Variable Declarada Como Un Struct 
 
He tratado de buscar respuesta en el foro, y no la encuentro. Me temo que es algo muuuuuy tonto:

' gambas module file

Public Struct Fuente
  Nombre As String
  Tamano As Integer
  ColorFrente As Color
  ColorFondo As Color
End Struct

Public Struct Titulo
  Fuente As Fuente
  X As Integer
  Y As Integer
  Texto As String
  PuntoReferencia As String
End Struct

[...]

Public TituloX As Titulo
Public TituloY As Titulo

[...]

Public Sub Dibujar()

[...]
  
  With TituloX
    .Texto = "Aumentos"
    .Fuente.ColorFrente = &H00FF00
    .Fuente.Nombre = "Liberation Mono"
    .Fuente.Tamano = h0
  End With

[...]
  
End
 


Me aparece el error: «Objeto Nulo en GradicoDispersión:89.» —La línea 89 es la de «.Texto = "Aumentos"».—
 



 
última edición por Grandamakulo el Lunes, 31 Octobre 2016, 14:23; editado 1 vez 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: No Puedo Asignar Valores A Una Variable Declarada Como Un Struct 
 
Imagino que te tienes que añadir New


Public TituloX As New Titulo

Prueba y nos cuentas
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: No Puedo Asignar Valores A Una Variable Declarada Como Un Struct 
 
shordi escribió: [Ver mensaje]
Imagino que te tienes que añadir New


Public TituloX As New Titulo

Prueba y nos cuentas


¡¡Perfecto!! Solucionado. Ya sabía yo que era algo muy simple.
Muchas gracias.
 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [SOLUCIONADO] No Puedo Asignar Valores A Una Variable Declarada Como Un Struct 
 
PS.- Ahora el problema es con el tipo anidado «Fuente». Me da el mismo error, pero no lo puedo declarar como NEW. ¿De qué manera lo podría hacer?
 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [SOLUCIONADO] No Puedo Asignar Valores A Una Variable Declarada Como Un Struct 
 
Xtitulo.fiente=New fuentes
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: No Puedo Asignar Valores A Una Variable Declarada Como Un Struct 
 
Grandamakulo escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Imagino que te tienes que añadir New

Public TituloX As New Titulo


¡¡Perfecto!! Solucionado.

Cuando un objeto (como es en gambas una Estructura) es instanciado directamente con asignación de valores, o cuando tu tienes que pasarlo como su argumento a una función externa (por supuesto declarada con Extern), siempre debes crearlo - como ha dicho el nuestro amigo shordi - con la palabra llave New.

Si el objeto es instanciado por una función, no hace falta usar la palabra llave New.



shordi escribió: [Ver mensaje]
Xtitulo.fiente=New fuentes

Solo para añadir que, al usar una Estructura anidada, se puede utilizar tambien esta modalidad:
Public Struct Titulo
     Fuente As Struct Fuente
     X As Integer
     Y As Integer
     Texto As String
     PuntoReferencia As String
End

 



 
última edición por vuott el Lunes, 31 Octobre 2016, 15:49; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [SOLUCIONADO] No Puedo Asignar Valores A Una Variable Declarada Como Un Struct 
 
vuott escribió: [Ver mensaje]
Grandamakulo escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Imagino que te tienes que añadir New

Public TituloX As New Titulo


¡¡Perfecto!! Solucionado.

Cuando un objeto (como es en gambas una Estructura) es instanciado directamente con asignación de valores, o cuando tu tienes que pasarlo como su argumento a una función externa (por supuesto declarada con Extern), siempre debes crearlo - como ha dicho el nuestro amigo shordi - con la palabra llave New.

Si el objeto es instanciado por una función, no hace falta usar la palabra llave New.



shordi escribió: [Ver mensaje]
Xtitulo.fiente=New fuentes

Solo para añadir que, al usar una Estructura anidada, se puede utilizar tambien esta modalidad:
Public Struct Titulo
     Fuente As Struct Fuente
     X As Integer
     Y As Integer
     Texto As String
     PuntoReferencia As String
End


¡Muchas gracias a ambos!
 



 
Grandamakulo - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
10.00 10 10 1
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Variable Declarada Entre Parentesis Shell General 4 Sabado, 23 Febrero 2019, 21:34 Ver último mensaje
Shell
No hay nuevos mensajes Problema Para Acceder A Una Variable De Ti... v3ctor General 5 Domingo, 27 Noviembre 2016, 18:22 Ver último mensaje
v3ctor
No hay nuevos mensajes Problema Al Asignar Valores A Un Array (SO... whisper Aplicaciones/Fragmentos de Código 2 Martes, 13 Septiembre 2016, 03:04 Ver último mensaje
whisper
No hay nuevos mensajes Asignar La Salida De Un Comando A Una Vari... Shell Shell Scripting 2 Jueves, 11 May 2017, 21:56 Ver último mensaje
Shell
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
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
No puede descargar archivos
No puede publicar eventos en el calendario