Comunidad Gambas-es
Mensaje de error. No hay suficientes argumentos. SOLUCIONADO - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: Mensaje de error. No hay suficientes argumentos. SOLUCIONADO (/thread-1181.html)



Mensaje de error. No hay suficientes argumentos. SOLUCIONADO - Shell - 21-01-2023

Buenas!.

Tengo ese error con un ejemplo sencillo y no sé el motivo.

Pizarra es un control DrawingArea que existe en el formulario.

Código:
Private untest As Test

Public Sub Form_Open()

  untest = New Test(Pizarra)

End

Y la clase Test.

Código:
Property areadibujo As DrawingArea Use hareadibujo
Private suobservador As New Observer

Public Sub _new(darea As DrawingArea)

  Me.areadibujo = darea
  suobservador = New Observer(Me.areadibujo) As "Vigilante"

End


Public Sub Vigilante_Draw()

  DibujarCuadrado()

End

Public Sub DibujarCuadrado()

  Paint.Background = Color.White
  Paint.Rectangle(128, 128, 40, 40)
  Paint.Fill

End

Cuando elimino el observador ademas de no hacer nada el ejemplo, deja de dar el error.
La clase Test quedaría así, no haría nada.

Código:
Property areadibujo As DrawingArea Use hareadibujo
'Private suobservador As New Observer

Public Sub _new(darea As DrawingArea)

  Me.areadibujo = darea
  'suobservador = New Observer(Me.areadibujo) As "Vigilante"

End


' Public Sub Vigilante_Draw()
'
'   DibujarCuadrado()
'
' End

Public Sub DibujarCuadrado()

  Paint.Background = Color.White
  Paint.Rectangle(128, 128, 40, 40)
  Paint.Fill

End

Entiendo lo que dice, con falta de argumentos, pero es que son los que son. Uno. Confused

Saludos


RE: Mensaje de error. No hay suficientes argumentos - Shordi - 21-01-2023

Sin entrar al asunto un detalle: Gambas tiene su propia clase test, a ver si estás solapándola...


RE: Mensaje de error. No hay suficientes argumentos - Shell - 21-01-2023

(21-01-2023, 12:46)Shordi escribió: Sin entrar al asunto un detalle: Gambas tiene su propia clase test, a ver si estás solapándola...

Antes había probado con otro nombres y es el mismo resultado. Esto es un ejemplo recortado de lo que estoy haciendo para reproducir
el mismo error.  Lo cierto es que hice ejemplos más complejos que este y usando en la clase una propiedad tipo DrawingArea y no dio este error.

Y es que me extraña que sea por la versión nueva de Gambas ya que me funcionaron ejemplo más complejos que uso algo parecido.

Ademas también probé una cosa que no habría hecho normalmente nunca, llamar la clase igual que el proyecto y gambas no se quejó.
Voy a ver si encuentro algo parecido en la lista internacional, al menos el error aunque no sea el mismo ejemplo.


RE: Mensaje de error. No hay suficientes argumentos - Shell - 21-01-2023

El error se encuentra en la clase. En la declaración del observador.

Código:
Private suobservador As New Observer

Se debe cambiar a:

Código:
Private suobservador As Observer

Un despiste. Sad

Así que el observador esperaba un argumento que no tenía al usar New al principio del código.