Ver Mensaje Individual
  #4  
Antiguo 23-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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; // (tab mayor a longitud del 1° campo)
  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;

// Ejemplo: Agregar un ID a ListBox2 
procedure TForm1.btnAgregarUnoClick(Sender: TObject);
begin
  with ListBox1 do
    if ItemIndex > -1 then
      ListBox2.Items.Add(TClase(Items.Objects[ItemIndex]).cp3);
end;

// Ejemplo: Agregar todos los ID a ListBox2
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;

...

// Liberar 
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 23-07-2012 a las 01:03:23. Razón: agregar comentario al código
Responder Con Cita