Bonjour à tous,

Je suis entrain de m'arracher les cheveux avec la méthode Sort() de TList et je voudrais faire appel à votre savoir faire.

Voici ma structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
typedef struct AClassement
{
  AnsiString Tag;
  int Nbt;
  TDateTime Temps;
} TAClassement;
 
typedef TAClassement* PAClassement;
Voici le proto de ma fonction de tri :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
public:		// User declarations
        int __fastcall ComparisonFunction(void *, void *);
Et voici ma fonction de tri :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
int __fastcall TClassements::ComparisonFunction(void *Item1, void *Item2))
{
  if (PAClassement(Item1)->Nbt < PAClassement(Item2)->Nbt)
    return -1;
  else
  if (PAClassement(Item1)->Nbt > PAClassement(Item2)->Nbt)
    return 1;
  else
    return 0;
}
Et voici l'endroit ou je souhaite faire le tri :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
MaList->Sort(ComparisonFunction);
A la compilation, il me retourne les 2 erreurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[C++ Error] CLA.cpp(163): E2034 Cannot convert 'int (_fastcall * (_closure )(void *,void *))(void *,void *)' to 'int (_fastcall *)(void *,void *)'
[C++ Error] CLA.cpp(163): E2342 Type mismatch in parameter 'Compare' (wanted 'int (_fastcall *)(void *,void *)', got 'void')