Monitorizar los eventos generados por sprites en un DrawingArea - 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: Monitorizar los eventos generados por sprites en un DrawingArea (/thread-1613.html) |
Monitorizar los eventos generados por sprites en un DrawingArea - Shell - 20-02-2024 Buenas!. En este ejemplo. Lo que traté fue de que algo que ocurre en un formulario se informe en otro. En este caso son sprites/dibujos que rebotan por el área de un control DrawingArea y cuando llega a uno de los bordes del control DrawingArea se crea un evento, independiente del objeto. Cada uno crea los suyos. Los llamo rectángulos, pero son cuadrados. Así en el FMain tengo: Código: Const NUMDECUADRADOS As Integer = 3 El número de cuadrados es definible, a más cuadrados, mas información en el formulario de seguimiento. Cada uno de los objetos creados va a tener su observador. Código: For i As Integer = 0 To NUMDECUADRADOS - 1 El FMain se encarga de informar al formulario de seguimiento de lo que está ocurriendo. En la clase rectángulo: Código: Event Izquierdo(mensaje As String, indice As Integer) Y el lanzador de eventos. Código: Public Sub Actualizar() ( Me estoy dando cuenta que sobra el observador que tiene la propia clase ). No es sencillo estos temas. Nos vamos basando en ejemplos que hemos visto anteriormente. Y en el formulario que se muestra el seguimiento de los objetos. Se encuentra el procedimiento: MostrarMensaje(mensaje , indice) En el formulario de monitorización se crean una serie de contenedores que se van repitiendo según el número de sprites por el área de dibujo. El número del tag del contenedor en el que se muestra el mensaje tiene su propiedad Tag igual a 1. Por cada uno de los sprites se va mirando su estado y se muestra en el que contenedor que le corresponde. Código: Public Sub MostrarMensaje(mensaje As String, indice As Integer) Es un tema a estudiar, el generar eventos personalizados y controlarlos. Saludos |