FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como saber cuando se hace click sobre uno de los 120 Tpanel
Hola a tod@s.
La pregunta es sencilla, pero despues de estar probando lo poco que sé no he encontrado la respuesta, por eso pido ayuda. Tengo un total de 120 Tpanel en una Form, y necesito saber cuando se hace 'click' sobre uno en concreto de ello. No es sentato poner 120 eventos OnClick, uno para cada Tpanel, por lo que he tratado de capturar el TPanel utilizando la matriz de componentes y comprobando cual de ellos tenía el foco, pero parece ser que como los Tpanel no admiten el foco, no lo puedo detectar. Agradecería la ayuda de quien me pueda decir una forma de saber sobre cual de ellos se hace 'click' con el ratón. Me he propuesto hacer un programa que llevo intentando hacer hacer varios años, y que como no hay tiempo ni para rascarse aún no lo había empezado. Ahora me he propuesto dedicarle unas horas los fines de semana y con los años espero terminarlo, porque creo que no va a ser nada sencillo. A quien me pueda ayudar, le doy las gracias anticipadamente. Gracias anticipadas |
#2
|
||||
|
||||
puedes asignar un mismo evento a todos los paneles y usar la propiedad tag para saber que panel fue el que pulsaste algo así:
__________________
self.free; |
#3
|
||||
|
||||
Puedes usar el parámetro sender para acceder al panel sobre el que se hace el click. Todos los paneles pueden tener asociado el mismo evento:
__________________
"La recompensa de una buena acción está en haberla hecho" |
#4
|
|||
|
|||
Os agradezco a los dos vuestra ayuda, gracias a ello he podido continuar con lo que estoy programando.
Un saludo y muchas gracias de nuevo. |
#5
|
|||
|
|||
Lo que voy a hacer es lo siguiente:
// con esto se el nombre del Tpanel sobre el que se ha hecho click textop := (Sender As Tpanel).Name; Le quito al contenido de 'textop' la palabra 'Panel' ya que cada Tpanel se llama Panel1, Panel2, ect. con lo que sólo me quedará el número del Tpanel seleccionado, que irá desde el 1 al 120. Una vez tengo el número del Tpanel selccionado, podré saber la columna y la fila en la que está en la ficha, ya que he puesto 12 Tpanel por fila y tengo 10 filas. Gracias. - por si hay curiosidad por saber de qué va la historia: Hace varios años me propuse crear un programa para jugar a las 4 en raya contra el ordenador, con la salvedad de que el ordenador no sabrá casi nada cuando haga la primera partida y tendrá que ir aprendiendo conforme vaya juando. La idea creo que es demasiado ambiciosa, sobre todo porque no tengo tiempo ni de rascarme, pero me he propuesto los fines de semana dedicarle unas horas, y así hasta que lo termine. No tiene fecha de término de momento. |
#6
|
||||
|
||||
Ya que te has explicado mejor, te recomiendo usar Frames, es como si crearas un panel pero con las propiedades que tu quieras, en este caso, puedes añadirle dos propiedades Fila y columna, de esa forma no tienes que hacer virguerías para averiguarlo, solo tienes que consultar esas 2 propiedades (que obviamente habrás asignado cuando creas el frame).
Como ejemplo didáctico, este calendario con frames dinámico En lugar de 120 paneles, tendrás 120 frames. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Cita:
Número := (Sender As Tpanel).Tag;
__________________
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Simple: TPanel heredado que cambia de color con click. | kwanbis | Varios | 8 | 26-09-2007 13:39:19 |
Saber cuando un Form hace un Paint | José Luis Garcí | OOP | 13 | 17-09-2007 21:54:59 |
Como saber cuando BD fue desconectada? | Luis Alberto | Conexión con bases de datos | 2 | 24-01-2006 11:16:46 |
Como Saber cuando Reinician la PC???? | AGAG4 | Varios | 2 | 15-05-2005 08:07:31 |
Al dar doble click a mi aplicacion de delphi con paradox no hace nada | gaescoto | Tablas planas | 3 | 23-05-2003 09:44:35 |
|