Me permito contestarte alguna de tus cuestiones:
Cita:
Empezado por Delphius
El ListBox está para ello para agregar, eliminar items. Es su FUNCION y propósito como objeto. ¿Que finalidad tiene derivar de él si no se desea contar con el propósito con el que ha sido diseñado?
|
En la paleta
Additional hay un componente llamado
TColorBox (no es un listbox pero sí un combo), ahí hay un caso en el que no tiene sentido modificar los
items de de la lista.
Cita:
Empezado por Delphius
Es cierto que como dice muchos que el TCustomListBox ofrece una buena alternativa... Al menos para mi, y teniendo como punto de partida la simple descripción del problema, me resultaría más práctico y ventajoso emplear un descendiente de TCustomListBox. Es la mejor clase candidata.
|
En eso coincidimos, fue la primera posible solución que planteé, de hecho el componente que menciono antes hereda de TCustomColorBox, que a su vez hereda de TCustomComboBox.
Cita:
Empezado por Delphius
El diseño de nuevos componentes que sirvan para propósitos generales no es una actividad que pueda tomarse a la ligera... Considero, y casi siempre hago llamar la atención, a que se haga un mejor y profundo análisis antes de optar por alguna alternativa.
|
No creo que el diseño de componentes tenga que ser únicamente con propósitos generales. Puede ser un componente muy específico que se utilice varias veces en una misma aplicación. Se me ocurren muchos ejemplos en este caso. Una lista que adquiere los datos a través de sockets o de un puerto serie, de una base de datos, de un archivo, del registro de windows, del sistema de archivos...
Cita:
Empezado por Delphius
Hay algo que no me ha dejado tranquilo y siento que algo se me escapa...
Me gustaría que alguien me explicase que finalidad tendría hacer algo como lo del truco. Yo siento que se trata de un error de diseño (o mejor dicho de una comprensión erronea del dominio).
|
Yo tampoco usaría este truco para este caso, sólo lo usaría en caso de que no existiese una clase TCustomXXXX para un componente. Sin embargo, como bien dices, lo bueno de Delphi es que nos permite varias alternativas para este (y otros muchos casos). Creo que si
elcolo83 se decidió por esa opción es porque la vio más clara.