Bonjour,
j'ai une liste de type TList dans laquelle j'ajoute des Lignes de type PLIgne :
j'ajoute les 3 lignes suivantes que j'affiche dans un ListBox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Type PLigne = ^TLigne ; TLigne = Record Nom : String ; Largeur : Integer ; Hauteur : Integer ; End; Var Liste : TList ; LMax : Integer ;
je trie la liste avec le code suivant :AAA 100 100
000 200 200
_AA 300 300
après mise à jour de LB1, j'obtiens
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
16
17
18
19
20
21
22 { ===================================================================== } Function FonctionTri(Item1,Item2:Pointer):Integer ; // Tri selon la 1ere colonne : Nom Begin If PLigne(Item1).Nom < PLigne(Item2).Nom Then Result := -1 Else If PLigne(Item1).Nom > PLigne(Item2).Nom Then Result := 1 Else Result := 0 ; End; { ===================================================================== } procedure TriListe; // Tri suivant la colonne 1 : Nom Var i : Integer ; begin Liste.Sort(FonctionTri) ; MAJListBox ; end; { ===================================================================== }
je voudrais obtenir :000 200 200
AAA 100 100
_AA 300 300
car normalement _ est avant 0 (comme dans l'explorateur de fichiers)_AA 300 300
000 200 200
AAA 100 100
Comment dois je modifier ma fonction de tri ?
Voici le code de mon test :
TestListe.zip
Merci
A+
Charly
Partager