![]() |
Consulta
Tengo un componente al que quiero asignarle un procedimiento a su evento OnClick y otro procedimiento diferente al evento OnDobleClick. Mi problema es que cuando hago doble clic, me ejecuta primero la rutina de OnClick y luego la de OnDobleClick. Hay alguna forma de evitar o controlar esto?
Agradezco su tiempo y dedicacion de antemano y felicito por este fabuloso foro. Saludos:) |
Hola
Me parece dificil, cuando haces click, pues eso, ya lo hiciste, ejecutara el evento, yo te aconsejaria que cambiaras el evento ondobleclick por otro. Saludos |
Hola eldiegofg
De lo mas asequible que he visto por ahí, me quedo con esto.
Espero que te sirva. Saludos |
Lo probaste ArdiIIa? pues a mi no me funciona... analizando un poco tiene entremezclado los conceptos de Caral, el Güindos envía un mensaje a la aplicacion de la "caida" de un boton (WM_?BUTTONDOWN), la VCL traduce mensaje como OnClick, cuando se hace doble click y la ventana creada con el estilo que acepta tal cosa (CS_DBLCLKS), recive el mensaje del doble click (WM_?BUTTONDBLCLK)... sin embargo el problema no es de la VCL del hermoso Delphi, si no del manejo de los mensajes del Güindos... talvez no es falla si no es algo real pues como dijo el amigo Caral "...cuando haces click, pues eso, ya lo hiciste..."
Veamos... |
Cita:
Que quieres que te diga cHackAll. Si no lo hubiera probado, no lo hubiera puesto, y si no funcionara, tampoco. Esta cuestión no es la primera que que se plantea, sino que ya es muy antigua. Como puedes ver puse "de lo mas asequible", que no la mas convincente... No se de que tipo de componente estamos hablando y que requerimientos tiene eldiegofg. Quizas, lo mas conveniente sería hacer una derivación del componente y controlar todos los mensajes que recibe a su WndProc, y ahí si se podría discernir si ha sido un Click o un DblClick.... ¿Merece la pena ....? Saludos |
Muchas gracias a todos por su tiempo y ayuda. Voy a probar lo propuesto por ArdiIIa a ver si me funciona y les cuento. El componente es un calendario sobre el cual estoy haciendo un sistema de reservas. Con el doble click doy de alta una nueva reserva, mientras que el click simple en una fecha lo utilizaba para mostrar (usando el Hint) informacion sobre la reservas de dicha fecha. Tal vez deberia hacer que el Hint se muestre al pasar el puntero del mouse sobre cada dia, pero soy nuevo en esto y sinceramente no se como hacer... Que dicen ustedes?
|
Cita:
Cita:
Saludos y haber que hacemos... |
Hola
ArdiIIa y cHackAll, ya os pasasteis de copas, a la casa. La verdad mejor no, vamos a la taberna, yo invito. Saludos, niños. |
Cita:
Cita:
En cuando a lo de capturar los mensajes del componente, bueno pues... en vez de andar "hackeando componentes", la prueba que hago es ir directamente a por su WndProc y el resultado es este....
Ciertamente, NO FUNCIONA. Pero para salir del paso, observarás que he cambiado lo que debería ser el botón izquierdo por el derecho, y de ese modo SI FUNCIONA... Aunque cambia la mecánica, podría ser una solución. Saludos. |
Leyendo a eldiegofg he de decir que tal vez a la vista de componente con lo que quieres utilizar el sistema, si utilizas el segundo sistema propuesto, el de WndProc, cuando efectúes un solo click, tal vez se reciban dos mensajes de un solo click...
Leyendo a Caral: Es que el día de hoy (Ayer), ha estado repledo de celebraciones y .... ya se sabe...:D:D |
|
Esto me suena.... parece un "Deja Vu"
|
Cita:
|
Ya la sabes, y parece que al interesado, no le interesa...:D
|
Cita:
|
Hola muchachos, como estan?? Perdon por la demora, no me asuste ni nada de eso:D:D. Es que no tengo conexion a Internet en mi casa y puedo entrar cuando voy a algun cybercafe. Ya consegui una solucion alternativa a mi problema, igual ahora veo que hay otro metodo que publicaron para solucionar este inconveniente. Lo voy a probar. Agradezco mucho su ayuda y espero que puedan seguir colaborando con gente nueva como yo y teniendo tanta paciencia :D. Saludos y muchas gracias
|
La franja horaria es GMT +2. Ahora son las 06:20:54. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi