elrayo76,
Cita:
Empezado por elrayo76
...Quisiera saber si existe la posibilidad de poner dos o mas lineas por cada item dentro de un ListBox...
|
Una alternativa a N líneas por item en un TListBox,
es asociar la data que se requiera a cada item dentro del mismo componente.
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
public
end;
var
Form1: TForm1;
SL : TStringList;
L : TList;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
L := TList.Create;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j : Integer;
begin
Randomize;
for i := 1 to 5 do
begin
SL := TStringList.Create;
for j := 1 to 5 do
SL.Add('Item-' + IntToStr(i) + ' Data-' + IntToStr(Random(100)));
L.Add(SL);
ListBox1.AddItem('Item-' + IntToStr(i),SL);
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
AuxSL : TStringList;
i : Integer;
begin
AuxSL := TStringList.Create;
AuxSL.Assign(TStringList(ListBox1.Items.Objects[ListBox1.ItemIndex]));
Memo1.Clear;
for i := 0 to AuxSL.Count - 1 do
Memo1.Lines.Add(AuxSL.Strings[i]);
AuxSL.Free;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
i : Integer;
begin
Action := caFree;
for i := 0 to L.Count - 1 do
Dispose(L.Items[i]);
L.Free;
end;
end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32,
Permite asociar un TStringList a cada Item de un TListbox, como se muestra en la siguiente imagen:
Espero sea útil
Nelson.