Click en statusbar
Hola a todos de nuevo:
Se que la pregunta que voy a hacer es un poco "chorra" pero no encuentro solución... Quisiera saber como puedo saber en que panel del statusbar se hace click en un momento determinado para que, al hacer click en un panel determinado, salte un procedimiento. Muchas gracias de antemano |
Puede que exista un método mas sencillo, pero ahora mismo lo que se me ocurre es lo siguiente. En le evento OnMouseUp colocar esto:
|
Hola, quizá no sea tan chorra la pregunta. Yo al menos no lo he conseguido.
Yo lo que uso es lo siguiente: - Los panels tienen una anchura definida y fija. - El evento OnMouseDown te da la posición X e Y relativa al StatusBar donde se ha hecho en click. Yo normalmente gestiono el primer panel para ejecutar eventos, así que aquí te dejo un ejemplo como el que uso.
Si la X es mayor que la anchura del Panel 0 pues pertenece a otro panel y habría que hacer la comprobación, y no sería mucho más complicado. Espero te sirva. Saludos |
Muchas gracias a los dos, he tenido que optar por la solución de Bicho ya que la de Seone me da un error en
algo con la coma dentro del Point. |
Cita:
|
Me das una mano?
Yo tambien tengo la misma duda.... y vi el codigo de seoane, me pareció muy chevere, traté de hacer una función
pero al compilar me lanza este error: [Error] FrmMainSrc.pas(281): Undeclared identifier: 'SB_GETRECT' He añadido ComCtrls a los uses y buscando en la ayuda Windows SDK entiendo que este mensaje me devuelve el rectangulo del panel... pero hasta ahi... no se que corregir, añadir o lo que sea para compilar satisfactoriamente... saludos... el otro codigo (el de bicho) funciona tambien pero me da cosa cuando algo que a alguien le sale bien a mi me sale mal. |
Prueba cambiando SB_GETRECT por WM_USER + 10
|
O.k.... así siiii
Gracias de verdad, tu dato es muy útil...
la función entonces quedó así
Y para llamarla, dentro del procedimiento así:
Lo he probado también con el MouseMove y funciona de pelos... además no importa si uso la TSTatusBar o un descendiente. Nuevamente gracias. |
ahh por cieto...
El de bicho lo había hecho así...
Hago la salvedad que usando cualquiera de los dos códigos; NO tienes que agregar nada a Uses... :D El mismo compilador lo hace :D |
La franja horaria es GMT +2. Ahora son las 03:49:33. |
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