Il doit sûrement y avoir plus simple, mais je ne trouve pas.
Il ne s'agit pas de trier les éléments mais de pouvoir les faire monter ou descendre d'un cran à l'aide d'un bouton.
J'ai donc un TListView qui s'appelle lv1, je le remplis avec quelques éléments, et ensuite je souhaite réagencer les éléments comme je le souhaite.
Voici la code que j'utilise pour remonter l'élément d'un cran (même raisonnement pour le descendre), qui ne me semble pas très performant :
N'y aurait-il pas une fonction qui fasse ça plus simplement ? J'ai regardé les méthodes de TlistView et de TAppearanceListView (qui représentent les items de la liste), mais je n'ai pas trouvé.
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 procedure TForm1.bhautClick(Sender: TObject); var s: string; b: TBitmap; begin if lv1.ItemIndex>0 then begin b:=tbitmap.Create; try s:=lv1.Items[lv1.ItemIndex-1].text; b.Assign(lv1.Items[lv1.ItemIndex-1].bitmap); lv1.Items[lv1.ItemIndex-1].text:=lv1.items[lv1.itemindex].text; lv1.Items[lv1.ItemIndex-1].bitmap.assign(lv1.items[lv1.itemindex].bitmap); lv1.Items[lv1.ItemIndex].text:=s; lv1.Items[lv1.ItemIndex].bitmap.assign(b); lv1.ItemIndex:=lv1.ItemIndex-1; finally b.Free; end; end; end;
Merci de vos réponses avisées !
Bien cordialement
Partager