Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2008
sanzCrito sanzCrito is offline
Registrado
 
Registrado: oct 2008
Posts: 3
Poder: 0
sanzCrito Va por buen camino
Unhappy Ayuda Con Listbox

buenos/as dias/noches!
mi problema es que tengo un listbox y necesito poner cadenas muy largas y cuando exceden el tamaño deol listbox no puedo visualizar el final d la cadena,pense que el tamaño se iva ajustar automaticamente pero no.
como hago?ahi alguna propiedad para esto o tengo que usar otro elemento?
Responder Con Cita
  #2  
Antiguo 15-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por sanzCrito Ver Mensaje
buenos/as dias/noches!
mi problema es que tengo un listbox y necesito poner cadenas muy largas y cuando exceden el tamaño deol listbox no puedo visualizar el final d la cadena,pense que el tamaño se iva ajustar automaticamente pero no.
como hago?ahi alguna propiedad para esto o tengo que usar otro elemento?
Hola sanzCrito

Bienvenido al foro.

Debe existir una solución mejor y mas óptima que esta:

Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
var
  ancho,i:integer;
begin
  ancho := 0;
  for i := 0 to ListBox1.Items.Count-1 do begin
     if ancho < Canvas.TextWidth(ListBox1.Items.Strings[i]) then
        ancho := Canvas.TextWidth(ListBox1.Items.Strings[i]);
  end;
  ListBox1.Width := Ancho+10;
end;

Seguro alguien posteara algo mejor

Salud OS

PD, te invito a leer nuestra guia de estilo.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 16-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola sanzCrito, mi solución no es una mejor que del amigo egopolice. Puedes utilizar la función DrawText que te permite dar formato a tu texto, para que te muestre en varias líneas tendrías que utilizar el formato DT_WORDBREAK, según la ayuda una vez que llega al tamaño de tu TRect te lo corta y el resto te pone en otra línea.

Código Delphi [-]
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
 aItem : String;
begin
 aItem := ListBox1.Items[Index];
 DrawText(ListBox1.Canvas.Handle,PChar(aItem), StrLen(PChar(aItem)),Rect,DT_WORDBREAK);
end;

Debes cambiar la propiedad Style a lbOwnerDrawFixed, sino no se activa el evento OnDrawItem de tu ListBox. También debes aumentar el alto de los items, porque sino no se ve lo que esta en la siguiente línea, para esto la propiedad ItemHeight.

Lo ideal sería si el texto ocupa una sola línea el alto sea solo para esa línea y si ocupa mas el alto sea mas, pero nose como hacer eso.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 16-10-2008
sanzCrito sanzCrito is offline
Registrado
 
Registrado: oct 2008
Posts: 3
Poder: 0
sanzCrito Va por buen camino
gracia por la rapida respuesta
Responder Con Cita
Respuesta



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
ListBox FrianxD C++ Builder 3 21-01-2008 22:14:11
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
!!!!Ayuda con listbox!!!!! alixp23 C++ Builder 4 08-03-2007 01:21:45
Ayuda con ListBox Urgente ... Ricomarz Varios 16 03-03-2007 16:52:02
GRUPOS DE LISTBOX.. Ayuda!! CARLOS E PHP 1 12-05-2006 11:01:54


La franja horaria es GMT +2. Ahora son las 04:50:08.


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