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


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 04 Sep, 2009 10:25 am Asunto: TListView y Tag |
|
|
Seguro que es una tontería. Igual que cada objeto de Buolder tiene su propiedad Tag, ¿a cada ítem de un TListView se le puede definir un tag individual? Es decir:
| Código: | TListItem *pItem;
pItem = ListView1->Items->Add();
pItem->Caption = "Caption"; pItem->SubItems->Add("Subitem");
pItem->Tag = 1; |
¿Se podría hacer esto? _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 04 Sep, 2009 2:42 pm Asunto: |
|
|
No, Tag solo es parte del componente, no de cada uno de sus elementos. Para eso puedes utilizar "Data" que se usa para asociar "algo" a cada elemento usando un puntero. Por ejemplo:
// Asignamos un entero a Data:
pItem->Data = reinterpret_cast<PVOID>(1);
// Y para recuperar el valor usamos:
int entero = reinterpret_cast<int>(pItem->Data); |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 04 Sep, 2009 3:34 pm Asunto: |
|
|
Un puntero a cualquier tipo de dato. Un pequeño ejemplo:
- Definimos una estructura: | Código: | struct InformacionExtra {
String nombre;
int edad;
InformacionExtra(String n, int e) : nombre(n), edad(e) { };
}; |
- La usamos para añadir información extra a los elementos del TListView: | Código: | TListItem* item = ListView1->Items->Add();
item->Caption = "Caption";
item->Data = new InformacionExtra("prueba", 20); |
- En el evento "OnDeletion" del TListView añadimos el código que servirá para liberar la memoria: | Código: | if (Item->Data)
delete static_cast<InformacionExtra*>(Item->Data); |
- Y para acceder a esa información extra desde otro lugar del programa: | Código: | InformacionExtra* info = static_cast<InformacionExtra*>(ListView1->Items->Item[0]->Data);
ShowMessage(info->nombre); |
Pero vamos que se puede asociar cualquier tipo de puntero a cualquier cosa.. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
|