Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


TListView:mostrar datos desde un bucle

Trucos y Consejos con respecto al Lenguaje C++ Builder.

Moderador: yalmar

TListView:mostrar datos desde un bucle

Notapor Ziara el Vie Ene 18, 2008 7:53 am

Hola, estoy probando sacar unos datos desde un bucle mediante el TListView, pero sólo he conseguido que se muestre la primera fila de datos, con esto:

TListItem * Itema;
Itema = ListView1->Items->Add();
//for(int i = 0; i<5; i++){
Itema->Caption = "tema1";
Itema->SubItems->Add("tema2");
//}

tal como está el código me muestra:

colum1 colum2 (esto es la cabecera)
tema1 tema2

pero, aun dejando el for sin comentar y suponiendo que asi debería sacarme cinco filas de datos tal como:

colum1 colum2 (esto es la cabecera)
tema1 tema2
... ...
tema1 tema2

NO lo hace, que estoy haciendo mal? :(

gracias
Ziara
Novato
Novato
 
Mensajes: 10
Registrado: Lun Dic 03, 2007 7:27 am

Re: TListView:mostrar datos desde un bucle

Notapor ivancp el Vie Ene 18, 2008 11:38 am

Me parece que el codigo debería ir asi:

Código: Seleccionar todo
TListItem * Itema;
for(int i = 0; i<5; i++)
{
   Itema = ListView1->Items->Add();
   Itema->Caption = "tema1";
   Itema->SubItems->Add("tema2");
}
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm

Re: TListView:mostrar datos desde un bucle

Notapor Ziara el Mar Ene 22, 2008 7:18 am

gracias! y... entonces si quisiera sacar los datos en un TListView como antes pero los datos los genera un bucle for o while como se haría?
Ziara
Novato
Novato
 
Mensajes: 10
Registrado: Lun Dic 03, 2007 7:27 am

Re: TListView:mostrar datos desde un bucle

Notapor ivancp el Mar Ene 22, 2008 8:40 am

Tu pregunta esta un poco confusa. Quieres mover datos de un list a otro?
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm

Re: TListView:mostrar datos desde un bucle

Notapor Ziara el Mar Ene 22, 2008 12:11 pm

Querría saber cómo mostrar datos en un TListView de un bucle for que va generando unos datos, pongo un ejemplo:

tengo en un Unit2.h

Código: Seleccionar todo
class Recorrer
{
private:
          String cadena;
public:
          void FuncionRec();
          String DevCadena(void){return cadena;}
}


tengo un un Unit2.cpp

Código: Seleccionar todo
void Recorrer::FuncionRec()
{
    int i;
    for(i=0; i<5; i++)
    {
      cadena = "hola mundo";
      cadena2="adios mundo";
    }
}


Y ahora en el Form1 del Unit1 agrego el componente TListView y en Unit.cpp:

Código: Seleccionar todo
Recorrer *re = new Recorrer();
re->FuncionRec();  //llamo a la funcion que contiene el for

TListItem *Itema;
Itema = ListView1->Items->Add();
Itema->Caption = re->DevCadena();
Itema->SubItems->Add(re->DevCadena2());

delete re;


Pero con lo anterior sólo me muestra el contenido del for una vez, ¿cómo se podría hacer que se mostrase las veces indicadas en la variable i? Porque he visto que hay una propiedad Count de Items que es para cuando recorres un TListView, pero si inicialmente no tengo nada en TListView no tengo nada que recorrer no?
Ziara
Novato
Novato
 
Mensajes: 10
Registrado: Lun Dic 03, 2007 7:27 am

Re: TListView:mostrar datos desde un bucle

Notapor ivancp el Mié Ene 23, 2008 8:51 am

La funcion FuncionRec, asigna 5 veces los valores a dos cadena. Eso no tiene que ver nada con el codigo de inserción, por eso es que no funciona.

Aun no comprendo lo que quieres hacer... podrías explicarlo un poco mejor.
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm

Re: TListView:mostrar datos desde un bucle

Notapor Ziara el Mié Ene 23, 2008 11:55 am

Pensé que ese ejemplo se asemejaba a lo que quiero hacer, pero porfavor corregirme si me equivoco.

Estoy viendo cómo hacer un sniffer, y llego a una función que es pcap_next_ex donde va recibiendo los paquetes y yo en esos paquetes puedo ir sacando información, como dir IP origen, destino, protocolo... Ahora, de alguna forma tengo que sacar esos datos y lo más ajustado mi idea, fue con un ListView con ViewStyle: vsReport, donde viene cada columna (IP origen, IP destino...) y fila a fila iría mostrando los datos de los paquetes sniffados.

Espero que me hayan entendido, y gracias por la paciencia.
Ziara
Novato
Novato
 
Mensajes: 10
Registrado: Lun Dic 03, 2007 7:27 am

Re: TListView:mostrar datos desde un bucle

Notapor ivancp el Mié Ene 23, 2008 4:02 pm

En ese caso supongo que la clase Recorrer, se encarga de recorrer las entradas e ir agregando al listview. La clase Recorrer debe tener una referencia al listview para poder hacer algo con el... por que el codigo que escribiste solo sirve para jugar con cadenas.

La funcion FuncionRec tendría lo siguiente:

Código: Seleccionar todo
void Recorrer::FuncionRec(TListview* list) //Parametro que es una refeencia a un control list
{
     TListItem * Itema;
     for(int i = 0; i<5; i++)
     {
        Itema = list->Items->Add();
        Itema->Caption = "tema1";
        Itema->SubItems->Add("tema2");
     }
}


El codigo para llamar a recorrer:

Código: Seleccionar todo
Recorrer *re = new Recorrer();
re->FuncionRec(ListView1);  // Llenará de valores el control ListView1
delete re;
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm


Volver a C++ Builder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados