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


Subject: [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"».—

Last edited by Grandamakulo on Monday, 31 October 2016, 14:23; edited 1 time in total
Subject: 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

Profile PM  
Subject: 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.

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

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

Profile PM  
Subject: 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

Last edited by vuott on Monday, 31 October 2016, 15:49; edited 3 times in total
Profile PM  
Subject: 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!


Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1428s (PHP: -44% SQL: 144%)
SQL queries: 24 - Debug Off - GZIP Enabled