FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Redefinir eventos de controles "delegados"
Hola a todos, quiero hacer lo siguiente (a ver si consigo explicarme):
Tengo una clase que hace un trabajo X. Ahora quiero hacer una clase que utiliza esta primera y que sirva de interfaz entre la primera clase y los propios componentes del form. Para ello quiero utilizar los eventos onKeyUp de los TEdit. Y con cada cambio de cada uno de ellos, afectar a la propiedad Text de los demas. Algo así (aunque quizá lo que persigo no sea muy importante finalmente):
Y la segunda:
El tema es, como hago para crear mi propio OnKeyUp para cada Edit1, 2 y 3, y que siga ejecutandose el onKeyUp del propio componente dentro del formulario (después/antes de mi propio OnKeyUp). He cambiado la linea marcada como erronea, de todas las formas (razonables) que se me ocurren... No se si me explico. Si hay alguna duda, trato de aclararla. Gracias. |
#2
|
||||
|
||||
Creo que sería más sencillo si trabajaras con clases derivadas de TEdit. En estas clases redefines su evento DoKeyUp o KeyUp (no recuerdo bien) y haces lo que quieras hacer antes o después de llamar a inherited. De esta manera no te tienes que meter con la llamada a los eventos pues eso ya lo hace la clase original.
Dicho de otra manera: cuando extiendes el comportamiento de una clase, es más adecuado hacerlo mediante la redefinición de métodos virtuales que mediante la reasignación de eventos. // Saludos |
#3
|
||||
|
||||
El problema de redefinir la clase TEdit es que, entiendo (en mi más completa ignorancia) que debo crear un NUEVO componente visual y poner ese componente en el form.
Digo esto porque he intentado hacerlo (sin crear ese otro componente visual), pero al asignar el TEdit del form al TMiEdit de la clase "intermedia", me dá este error:
Incompatible types: TMiEdit and TEdit Entiendo que es por que TMiEdit desciende de TEdit y ........ Vamos... que me he atorado aquí.... Gracias. Última edición por yapt fecha: 20-03-2010 a las 19:48:07. |
#4
|
||||
|
||||
Hola yapt.
Quizá hayas leído este artículo, pero si no, pegale una leida por ahí te tira una nueva idea. http://www.marteens.com/trick46.htm Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
Fantastico ecfisa... funciona perfecto.
Habia leido sobre las clases interpuestas... pero no las había relacionado con este tema. Se me habían escapado por completo. Esta cabeza mía ya no es la que era... Muchas gracias. |
#6
|
||||
|
||||
De nada yapt, me alegro haberte sido de ayuda.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
El programa se queda "colgado" mientras copia y luego "despierta" | NeWsP | OOP | 5 | 10-03-2010 22:05:40 |
"OBJECT OR CLASS TYPE REQUIRED" en "APPLICATION EXENAME" | Xavierator | Varios | 3 | 27-10-2008 09:09:50 |
Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
Ventana MDI, "Siempre visible" y "Pantalla completa" | ixMike | API de Windows | 7 | 11-04-2007 18:36:55 |
"ChequeaEsto" elegido el futuro "Killer CLubDelphi" | mamcx | Noticias | 51 | 31-10-2006 20:56:32 |
|