| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Mar 08 Abr, 2008 7:34 pm Asunto: Añadir elementos listview |
|
|
tengo un programa el cual deseo modificar un listview del mismo de la siguiente manera:
Este listview consta de un sola columna y de elementos que se le van añadiendo, también consta de un popupmenu con el cual le añado una columna en tiempo de ejecución. Bueno pues lo que quiero es que en esa nueva columna que añado me aparezca un texto guardado previamente en un archivo. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 09 Abr, 2008 7:14 am Asunto: |
|
|
O no lo entiendo o te has liado
La columna, ¿Dónde la quieres añadir? ¿En el ListView o en el PopupMenu? Si es en el LIstview tienes que tener definido a nivel del elemento completo las columnas, con un TListColumn y luego añadir las que te vayan haciendo falta a través de un TListItem.
| Código: | TLIstColum *pColumn;
TLisItem *pItem;
pColumn = ListView1->Columns->Add();
pColumn->Caption = "Columna 1";
etc.
pItem = ListView1->Items->Add();
pItem->Caption = "Item 1, Columna 1";
pItem->SubItems->Add("Item 1, Columna 2");
etc. |
Un PopupMenú me parece que no tiene columnas, salvo que entiendas como tales los submenús. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Mie 09 Abr, 2008 11:46 am Asunto: |
|
|
Gracias Angel por tu respuesta pero lamentablemente no hace lo que deseo.
Funciona pero a medias, donde quiero añadir la columna es al listview y eso si lo hace bien tu código, el problema viene a la hora de crear los items de la columna nueva añadida. Tu código añade items a la primera columna y no es eso lo que deseo, únicamente debe añadirlos a la nueva columna creada y los captions de los mismos deben cargarse de un archivo previamente guardado. Espero haberme explicado mejor esta vez. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 09 Abr, 2008 1:29 pm Asunto: |
|
|
Con el código que te he puesto vas añadiendo elementos a la siguiente columna libre que hay, pero como sabes cuantas columnas hay creadas (ListView1->Columns->Count, me parece) te basta con ir insertando ítemes vacíos hasta llegar al que te interesa. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
edwinhp2 Lt JG

Registrado: 19 Nov 2005Mensajes: 67
|
Publicado: Mie 09 Abr, 2008 5:30 pm Asunto: |
|
|
A ver si entendí tu pregunta, aunque considero que el código de Ángel es correcto, solo es adecuarlo.
Voy a poner un ejemplo de lo que entendí de tu pregunta:
[code]
TLIstColum *pColumn;
TLisItem *pItem;
TStringList* ListaCaptions;
int i(0);
try
{
ListaCaptions = new TStringList;
ListaCaptions->LoadFromFile(...);
ListView->Items->BeginUpdate();
pColumn = ListView->Columns->Add();
pColumn->Caption = "Nueva columna";
while ( i < ListaCaptions->Count )
{
//Agregamos una nueva línea
pItem = ListView->Items->Add();
for ( int j=0; j < ListView->Columns->Count - 1; j++ )
pItem->SubItems->Add("Texto de las columnas antes de la última");
//Agregamos el caption de la última columna
pItem->SubItems->Add(ListaCaptions->Strings[i]);
i++;
}
ListView->Items->EndUpdate();
}
__finally
{
delete ListaCaptions;
}
[/code]
Espero que esto te ayude.
Saludos. |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Mie 09 Abr, 2008 7:08 pm Asunto: |
|
|
Gracias a los dos ya lo tengo solucionado, resulta que el programa ya me leia un archivo de texto y lo he aprovechado para ir cogiendo los captions de los nuevos items añadidos. Doy por cerrado el tema. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
|