IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Problème avec Sort() sur un TList


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Problème avec Sort() sur un TList
    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')

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour
    ta fonction de comparaison ne doit pas être un menbre de ta classe
    cette fonction de comparaison est identique a un callback

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int __fastcall ComparisonFunction(void *, void *);// déclaration de la fonction
     
    // appel de la fonction
    MaList->Sort(ComparisonFunction);
    cordialement

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par DjmSoftware
    bonjour
    ta fonction de comparaison ne doit pas être un menbre de ta classe
    cette fonction de comparaison est identique a un callback

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int __fastcall ComparisonFunction(void *, void *);// déclaration de la fonction
     
    // appel de la fonction
    MaList->Sort(ComparisonFunction);
    cordialement
    J'ai enlevé le mais ca ne fonctionne toujours pas, ca produit toujours les mêmes erreurs.

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    salut
    as tu déclarer ta fonction de comparaiosn hors de la déficition de ta classe
    cordialement

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par DjmSoftware
    salut
    as tu déclarer ta fonction de comparaiosn hors de la déficition de ta classe
    cordialement
    Oups excuse-moi je n'y avais pas prêté attention, voilà ca compile, manque plus qu'à voir si ca fonctionne correctement maintenant.

    Merci beaucoup pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XI] problème avec groupe sur un champ trié par origine ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 11/04/2007, 15h31
  2. problème avec select sur onchange
    Par Kerod dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/12/2005, 14h05
  3. Problèmes avec INTERSECT sur MYSQL
    Par zarbydigital dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/09/2005, 13h18
  4. Problème avec OnDrawColumnCell sur un DBGrid
    Par n1portki dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/09/2005, 04h18
  5. Problème avec RDTSC sur K6-III
    Par le mage tophinus dans le forum x86 32-bits / 64-bits
    Réponses: 17
    Dernier message: 30/09/2003, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo