shape en tabla
Bueno, perdonadme si sigo preguntando cosas elementales:confused:.
Ya voy resolviendo cosillas del programa, mirando aqui y alla, pero todavia hay cosas que me fallan. He tenido que hacer un monton de cuadritos que representan habitaciones, cuando se pulsa una tiene que salir un procedimiento. El problema es que hice todos los cuadritos a mano con sus labels, pero como cada uno genera un eventoclick, son demasiados para hacerlos a mano, preguntaba si era posible meterlos en una tabla pero no se como puesto que todos estan creados manualmente. son del tipo form1.label1click......se podria meter el labelx en la tabla y en funcion del label que se pulse sacar algo asi como label[1]click? gracias |
No hace falta que crees un procedimiento para cada label, sino que puedes usar para todos los labels el mismo procedimiento. Por ejemplo haz que todos los labels apunten a label1click.
Dentro de este procedimiento tienes el parámetro Sender que te indica cual de los labels se ha pulsado realmente.
En el punto (1) la variable lbl apunta al label sobre el que se ha pulsado el Click, label1, label2,..... |
gracias. Tengo una duda respecto a eso, uno de los cuadros es este
el procedimiento que me mencionas donde debe de ir, ademas los labels estan renombrados asi lh101 y cambiara en funcion de la habitacion lh102... la verdad es que con vuestra ayuda estoy aprendiendo mucho, a ver si tambien puedo ayudar a otros. |
Ese procedimiento es el OnClick que estás programando. En tu ejemplo, si todos los OnClick de los Labels te apuntan a este prodecimiento podrías usarlo de esta forma:
Ahora queda el tema del control h101 que habría que hacer algo similar. Supongo que es un control que está relacionado con la etiqueta que se llama igual (o casi igual). Para ese caso se puede utilizar un FindComponent. ¿De qué tipo es este control?
|
gracias me estas ayudando mucho.
este control donde lo pongo, lo he puesto en initialization pero me da error en el componente FindComponent la verdad es que tambien me puede servir para cambiar el shape que he puesto al poner h101 se puede poner en vez de h101.brush.color tshape.brush.color? gracias de nuevo asi da gusto aprender.
|
El h101, h101 son Shapes...
Entonces quedaría así:
Te he puesto el código de memoria, pero debe funcionar, salvo que haya cometido algun error de sintaxis. Lo más importante es que lo entiendas. Ahora puedes hacer que todos los labels apunten a este OnClick; Si pulsas sobre lh101 funcionará con esa label y con el shape h101, si pulsas lh102 y el shape h102, y así sucesivamente... AÑADO: Una vez que funcione, faltarían las comprobaciones de posibles errores en el FindComponent, y el los CAST. Un saludo. |
gracias de nuevo. Error no da, pero sigue funcinando solo para el lh101, no habria que poner algo en algun otro sitio para que capturara el evento de cualquier label? porque solo ejecuta la procedure solo si se pulsa la lh101 para otras no entra.
|
Cita:
|
si, gracias, ya seleccione todos los label y les apunte para esa procedure, muchas gracias, funciono.
Una ultima cosa rapida, si quiero que el nom resultante de la procedure lo pueda visualizar con el dato almacenado en el form que aparece al pulsar el label, como se puede hacer, porque lo intente declarar como public y no me deja. gracias de nuevo |
En ese mismo procedimiento puedes acceder a todo el form:
|
perdon, me referia a visualizarlo en otro form, poder usar las variables y su contenido en otros forms.
gracias por las molestias |
Crea una propiedad en la parte pública de ese form. Desde el evento le asignas el valor y desde fuera (otros formularios) podrás consultar esa propiedad sin probblemas.
|
Muchas gracias, me ha funcionado.
cada vez aprendo mas...con vuestra ayuda y se me hace menos frustrante. gracias de nuevo yo sigo preguntando... |
La franja horaria es GMT +2. Ahora son las 21:35:47. |
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