FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Asignar a tbitbtn evento en tiempo de ejecucion
buenas tardes compañeros les explico un poco lo que quiero hacer, con un query estoy poniendo en tiempo de ejecucion bitbtn por cada categoria que encuentro en una bd, a estos bitbtn creados en tiempo de ejecucion quiero asignarles un evento, pero dicho evento necesito que lleve como parametro el id (lo obtengo del query) de cada categoria para lo cual uso el siguiente codigo
pero no logro hacer que compile, el motivo de llevar el id de la categoria es por que al ejecutar un click sobre el boton quiero que en otro tpanel mostrar las diferentes sub categorias, alguien me podria indicar como ligarle correctamente el evento en tiempo de ejecucion, y como deberia ser la declaracion del procedure que se encargara de mostrar las sub categorias, ahora lo tengo asi
gracias por cualquier comentario |
#2
|
||||
|
||||
Hola richy08.
Cita:
Pero se me ocurren dos modos de obtener el valor ID en el evento OnClick del TBitBtn. Uno del nombre que le asignas al TBitBtn (ya que incluís el ID) . Y el segundo, que creo más simple y seguro, asignando el valor ID a la propiedad Tag del BitBtn en la creación. Ejemplo:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-08-2011 a las 21:46:58. Razón: Agregar comentarios |
#3
|
|||
|
|||
Hola...
El detalle es que las propiedades que son eventos son de un tipo especial. En el caso del evento OnClick son del tipo TNotifyEvent el cual está declarado como:
Esto es, que a la propiedad OnClick solo le puedes asignar métodos de objeto con la misma firma que la declarada:
Para lo que tu necesitas, podrías usar la propiedad Tag de los componentes. Esta propiedad es de tipo entero y bien podría almacenar el valor del ID.
Esto es solo un ejemplo, pero podría ayudarte a resolver tu problema. Saludos... |
#4
|
||||
|
||||
gracias a los dos por sus consejos, probare para ver cual es la mejor forma de resolverlo
saludos |
#5
|
||||
|
||||
ok ya lo probe y si funciona parcialmente, digo parcialmente por que al presionar el boton me muestra ya los sub menus pero no entiendo por que desaparecen los botones de linea al ser presionados el evento que mando llamar en el onclick es este
alguna idea ??, mil gracias por su tiempo corrijo no desaparecen se cambian de posicion :S Última edición por richy08 fecha: 08-08-2011 a las 23:45:14. |
#6
|
||||
|
||||
ya encontre el detalle el codigo queda asi
saludos |
#7
|
|||
|
|||
Hola...
No se exactamente que deseas hacer, lo que si te puedo decir es que tu código está propenso a que tengas pérdidas de memoria (memory leak) al momento de cerrar la aplicación. Si no vas a guardar referencias a los botones fuera del método DoOnClick, te recomiendo que uses TBitBtn.Create(Self), para que al cerrar el formulario este destruya todos esos botones al momento de destruirse. Otro error que encuentro es que estás usando algunas variables con el mismo nombre de propiedades (Top, Left) y esto puede producirte varios errores lógicos. Saludos... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
borrar o liberar componente TBITBTN en tiempo de ejecucion | Lupita | Varios | 4 | 19-07-2008 00:11:44 |
Asignar Evento OnClick en forma dinamica en tiempo de ejecucion | delphi50jmb | OOP | 7 | 06-07-2008 03:46:02 |
Asignar evento OnDrawColumnCell en tiempo de ejecución | gluglu | OOP | 6 | 01-06-2007 13:14:58 |
Asignar evento Oncalcfield en tiempo de ejecucion | el_barto | Conexión con bases de datos | 5 | 06-09-2005 00:08:46 |
Asignar la ruta de tablas en tiempo de ejecucion | tortelini | Varios | 2 | 19-03-2005 12:13:53 |
|