Ver Mensaje Individual
  #3  
Antiguo 16-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 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