Como se dispara el Evento Draw en el siguiente ejemplo? - AlfredoSC - 22-01-2022
Hola:
Estoy en el tema de poner un DrawingArea en un proyecto, en el cual quiero dibujar algunas funciones trigonométricas. Así que mirando en la web encontré este ejemplo, el cual no explica nada sobre cómo es que "corre solo". No requiere, según el ejemplo, de hacer click en ningún botón. Así no me lleva a comprender cómo funciona DrawingArea. Por favor si alguien me puede decir como aplicarlo?
Código: ' Gambas class file
Public activado As Boolean
Public Sub _new()
End
Public Sub Form_Open()
ScrollArea1.ResizeContents(400, 400)
ScrollArea1.Refresh
ScrollArea1.Shadow = True 'sombra
End
Public Sub ScrollArea1_Draw()
Paint.DrawText("hola mundo", 10 - ScrollArea1.ScrollX, 10 - ScrollArea1.Scrolly)
Paint.DrawText("hola mundo", 100 - ScrollArea1.Scrollx, 100 - ScrollArea1.Scrolly, 200, 500)
Paint.DrawRichText("<h1>Hola <font color=\"red\"> Mundo</font></h1>", 110 - ScrollArea1.ScrollX, 130 - ScrollArea1.Scrolly, 200, 200)
Paint.MoveTo(100 - ScrollArea1.ScrollX, 100 - ScrollArea1.Scrolly)
Paint.LineTo(10 - ScrollArea1.ScrollX, 39 - ScrollArea1.Scrolly)
Paint.LineWidth = 3
Paint.Rectangle(3 - ScrollArea1.ScrollX, 3 - ScrollArea1.Scrolly, 10, 100)
Paint.Stroke()
Paint.MoveTo(100 - ScrollArea1.ScrollX, 100 - ScrollArea1.Scrolly)
Paint.LineTo(10 - ScrollArea1.ScrollX, 139 - ScrollArea1.Scrolly)
Paint.LineWidth = 1
Paint.Rectangle(3 - ScrollArea1.ScrollX, 3 - ScrollArea1.Scrolly, 10, 100)
Paint.Stroke()
Paint.DrawText("Gambas3", 300 - ScrollArea1.Scrollx, 200 - ScrollArea1.Scrolly, 200, 500)
Paint.DrawRichText("<h1><font color=\"blue\"> Gambas3</font></h1>", 110 - ScrollArea1.ScrollX, 230 - ScrollArea1.Scrolly, 200, 200)
End
Public Sub DrawingArea1_Draw()
Paint.DrawText("hola mundo", 10, 10)
Paint.DrawText("hola mundo", 100, 100, 200, 500)
Paint.DrawRichText("<h1>Hola <font color=\"red\"> Mundo</font></h1>", 110, 130, 200, 200)
Paint.MoveTo(100, 100)
Paint.LineTo(10, 39)
Paint.LineWidth = 3
Paint.Rectangle(3, 3, 10, 100)
Paint.Stroke()
Paint.MoveTo(100, 100)
Paint.LineTo(10, 139)
Paint.LineWidth = 1
Paint.Rectangle(3, 3, 10, 100)
Paint.Stroke()
End
Gracias....
RE: Como se dispara el Evento Draw en el siguiente ejemplo? - cogier - 23-01-2022
Echa un vistazo a este código.
RE: Como se dispara el Evento Draw en el siguiente ejemplo? - vuott - 24-01-2022
En resumidas cuentas, el Evento "_Draw()" de la clase "DrawingArea" se eleva automáticamente:
Código: Public Sub DrawingArea1_Draw()
Print "Test"
End
Para levantar arbitrariamente el Evento "_Draw()" es necesario invocar el Método ". Refresh" de la Clase "DrawingArea":
Código: Private i As Integer
Private pie As Boolean
Public Sub DrawingArea1_Draw()
With Paint
.Brush = .Color(i)
.Arc(200, 200, 100.0, Rad(0), Rad(360), pie)
.Stroke
.End
End With
End
Public Sub Button1_Click()
i = Color.Red
pie = True
DrawingArea1.Refresh
End
|