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

Langage Delphi Discussion :

tri d'une liste


Sujet :

Langage Delphi

  1. #1
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut tri d'une liste
    Je voudrais trier une liste d'entier, mais je n'ai pas bien compris comment ça marchait (j'ai pas pu faire une recherche, je pense que la question a déjà été posée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure main;
    begin
    ListCoupJouable:=TList.create;
    ...
    ListCoupJouable.Sort(TriListe);
    ...
    end;
     
     
    function TForm1.TriListe(item1,item2:Pointer):Integer;
    begin
      if Integer(item1)>Integer(item2) then result:=1
          else if Integer(item1)<Integer(item2) then result:=-1
          else result:=0;
    end;
    j'ai l'erreur suivante (sur la ligne ListCoupJouavle.Sort(TriListe)):
    [Erreur] Unit1.pas(694): Types incompatibles : 'procédure normale et pointeur de méthode'

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut Re: tri d'une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function TriListe(item1,item2:Pointer):Integer;
    begin
      if Integer(item1)>Integer(item2) then result:=1
          else if Integer(item1)<Integer(item2) then result:=-1
          else result:=0;
    end;
     
    procedure main;
    begin
    ListCoupJouable:=TList.create;
    ...
    ListCoupJouable.Sort(TriListe);
    ...
    end;
    Ca doit marcher comme ca ...

  3. #3
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Ca marche.

    Merci.

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    TList.Sort : Ca trie. Mais par ordre croissant uniquement...

    A+
    Consultez :
    - La F.A.Q Delphi + Les Cours Delphi
    - La sélection des Freewares Delphi

  5. #5
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par delphi-fan
    TList.Sort : Ca trie. Mais par ordre croissant uniquement...

    A+
    C'est faux !!

    En fait c'est la fonction que tu donne en paramètre qui définis l'ordre de tri.

    En fait si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function TriListeInverse(item1,item2:Pointer):Integer; 
    begin 
      if Integer(item1)>Integer(item2) then result:=1 
          else if Integer(item1)<Integer(item2) then result:=0 
          else result:=-1; 
    end; 
     
    procedure main; 
    begin 
    ListCoupJouable:=TList.create; 
    ... 
    ListCoupJouable.Sort(TriListeInverse); 
    ... 
    end;
    tu aura le tri inverse.

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

Discussions similaires

  1. Tri d'une liste d'attente avec priorité
    Par boutchz dans le forum Access
    Réponses: 8
    Dernier message: 02/03/2006, 18h42
  2. [SQL] Tri d'une liste!!!
    Par frutix dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/02/2006, 10h00
  3. [Requête] Tri via une liste déroulante
    Par Burnout dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/01/2006, 18h16
  4. Tri d'une liste d'objet CObList
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 13/07/2005, 13h50
  5. [TRI] tri d'une list provenant de LabelValueBean
    Par Canou dans le forum Struts 1
    Réponses: 6
    Dernier message: 20/09/2004, 14h55

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