Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   como escribir en las diferentes columnas de un ListView (https://www.clubdelphi.com/foros/showthread.php?t=62017)

11_8_88 01-12-2008 16:47:03

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.

escafandra 01-12-2008 19:09:30

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.

11_8_88 03-12-2008 12:18:21

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

escafandra 03-12-2008 12:34:23

Cita:

Empezado por 11_8_88 (Mensaje 329360)
//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.

11_8_88 03-12-2008 12:46:49

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

escafandra 03-12-2008 14:21:53

Cita:

Empezado por 11_8_88 (Mensaje 329364)
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.

11_8_88 03-12-2008 14:50:43

Muchas gracias escafandra, con la última contestación acabo de entender como funciona un listview y va todo perfe.

un saludo


La franja horaria es GMT +2. Ahora son las 00:03:17.

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