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