Shell 21-01-2023, 12:08
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)
Shell 20-01-2023, 20:10
Buenas!.

Código:

Código:
Const PTATOEURO As Float = 166.386

Public Sub Form_Open()

  Me.Title = "Conversor de ptas a euros"

End

Public Sub vlbPesetas_KeyPress()

  If Key.code = Key.enter Or Key.code = Key.Return Then
    'Si se ha pulsado la tecla enter o la tecla return
    If vlbPesetas.Value > 0 Then
      'Si el valor es mayor que cero realizar la conversión
      lblEuros.Text = Str(Round(vlbPesetas.Value / PTATOEURO, -2)) & " €"
    Else
      'En caso contrario poner el valor a cero
      vlbPesetas.Value = 0
    Endif
  Endif

End

Os muestro el problema. Cuando escribo una cantidad en el valuebox por primera vez.

[Imagen: LD20xZ3.png]

Pero si quiero realizar otra operación e intento escribir en el valuebox...
Por ejemplo cuanto son 60 pesetas en euros, ocurre esto con el código de arriba.

[Imagen: KMJWl4A.png]

Entonces tuve que usar los dos eventos. Keypress y KeyRelease.

Código:
Const PTATOEURO As Float = 166.386

Private conversion As Boolean

Public Sub Form_Open()

  Me.Title = "Conversor de ptas a euros"

End

Public Sub vlbPesetas_KeyRelease()

  If Key.code = Key.enter Or Key.code = Key.Return Then
    'Si se ha levantado la tecla enter o la tecla return
    If vlbPesetas.Value > 0 Then
      'Si el valor es mayor que cero realizar la conversión
      lblEuros.Text = Str(Round(vlbPesetas.Value / PTATOEURO, -2)) & " €"
      'Se ha realizado la conversión
      conversion = True
    Else
      vlbPesetas.Value = 0
    Endif
  Endif

End

Public Sub vlbPesetas_KeyPress()

  'Al volver a pulsar una tecla
  'Se comprueba si se ha realizado la conversión
  If conversion Then
    'Ponemos el valor del valuebox a cero
    vlbPesetas.Value = 0
    'La conversión aun no se ha realizado
    conversion = False
  Endif

End

De este problema salió el ejemplo del TextBox. En parte es casi el mismo problema.
En el caso del valuebox no me interesaba que se borrase la cantidad en euros al pulsar la tecla Return o Enter,
quería que se mostrase y quedase ahí para luego al volver a escribir una nueva cantidad, pulsando una tecla
se borrase la cantidad anterior y pudiera escribir la nueva. Y así continuamente.

¿ Es posible hacerlo de otra forma ?. ¿ Es la forma correcta usando los dos eventos ?.

Añadí hasta un Timer, para que pasado un tiempo se borrase la cantidad. Pero no fue necesario.

En parte lo curioso del código es que parece invertido. Keypress no comprueba la tecla pulsada.
Y en este caso es después de haberla pulsado, con KeyRelease.


Saludos
Archivos adjuntos
.gz
ConvertirPesetasAEurosGrafico-0.0.1.tar.gz (Tamaño: 12.18 KB Descargas: 2)
Shordi 20-01-2023, 11:56
No me reconoce la contraseña de siempre. ¿Os pasa a vosotros?
Me da en la nariz que puede ser algo relacionado con esos cambios que están haciendo en el servidor de gambaswiki...

Saludos
Páginas (557):    1 219 220 221 222 223 557   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 285
Último miembro: XLRG
Temas del foro: 1,720
Mensajes del foro: 8,934
Últimos temas
Archivos .ods
Foro: General
Último mensaje por: tincho, 01-07-2025, 18:54
Respuestas: 8 - Vistas: 182
Publicidad
Foro: Sobre gambas-es.org
Último mensaje por: tincho, 01-07-2025, 18:48
Respuestas: 6 - Vistas: 315
Web con gambas, a ver si ...
Foro: WebApp/WebForms
Último mensaje por: tincho, 01-07-2025, 17:47
Respuestas: 41 - Vistas: 32,505
Un sistema de ayudas cont...
Foro: Videotutoriales
Último mensaje por: guizans, 22-06-2025, 19:55
Respuestas: 3 - Vistas: 287
Crear una aplicación para...
Foro: Bases de Datos
Último mensaje por: Shell, 29-05-2025, 20:11
Respuestas: 11 - Vistas: 1,447
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.