Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   insertar salto de linea en listbox (https://www.clubdelphi.com/foros/showthread.php?t=72480)

giocatore 22-02-2011 08:15:33

insertar salto de linea en listbox
 
buenas quisiera saber como puedo insertar un salto de linea dentro de un mismo item en un listbox, es decir que con el código siguiente:

listbox1.Items.Add('uno '+'dos');

se mostraria en el listbox :

uno dos

pero lo que busco es que se despliegue de la siguiente manera:

uno
dos


pero sin que sean 2 items diferentes del listbox.

intente hacerlo de esta manera que parece la mas obvia pero no funciona:

listbox1.Items.Add('uno '+#13+'dos');

Espero me ayuden gracias

defcon1_es 22-02-2011 10:11:40

Por simple curiosidad, ¿por qué no pueden ser dos elementos distintos del listbox?

prueba esto, pero no garantizo nada....
Código Delphi [-]
listbox1.Items.Add('uno '+#13#10+'dos');

Caro 22-02-2011 16:24:07

Hola giocatore, tienes que dibujar el texto dentro de tu Lisbox:

La propiedad Style -> lbOwnerDrawVariable y utilizar los eventos OnDrawItem para dibujar el texto y OnMeasureItem para la altura de cada item.

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;
 
procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
  var Height: Integer);
var
 aItem : String;
 aRect: TRect;
begin
 aRect := ListBox1.ClientRect;
 aItem := ListBox1.Items[Index];
 Height := DrawText(ListBox1.Canvas.Handle,PChar(aItem), StrLen(PChar(aItem)),aRect,DT_WORDBREAK);

de hecho tienes que arreglar algunas cositas que talvez no funcionen bien, pero esa la idea.

Saluditos

giocatore 23-02-2011 01:35:31

Gracias por las respuestas, "defcon1_es" el motivo por el que quiero tener todo en un mismo item, es porque los elementos de cada item los capturo de un array, y cada item del listbox me servirá para referirme a sus elementos.

Muchas gracias por el código Caro lo voy a revisar te agradezco mucho. saludos desde Potosí

giocatore 25-02-2011 23:01:58

aun sin resolver
 
bueno, gracias por las respuestas pero aún no pude resolver mi problema, espero que alguien me ayude gracias!!


La franja horaria es GMT +2. Ahora son las 19:15:53.

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