(11-02-2023, 18:09)Shordi escribió: Ni idea, oiga. Lo mismo es un bug...
El problema es de quien hereda.
No debe heredar de DrawingArea, debe heredar de UserControl.
- El Timer no es necesario, no es algo en movimiento.
- El observador no es necesario. El objeto tipo DrawingArea tiene su propio manejador/manipulador de eventos definido.
Quedando de esta forma el código.
Código:
Export
Inherits UserControl
Public Const _Properties As String = "*,Radio=50,Colorprimerplano{Color}"
Property Radio As Integer Use hRadio''Radio del círculo
Property Colorprimerplano As Integer Use hColorprimerplano''Color del trazo del círculo
Private $hDrawingArea As DrawingArea
Public Sub _new()
$hDrawingArea = New DrawingArea(Me) As "DrawingArea"
With $hDrawingArea
.W = Me.W
.H = Me.H
.Expand = True
End With
Me.radio = 50
End
Public Sub DrawingArea_Draw()
Paint.LineWidth = 2
Paint.Arc(Me.W / 2, Me.H / 2, hRadio)
Paint.Background = hColorprimerplano
Paint.Stroke
End
En cuanto al color por defecto, siempre es negro. Si te fijas controles como ColorButton, su propiedad Value no tiene un valor por defecto.
¿ Y cómo lo resolví ?. Pues ya te puedes hacer una idea, aprendiendo del código fuente de Gambas.
P.d .¿ Conoces la clase Style ?. Si no es así, como trasteas más con controles quizás te interese conocerla.
Clase Style
Por cierto al heredar de UserControl en la lista de propiedades de control en el editor ahora se muestran ordenadas alfabéticamente y no salen abajo.
Saludos