Ver Mensaje Individual
  #3  
Antiguo 19-11-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por Angel.Matilla Ver Mensaje
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:
Como una mejor alternativa al método de ordenamiento que mencionas, te pongo un ejemplo que ordena por la columna sobre la que se hizo click:
Código PHP:
...
int inxSort 0;

// OnCompare
void __fastcall TForm1::ListView1Compare(TObject *SenderTListItem *Item1,
  
TListItem *Item2int Dataint &Compare)
{
  if (
inxSort == 0// Titular
    
Compare strcmp(Item1->Caption.c_str(), Item2->Caption.c_str());
  else { 
// Dato1 - % - Dato2  
    
Double a atof(Item1->SubItems->Strings[inxSort-1].c_str());
    
Double b atof(Item2->SubItems->Strings[inxSort-1].c_str());
    
Compare ? -: (0);
  }
}

// OnColumnClick
void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
  
TListColumn *Column)
{
  
inxSort Column->Index;
  
ListView1->AlphaSort();

Dada la descripción que diste arriba, supuse los items: "Dato1", "%" y "Dato2" de tipo numéricos. El ordenamiento se realiza de forma ascendente.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita