Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2008
11_8_88 11_8_88 is offline
Miembro
 
Registrado: may 2008
Posts: 25
Poder: 0
11_8_88 Va por buen camino
como escribir en las diferentes columnas de un ListView

Hola a todos, tengo un listview compuesta de 2 columnas y varias filas, en las filas no tengo problema para escribir, lo hago con ListView1->Items->Add()->Caption, pero no se como hacerlo en diferentes columnas.

Un saludo y muchas gracias.
Responder Con Cita
  #2  
Antiguo 01-12-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Hola 11_8_88

Crearlos:
Código:
TListItem *Item = ListView1->Items->Add();
Item->Caption = "UNO"; // Columna_0
Item->SubItems->Add("Columna_1");
Item->SubItems->Add("Columna_2");
Item->SubItems->Add("Columna_3");
...................
...................
Item->SubItems->Add("Columna_N");
Referenciarlos:
Código:
TListItem *Item = ListView1->Items->Item[f]; // Fila f empezando por la 0
Item->SubItems->Strings[0]; // Columna_1
Item->SubItems->Strings[1]; // Columna_2
Item->SubItems->Strings[2]; // Columna_2
....................
....................
Item->SubItems->Strings[n]; // Columna_N
Saludos.

Última edición por escafandra fecha: 01-12-2008 a las 19:39:35.
Responder Con Cita
  #3  
Antiguo 03-12-2008
11_8_88 11_8_88 is offline
Miembro
 
Registrado: may 2008
Posts: 25
Poder: 0
11_8_88 Va por buen camino
Muchas gracias por responder escafandra, no he contestado antes por q he estado probandolo y el problema q no consigo solucionar ahora es q no se escribir en la segunda fila de la segunda columna, te pongo mitrocito de codigo de prueba a ver si ves mi error:

Form13->Label1->Visible = true;
Form13->Visible = true;
Form13->ListView1->Visible = true;
TListItem *item = Form13->ListView1->Items->Add();
item->Caption = "Primera columna";
item->SubItems->Add("Segunda columna");

//Aqui intento escribir en la fila 2 de la columna 2
Form13->ListView1->Items->Item[1]->SubItems->Strings[1] = "hola";


Muchas gracias y un saludo
Responder Con Cita
  #4  
Antiguo 03-12-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por 11_8_88 Ver Mensaje
//Aqui intento escribir en la fila 2 de la columna 2
Form13->ListView1->Items->Item[1]->SubItems->Strings[1] = "hola";
Código:
Form13->ListView1->Items->Item[1]->SubItems->Strings[0] = "hola";
SubItems->Strings debe comenzar con el indice 0 para la segunda columpa pues la primera es Form13->ListView1->Items->Item[1]->Caption.

Strings es una lista y su primer elemento es el 0. De otra manera, la segunda columna que tu ves, es en realidad la primera columna de los SubItems.

Saludos.
Responder Con Cita
  #5  
Antiguo 03-12-2008
11_8_88 11_8_88 is offline
Miembro
 
Registrado: may 2008
Posts: 25
Poder: 0
11_8_88 Va por buen camino
gracias de nuevo, he probado lo q comentas y me peta, me salta de la aplicacion, me dice algo de acceso violado a la direccion 'tal', supongo que estoy intentando aceder a algún espacio de memoria invalido.

En cambio si hago esto:

Form13->ListView1->Items->Item[0]->SubItems->Strings[0] = "hola";

me escribe sin problema en la columna 2 fila 1, sustituyendo segunda coluna por hola, pero no soy capaz de escribir en la fila 2 de la columna 2

Un saludo y gracias
Responder Con Cita
  #6  
Antiguo 03-12-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por 11_8_88 Ver Mensaje
gracias de nuevo, he probado lo q comentas y me peta, me salta de la aplicacion, me dice algo de acceso violado a la direccion 'tal', supongo que estoy intentando aceder a algún espacio de memoria invalido.

En cambio si hago esto:

Form13->ListView1->Items->Item[0]->SubItems->Strings[0] = "hola";

me escribe sin problema en la columna 2 fila 1, sustituyendo segunda coluna por hola, pero no soy capaz de escribir en la fila 2 de la columna 2

Un saludo y gracias
¿Has creado la fila 2? Por cada fila tienes que ejecutar
Código:
Item = Form13->ListView1->Items->Add();
Saludos.
Responder Con Cita
  #7  
Antiguo 03-12-2008
11_8_88 11_8_88 is offline
Miembro
 
Registrado: may 2008
Posts: 25
Poder: 0
11_8_88 Va por buen camino
Muchas gracias escafandra, con la última contestación acabo de entender como funciona un listview y va todo perfe.

un saludo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Como puedo Crear un Listview con 2 columnas pmtzg Varios 1 17-11-2007 04:46:59
Escribir en diferentes edits a la vez creus Varios 4 07-01-2007 18:44:37
listview, autoajustar tamaño columnas munheko OOP 4 19-05-2005 19:55:36
como escribir texto en diferentes angulos? miguelogm Gráficos 4 12-03-2005 13:18:01
Alineamiento en columnas de ListView andre OOP 5 08-05-2003 15:03:37


La franja horaria es GMT +2. Ahora son las 21:01:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi