FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
[BUG] ComboBoxEx
Usando un control ComboBoxEx en Delphi 7 me doy cuenta de lo siguiente.
Supongamos que llenamos el combo con 15 elementos:
El combo se ve así: Para poder ver todos los elementos al momento de desplegar la lista, ajusto la propiedad DropDownCount a 15. El resultado es el que se espera: . Sin embargo, si cambio el tamaño de letra del combo a 10 (el de defecto es 8), el resultado es este: Es decir, que al parecer, el desplegado no toma en cuenta la altura real de cada elemento. Revisando el código del componente, veo con sorpresa esto:
¡Una constante! El código del método correspondiente en el combo normal es así:
Cosa bastante más razonable. Si redefino el método de esta manera:
el resultado vuelve a ser el esperado: // Saludos |
#2
|
||||
|
||||
Hola.
Nunca había usado el ComboBoxEx, pero tenés toda la razón. Y agregando algo más, como tengo el tamaño de fuente en escala grande, poniendo DropDownCount:= 15 y Font.Size:= 8 obtengo el mismo resultado que vos con size = 10. Para lograr visualizar los 15 items tuve que usar 'Currier New' y size = 6. O sea que la cantidad de items mostrado depende también de la escala de font declarada en el S.O., como se desprende lógicamente del código que implementaron en la función GetItemHt... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Gracias por el aviso y la solución, Román.
Posiblemente le dijeron al programador en turno algo como: Cita:
|
#4
|
||||
|
||||
Pues en delphi2007 pone igual
¿No habrá algún motivo? |
#5
|
||||
|
||||
No ocupo el componente, pero que bueno que nos hallas avisado. A cómo dice Al, seguro eso ha de haber sido una pereza del programador.
Deberías reportar tu descubrimiento a Embarcadero. Saludos, Chris |
#6
|
||||
|
||||
Es curioso lo poco usado del componente a pesar de los beneficios que presenta. ¿O será que no reporta beneficios reales?
A decir verdad yo casi nunca lo había usado pero hoy lo hice por una única, simple y boba razón: tiene la propiedad Action de la que carece el combo regular. Cosa, por cierto, también inexplicable. // Saludos |
#7
|
||||
|
||||
Hola,
Subo este hilo para indicar que en Delphi XE2 ocurre lo mismo, es decir:
Yo he llegado aquí porque, si se incrementa la fuente del "Combo", el efecto es todavía "peor", puesto que la lista desplegable aparece muy pequeña, desproporcionada, sino se aplica la solución propuesta por Román. |
#8
|
||||
|
||||
¿Qué esperarán para corregirlo?
|
#9
|
||||
|
||||
Hola,
Igual no es un error Casimiro... aunque lo cierto es que ocurre lo que explica Román, y, si aumentas el tamaño de la fuente el efecto es mayor, no digamos si se usa el estilo "simple" del "ComboBoxEx". No sé. Lo cierto es que la solución propuesta por Román parece funcionar bien. |
#10
|
||||
|
||||
Jamás lo van a corregir. Si el autor de este hilo se hubiera tomado la molestia de consultar la ayuda habría visto esta descripción del método GetItemHt:
Cita:
// Saludos |
#11
|
||||
|
||||
Vaya, qué cosas
|
#12
|
||||
|
||||
Hola,
De todas formas... sigo sin entender nada. ¿Cómo es que podemos nosotros sobreescribir el método y obtener los resultados esperados? ¿Estamos saltándonos alguna ley o algo? ¿Terminaremos obteniendo resultados "impredecibles"? ¿Qué me pasa, doctor? |
#13
|
||||
|
||||
Pues claro, yo tampoco entiendo. A mi juicio, la razón que da la ayuda es incorrecta porque en este caso específico no se trata de elementos de altura variable, sino de la misma altura en todos, que cambia sólo por el tamaño de la fuente.
// Saludos |
#14
|
||||
|
||||
Hola,
Por eso decía: a ver si va a haber algo escondido por ahí... tal vez el "error" provenga de que el alto del "ComboBox" no puede determinarse mediante la propiedad "ItemHeight", ni siquiera con la propiedad "Height", sino que depende del tamaño de la fuente. De hecho a mí me ha parecido leer algo sobre esto en la ayuda. Bueno. El caso es que la solución propuesta funciona como se espera, doy fe, también si se incrementa el tamaño de la fuente que viene predeterminado. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ComboBoxEx y ImageList | emme_juegos | OOP | 15 | 12-02-2014 19:56:40 |
Abrir un ComboBoxEx automáticamente | afxe | Gráficos | 4 | 03-03-2010 20:59:04 |
Ayuda ComboBoxEx | Ge0Ks | C++ Builder | 11 | 27-02-2007 05:13:46 |
|