[SOLUCIONADO] No Puedo Asignar Valores A Una Variable Declarada Como Un Struct


Objetivo: [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
Objetivo: 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

Perfil MP  
Objetivo: 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.

Objetivo: 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?

Objetivo: Re: [SOLUCIONADO] No Puedo Asignar Valores A Una Variable Declarada Como Un Struct
Xtitulo.fiente=New fuentes

Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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!


Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.5725s (PHP: -82% SQL: 182%)
Consultas SQL: 47 - Debug off - GZIP Activado