Shell   21-01-2023, 12:08
#1
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
Archivos adjuntos
.gz
TestDrawingObjeto-0.0.1.tar.gz (Tamaño: 11.79 KB Descargas: 0)
Última modificación: 21-01-2023, 18:33 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   21-01-2023, 12:46
#2
Sin entrar al asunto un detalle: Gambas tiene su propia clase test, a ver si estás solapándola...

No podemos regresar
Shell   21-01-2023, 17:00
#3
(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.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   21-01-2023, 18:32
#4
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.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.