![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
||||
|
||||
|
Ordenar TListView
Tengo un TListView similar a este:
Titular Dato1 % Dato2 Titular1 1250 45,45% 10 Titular2 1500 54,55% 11 que quiero ordenar por la última columna para lo que estoy usando un método de burbuja con este código: Código:
AnsiString **cDatos;
int nItem, **nDatos;
cDatos = new AnsiString *[Simula->Items->Count];
nDatos = new int *[ListView->Items->Count];
for (nItem = 0; nItem < ListView->Items->Count; nItem ++)
{
cDatos[nItem] = new AnsiString[2];
nDatos[nItem] = new int[2];
}
for (nItem = 0; nItem < ListView->Items->Count - 1; nItem ++)
{
cDatos[nItem][0] = ListView->Items->Item[nItem]->Caption;
nDatos[nItem][0] = StrToIntDef(ListView->Items->Item[nItem]->SubItems->Strings[0], 0);
cDatos[nItem][1] = ListView->Items->Item[nItem]->SubItems->Strings[1];
nDatos[nItem][1] = StrToIntDef(ListView->Items->Item[nItem]->SubItems->Strings[2], 0);
}
for (int nUno = 1; nUno < ListView->Items->Count; nUno ++)
for (int nDos = 0; nDos < ListView->Items->Count - nUno; nDos ++)
if (nDatos[nDos][1] > nDatos[nDos + 1][1])
{
std::swap(nDatos[nDos][0], nDatos[nDos + 1][0]);
std::swap(nDatos[nDos][1], nDatos[nDos + 1][1]);
std::swap(cDatos[nDos][0], cDatos[nDos + 1][0]);
std::swap(cDatos[nDos][1], cDatos[nDos + 1][1]);
}
for (nItem = 0; nItem < ListView->Items->Count - 1; nItem ++)
{
ListView->Items->Item[nItem]->Caption = cDatos[nItem][0];
ListView->Items->Item[nItem]->SubItems->Strings[0] = nDatos[nItem][0];
ListView->Items->Item[nItem]->SubItems->Strings[1] = cDatos[nItem][1];
ListView->Items->Item[nItem]->SubItems->Strings[0] = nDatos[nItem][1];
}
Titular Dato1 % Dato2 12 Titular1 1500 98,62% 21 Y ya no sé como hacerlo. He probado con dos matrices como está arriba, con cuatro, metiendo el contenido de cada línea en un elemento de TStringList y el valro que me interesa en una matriz... ¡Da lo mismo! Me lo hace siempre mal. Última edición por Angel.Matilla fecha: 19-11-2018 a las 11:41:55. |
|
#2
|
||||
|
||||
|
¡Ya está aclarado! Estaba asignando mal als variables después de haber hecho la ordenación. ¡Seré burro!
|
|
#3
|
||||
|
||||
|
Hola.
Cita:
Código PHP:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ordenar objetos de mas grandes a mas pequeños en TListView | Reasen | Varios | 3 | 17-11-2016 17:51:52 |
| Ordenar TListView | Angel.Matilla | C++ Builder | 12 | 09-06-2014 18:42:44 |
| TListView | calogero | Varios | 0 | 18-01-2007 17:16:45 |
| Tlistview | Yenifer | Varios | 1 | 18-08-2004 16:33:44 |
| TlistView | perceptron | OOP | 2 | 04-12-2003 23:56:15 |
|