FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Controlar eventos de una clase propia
Ante todo saludos a todos y gracias por leer mi duda.
Ésta es la siguiente, a ver si me explico bien: Tengo una clase en cuyo estado tengo una variable de tipo TImage, por ejemplo: miclase:Class private nombre:String; imagen:TImage; (...) De esta clase instanciaré un número indeterminado de objetos, los destruiré y demás en tiempo de ejecución. Mi problema es que necesito tratar los eventos propios de la clase TImage, hablando con mas propiedad, necesito mover la imagen por la pantalla con el ratón y para ello usaré los eventos onmousemove,up,down. Al crear el objeto, creo tambien la imagen de la siguiente manera: (...) Img:=TImage.Create(self); Img.Parent:=self; Img.Picture.Bitmap.PixelFormat:=pf24bit; img.Picture.LoadFromFile(imagen.bmp'); Img.Transparent:=true; img.Stretch:=true; img.Top:=350; img.Left:=300; img.Visible:=true; ¿Cómo hago para tratar los eventos de la variable TImage contenida en mi clase? ¿Tengo que crear métodos para esta clase que traten especificamente estos eventos?¿Se puede hacer?...estoy un poco perdido, la verdad... "minolles" de gracias.... |
#2
|
||||
|
||||
Crea un procedimiento con los mismos parámetros del evento y cuando creas un objeto le asignas al evento esa rutina.
y el procedimiento lo habrás definido en la parte privada de ésta forma, por ejemplo:
Para saber los parámetros del procedimiento ten en cuenta que deben ser los mismos del evento que quieres "capturar". Puedes asignar a varios eventos/componentes el mismo procedimiento.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
MUCHAS GRACIAS.....y pequeña duda añadida
¡¡Neftali macho, muchas gracias por tu inestimable ayuda!!
Ahora a raiz de esto me ha salido otra duda... Cuando hago el imagen:=TImage.create(self); al estar dentro de una clase mia, me dice que no es de tipo TComponent bla bla bla. Si hago que herede de ella, miclase(TComponent) , en el constructor, que tendrá esta pinta: constructor miclase.create(n:String); begin nombre:=n; im:=TImage.Create(self); (...) peta con un acces violation...pensé que tenía que llamar al constructor de la clase padre con inherited create(self) ...pero me sigue petando... ¿qué estoy haciendo mal, muy mal...rematadamente mal? "cienes de minolles" de gracias... |
#4
|
||||
|
||||
Simplemente pasa del tema. Dile que nadie se encargará de destruir el objeto pasandole el parámetro nil y asegurate de destruirlo tu a mano.
Última edición por Lepe fecha: 15-09-2004 a las 13:38:08. |
#5
|
|||
|
|||
Ok
¡¡¡Muchas gracias Lepe, funciona perfectamente!!!!
|
|
|
|