Aspecto de un combobox
¿Existe la posibilidad de cambiar la altura de un TComboBox? Ahora mismo tengo varios puestos en un formulario pero por más que lo intento no puedo reducir la altura y el aspecto que queda es bastante feo porque los combos son más grandes que los TEdit que hay en el resto del formulario.
|
Hola
Hasta donde yo recuerdo la unica solucion era cambiar el tamaño de fuente del control ya que cambiar el tamaño del componente no surtia efecto. Saludos |
Lo más fácil seria cambiar el tamaño de los TEdits para que tengan el tamaño de los TComboBoxs.
Lo difícil es lo que intentas aunque imposible no creo que sea. Prueba a ver si esto te sirve: http://forums.codeguru.com/showthrea...-designer-view |
Tal como indica aguml, puedes usar un combobox "ownerdraw", o sea con su propiedad Style en csOwnerDrawFixed. Con eso, ajustando la propiedad ItemHeight obtienes la altura deseada para el combo. Sin embargo, el texto de cada item queda pegado al borde superior y se ve un poco feo. Para centrarlo tienes que implementar el evento OnDrawItem:
LineComment Saludos |
Hola.
No se si te sirva pero, de forma similar al enlace que puso aguml un ejemplo usando las propiedades ItemHeight y Height para lograr el cometido: Código PHP:
Saludos :) Edito: Y agregando la rutina de roman (que no había visto al momento de este), ciertamente queda mucho mejor presentado. |
Cita:
LineComment Saludos |
Usando las ideas de roman y ecfisa
No he cambiado ninguna propiedad en tiempo de diseño, todo lo hago en ejecucion
Edito: Probando me estoy dando cuenta de que el evento OnDrawItem no es estrictamente necesario: Cita:
|
Gracias por vuestras respuestas. Me ha sido útiles pero al final me dieron una solución que creo más sencilla: Poner en el constructor del formulario
Código:
SendMessage(ComboBox1->Handle, CB_SETITEMHEIGHT, -1, <altura en píxeles>); |
Cita:
LineComment Saludos |
Cita:
LineComment Saludos |
Cita:
|
Y de la otra forma, ¿cómo queda? ¿Puedes poner una imagen?
LineComment Saludos |
Cita:
|
Pues sí. Es que, a fin de cuentas, si no cabe, no cabe :D Independientemente del método.
LineComment Saludos |
Cita:
|
Cita:
|
Ahora que lo mencionas, me parece que hay un problema con la solución del SendMessage. En Delphi 7 al menos, al desplegar el combo la VCL lo regresa a su estado inicial.
LineComment Saludos |
Cita:
(Aunque Angel no lo menciona, antes del SendMessage hay que poner la propiedad Style a csOwnerDrawVariable) |
Cita:
LineComment Saludos |
Supongo que para que no se amontonen puedes reducir el número de Items que se muestran. Por defecto son 8.
|
La franja horaria es GMT +2. Ahora son las 16:19:01. |
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