Ver Mensaje Individual
  #7  
Antiguo 25-05-2015
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno, pues, en efecto, nuestro amigo Jhonny iba bien encaminado. Parece claro que no pueden ocultarse botones de un "TCategoryButtons", pero, el control se comporta muy bien a la hora de crear las categorías y botones en tiempo de ejecución, de hecho parece preparado para algo así, de manera que resulta más o menos sencillo realizar el filtrado, una vez que podemos crear los elementos en tiempo de ejecución, basta con buscar por la cadena de búsqueda en el caption de un botón... antes de crearlo y añadirlo al control.

El quid está por tanto en tener una fuente desde la que que crear dichos elementos, por ejemplo, en mi caso se trata de sendos arrays estáticos, donde defino todas las acciones y todos los controles disponibles (véase la imagen de abajo) así como algunas de sus características, entre ellas su nombre, que es lo que me sirve a la hora de buscar o filtrar una determinada acción o control. En fin, que es posible hacer lo que me preguntaba al principio, siempre que no creemos las categorías y botones en tiempo de diseño, en todo caso, pudiendo recrearlos en tiempo de ejecución.



Tal vez incluso podríamos ir un poco más allá. Por ejemplo, yo creo que el propio Delphi utiliza este control (u otro similar) para su paleta de componentes, por ejemplo. Ahora bien, Delphi nos muestra "en negrita" el texto que estamos buscando o el filtro que estamos usando. Yo creo que esto podría hacerse utilizando algún evento "Draw" del "TCategoryButtons". Otra cosa que tengo que decir es que yo estoy filtrando sobre unos 100 elementos más o menos: no sé cómo se comportará con muchos más, pero, no pinta del todo mal.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita