No es un ListBox pero para el caso por ejemplo de varios Editbox como una array conseguir que los objetos de un formulario tipo TEdit en mi caso estoy usando ,C++ builder xe, me los reconociera como una array. No lo conseguido y he buscado bastante (Creo que no se puede). Pero lo que SI HE CONSEGUIDO es pasar la información de estos objetos a una array creada tipo TEdit y luego pasarlos a una array tipo AnsiString y la vedad que de manera bastante fácil.
1º /*Declaramos los arreglos tanto tipo AnsiString como de tipo TEdit. La TEdit esta al llevar puntero tipo Text, hay que declararla dínamica mas otro puntero (con doble puntero). */
AnsiString *Nombres=new AnsiString[10];
TEdit **Edit=new TEdit*[10];
En el programa form los nombres de los TEdit están puestos como desde el Edit0 hasta Edit9
2º /*Pasamos los datos de los Editbox a la array Tedit** Edit con un button lo llamé IntroducirDatos con la ayuda de la función FindComponent() */
void __fastcall TForm3::IntroducirDatosClick(TObject *Sender)
{
for (int n=0; n<ComponentCount; n++) {
Edit[n] = static_cast<TEdit*>(FindComponent("Edit"+IntToStr(n)));
}
}
3 /* Pasé los datos de la array Tedit a la array dinámica AnsiString *Nombres con otro button que lo llamé MostrarDatos */
void __fastcall TForm3::MostrarDatosClick(TObject *Sender)
{
for (int n=0; n<10; n++) {
Nombres[n]=Edit[n]->Text;
}
ShowMessage(Nombres[8]);
}
Le agregué un mensaje para verificar que se transferían bien los datos a Nombres.
1º /*Declaramos los arreglos tanto tipo AnsiString como de tipo TEdit. La TEdit esta al llevar puntero tipo Text, hay que declararla dínamica mas otro puntero (con doble puntero). */
AnsiString *Nombres=new AnsiString[10];
TEdit **Edit=new TEdit*[10];
En el programa form los nombres de los TEdit están puestos como desde el Edit0 hasta Edit9
2º /*Pasamos los datos de los Editbox a la array Tedit** Edit con un button lo llamé IntroducirDatos con la ayuda de la función FindComponent() */
void __fastcall TForm3::IntroducirDatosClick(TObject *Sender)
{
for (int n=0; n<ComponentCount; n++) {
Edit[n] = static_cast<TEdit*>(FindComponent("Edit"+IntToStr(n)));
}
}
3 /* Pasé los datos de la array Tedit a la array dinámica AnsiString *Nombres con otro button que lo llamé MostrarDatos */
void __fastcall TForm3::MostrarDatosClick(TObject *Sender)
{
for (int n=0; n<10; n++) {
Nombres[n]=Edit[n]->Text;
}
ShowMessage(Nombres[8]);
}
Le agregué un mensaje para verificar que se transferían bien los datos a Nombres.