Cita:
Empezado por aguml
¿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