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. |
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 |
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. |
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. |
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. |
De nada yapt, me alegro haberte sido de ayuda.
|
La franja horaria es GMT +2. Ahora son las 00:54:03. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi