Hola microbiano.
Totalmente de acuerdo con
Dec, el
TListView es un componente mucho más adecuado para lo que buscas hacer.
De todos modos si aún deseas utilizar un
TListBox, podrías hacer:
Código Delphi
[-]
...
implementation
type
TClase = class
cp1: string;
cp2: string;
cp3: string;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
cl: TClase;
begin
ListBox1.TabWidth:= 100; with DataSet do
begin
Open;
while not DataSet.Eof do
begin
cl:= TClase.Create;
cl.cp1:= FieldByName('ID').AsString;
cl.cp2:= FieldByName('NOMBRE').AsString;
cl.cp3:= cl.cp1;
ListBox1.AddItem(Format('%s %s| %s',[cl.cp1, ^I, cl.cp2]) ,TObject(cl));
Next;
end;
end;
end;
procedure TForm1.btnAgregarUnoClick(Sender: TObject);
begin
with ListBox1 do
if ItemIndex > -1 then
ListBox2.Items.Add(TClase(Items.Objects[ItemIndex]).cp3);
end;
procedure TForm1.btnAgregarTodosClick(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to ListBox1.Items.Count-1 do
ListBox2.Items.Add(TClase(ListBox1.Items.Objects[i]).cp3);
end;
...
procedure TForm1.FormDestroy(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to ListBox1.Items.Count-1 do
ListBox1.Items.Objects[i].Free;
end;
Pero la presentación obtenida no se compara con lo que te sugiere
Dec.
Saludos.