Ver Mensaje Individual
  #11  
Antiguo 12-03-2014
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
Cita:
Empezado por aguml Ver Mensaje
¿en un TStringList se puede tener dos columnas?
Hola aguml.

Podes aprovechar la propiedad Objects como segunda columna:
Código:
...
TStrings *TS = new TStringList;

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  for(int i=0;i<10;i++)
   TS->AddObject("Item:" + IntToStr(i),((TObject*)(i*10)));
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 for(int i=0;i<10;i++)
  ListBox1->Items->Add(TS->Strings[i]+ " - " +
    IntToStr((int)TS->Objects[i]));
}

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  TS->Clear();
  for(int i=0;i<TS->Count;i++)
    delete TS->Objects[i];
}
En el caso que quisieras almacenar otro tipo (AnsiString en el ejemplo):
Código:
...
class TClase {
public:
  AnsiString Cadena;
};

TClase *Clase;
TStrings *TS = new TStringList;

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 for(int i=0;i<10;i++) {
  Clase = new TClase;
  Clase->Cadena = "Col2: "+IntToStr(i*10);
  TS->AddObject("Col1: "+IntToStr(i), ((TObject*)Clase));
 }
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 for(int i=0;i<10;i++)
  ListBox1->Items->Add(TS->Strings[i]+ " - " +
    ((TClase*)(TS->Objects[i]))->Cadena);
}

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  TS->Clear();
  for(int i=0;i<TS->Count;i++)
    delete TS->Objects[i];
}
Saludos
__________________
Daniel Didriksen

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