Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2006
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
Ajustar ancho del desplegable de un ComboBox

Hola a todos, y gracias por su ayuda

Tengo unos ComboBoxes con muy poco Width pero conteniendo unos Items que no entran en el Width del ComboBox. ¿Hay alguna forma para que al desplegar el ComboBox, el ancho de lo desplegado se ajuste al item del de mayor tamaño?


Para mayor claridad espero, imaginemos el siguiente ComboBox (recordad, imaginemos):

[____][V] bonito verdad!!, y supongamos que el width del ComboBox, es el que vemos y pensemos en elementos como: "El Conde Dracula", "Demencia 13", "La orgía nocturana de los vampiros", si desplegamos el ComboBox tendríamos algo como

[____][V]
|El Cond|
|Demenci|
|La orgí|
---------


cuando mi intención, y mi pregunta es si me podéis orientar para alcanzar el objetivo de tener un resultado similar a:
[____][V]___________________________
|El Conde Drácula |
|Demencia 13 |
|La orgía nocturna de los vampiros |
------------------------------------



Gracias y espero que mis AsciiComboBox's sean de ayuda.
Responder Con Cita
  #2  
Antiguo 17-10-2006
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
Lógica y realmente las paredes del último AsciiComboBox, deberían estar alineadas al de mayor ancho.
Responder Con Cita
  #3  
Antiguo 17-10-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, pues si le echas un vistazo a la seccion de trucos puedes encontrarte con éste que lo que hace es modificar el ancho del mismo en tiempo de ejecución.

Espero te sirva,

Saludos
Responder Con Cita
  #4  
Antiguo 17-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Para saber el ancho que tiene en Pixels según la fuente elegida, pues usa la humilde rutina FontWidth, o bien incluso el Combo1.canvas.TextWidth.

Código Delphi [-]
AnchoDelCombo := Fontwidth(Combo1.Font, Combo1.items[3]);

Para hacer más eficiente el tema, guardar en un .ini, registro, etc, el máximo ancho que hay por el momento; al añadir un texto al combo, se compara el máximo ancho con el ancho del nuevo Item y si es mayor el nuevo, guardarlo en el .ini, así evitamos hacer las comparaciones con todos los elementos cada vez que se despliega el combo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 17-10-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Bueno, he estado entretenido y se me han adelantado, pero he podido hacer un ejemplo que contrasta el truco con lo que comenta Lepe.

Código Delphi [-]
var
  Ancho, x, aux: integer;
begin
  Ancho := 0;
  aux   := 0;
  for x := 0 to ComboBox1.Items.Count - 1 do begin
    aux := Combobox1.Canvas.TextWidth(Combobox1.Items.Strings[x]);
    if aux > Ancho then Ancho := aux;
  end;

  ComboBox1.Perform(CB_SetDroppedWidth,Ancho,0);

Espero te sirva,

Saludos
Responder Con Cita
  #6  
Antiguo 19-10-2006
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
Gracias a todos

Ciertamente, la sección de trucos siempre es mi gran olvidada y a ella le debo muchas horas ahorradas.

Gracias a todos por recordarme su existencia, y gracias por la ayuda.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
lista desplegable nikotina Conexión con bases de datos 1 09-10-2006 19:27:23
icono con menu desplegable. JCarlos Varios 1 15-02-2005 19:44:12
menu desplegable srangel JAVA 0 30-09-2004 16:34:08
Ajustar un Form al ancho de un texto salvica Varios 10 01-05-2004 04:11:02
Desplegable del RxDBLookupCombo Nuria OOP 4 23-04-2004 11:09:10


La franja horaria es GMT +2. Ahora son las 14:39:39.


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
Copyright 1996-2007 Club Delphi