Nuevo componente con lista desplegable
Buenas foro!
Estoy creando un componente que tendrá acceso a base de datos y me gustaría saber ¿cómo conseguir que una propiedad del componente sea una lista desplegable? Estos valores son creados dinámicamente ya que pertenecen a una base de datos. Básicamente sería igual que por ejemplo un componente TTable o TStoredProc, los cuales muestran una lista desplegable para seleccionar el deseado. He estado navegando por el código fuente de la VCL pero no encuentro la solución ya que esas mismas propiedades están definidas de la manera más normal
Aunque el método Set contiene código que no entiendo, todavía no sé cómo realizar lo de que aparezca la lista. ¿Es quizás algo relativo a alguna interfaz? ¿Algún editor de propiedades? Gracias de antemano! |
Cita:
Cita:
Cita:
Aquí tienes un manual para creación de componentes; Revísalo a ver si te aclara algunas dudas. Aquí te dejo otro, bastante más completo. |
Perdona Neftali, pero no terminé de explicarme bien :P
Con lo de la lista desplegable me refería a que apareciese en el Object Inspector en tiempo de diseño. Y aún a parte de este componente que estoy haciendo me gustaría saber como se programa esta lista, ya que se puede encontrar también en la propiedad ImageIndex que tiene un TMenuItem, por ejemplo. Intento explicarme: Creamos un TMainMenu, y lo relacionamos con un TImageList. Al añadir un TMenuItem, en su propiedad del Inspector de Objetos ImageIndex permite escribir a mano un entero o bien seleccionarlo de una lista. Esta lista es en lo que estaría interesado. Ya que solo aparecen los valores que pueda tener el TImageLista. Hasta aquí correcto. Pero no sé como hacerlo con código fuente para nuevos componentes. Espero haberme explicado mejor. Lo siento :) EDITO: Muchas gracias por los enlaces!! |
Efectivamente es un Editor de propiedades lo que intentas hacer, en los enlaces de Neftali viene un manual.
Saludos |
A mi no me permite bajar el de magaupload. Si quieren, me lo mandan y lo cuelgo de mi web.
// Saludos |
El manual que he descargado de megaupload es "Curso de creación de componentes en Delphi". Y aunque ahí está firmado por "MBS para el LTIASI" es el mismo que en su día escribió Luis Roche
Volviendo al tema de los editores de propiedades... no lo entendí muy bien ya que la VCL para la propiedad ProcedureName por ejemplo está así definida en la clase ¿Aquí no está usando ningún editor de propiedad? ¿O se utilizan de otra manera? |
Cita:
EDITO: Tenía problemas con el FTP; Resueltos, ya lo he podido subir aquí. |
Cita:
De todas formas aunque el tipo fuera otro, al definir la propiedad no hay nada distinto, seguirá siendo así:
Cuando registras el componente (procedure Register), es cuando registras el Editor de propiedades que has hecho para una determinada propiedad. Normalmente harías esto:
Para registrar propiedades harías algo así:
|
Muchas gracias a todos por la ayuda!
Después de vuestras respuestas había dejado el tema de lado. Pero hoy volví otra vez a intentarlo haciendo unas pruebas. Y he conseguido hacer cosas parecidas a lo que pretendía. Y la respuesta cómo habéis apuntado son los property editors. Yo me empeñaba, según mi conocimientos de OOP, en revisar la unidad del IBStoredProc. Ahí no veía nada extraño. Así que todo parecía magia o muy complicado. Porque sólo veía que las propiedades en la definición eran de tipo string pero algunos componentes hacían unas cosas y otros otra. Era magia! Entonces leyendo la ayuda de Delphi en el apartado "Component's Writer Guide" he ido poco a poco probando cosas. Al final la magia está en los paquetes: paquetes de ejecución, paquetes de diseño y paquetes mixtos. La solución a mis problemas estaba en los paquetes de diseño que tienen la información de los editores de propiedades como dijo Neftali. Un saludo y muchas gracias de nuevo! |
La franja horaria es GMT +2. Ahora son las 12:32:15. |
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