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 :
Voici le proto de ma fonction de tri :
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;
Et voici 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 l'endroit ou je souhaite faire le 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; }
A la compilation, il me retourne les 2 erreurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part MaList->Sort(ComparisonFunction);
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')
Partager