Comment incrementer la position d'un Listview ? [Résolu]

Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
- - Dernière réponse : vieuxpere
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
- 22 juin 2009 à 22:37
Bonjour,
je n'arrive pas à incrémenter la postion d'un lisview.

Pour ce faire, j'utilise le code suivant :
ListView1.ItemIndex:=ListView1.ItemIndex+1;

Ca marche trés bien sur un listbox mais sur ce type de composant.

J'ai aussi essayé :
ListView1.SetFocus;
ListView1.ItemIndex:=ListView1.ItemIndex+1;

Mais c'est pas mieux !

Si quelqu'un à une idée ...
Merci par avance.
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
3
Merci
Penser à mettre la propriété HideSelection à False pouvoir faire ressortir l'élément sélectionné.
Voici le code tout simple qui passe à l'élément suivant :

procedure TForm1.Button1Click(Sender: TObject);
begin
  with ListView1 do
    if Assigned(Selected) and (Selected.Index < Items.Count - 1) then
      Selected := Items[Selected.index + 1];
end;

May Delphi be with you<hr />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Delphiprog
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
3
Merci
ben je vois pas pourquoi ça ne fonctionnerait pas chez toi !!!
je l'ai testé dans tous les modes (vsIcon, vsSmallIcon, vsList & vsReport)
et j'ai également plusieurs colonnes !!!

 
@+
Cirec

<hr siz="" />

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
3
Merci
Bonjour,

J'ai trouvé !!!
C'était la propriété MultiSelect qui m'embettait, je l'ai mis à False et l'affaire a été réglé.

Merci encore à tous.

VP.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de vieuxpere
Messages postés
3
Date d'inscription
dimanche 21 juin 2009
Dernière intervention
21 juin 2009
0
Merci
ViewStyle propriété doit être définie à vsList ou vsReport
vers le haut (/\)

if(ListView1.ItemIndex <> 0)and(ListView1.Selected <> nil)then
  begin
    ListView1.Items.BeginUpdate;
    try
      ListView1.Items.Insert(ListView1.Selected.Index+2).Assign(ListView1.ItemFocused);
      ListView1.ItemFocused.Delete;
    finally
      ListView1.Items.EndUpdate;
    end;
  end;

vers le bas (\/)

if(ListView1.ItemIndex <> 0)and(ListView1.Selected <> nil)then
  begin
    ListView1.Items.BeginUpdate;
    try
      ListView1.Items.Insert(ListView1.Selected.Index-1).Assign(ListView1.ItemFocused);
      ListView1.ItemFocused.Delete;
    finally
      ListView1.Items.EndUpdate;
    end;
  end;
Commenter la réponse de Grudziecki
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
Bonjour et merci de ta réponse.
Mon listview est à VsReport et j'ai besoin d'incrementer comme suit (postion du listview actuelle +1), je dois donc aller vers le bas.

Mon probléme c'est que je n'arrive pas à utiliser ton code, ça compile mais ca n'incremente pas la postion de mon listview.

Merci de votre aide.
Commenter la réponse de vieuxpere
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
En gros, je veux faire un bouton qu'a chaque fois que je clique dessus la position de l'itemIndex du listview avance de 1.
Commenter la réponse de vieuxpere
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
Merci DelphiProg pour ta réponse.

Mais j'ai mon Listview qui ne s'incremente pas de sa position initiale.
Commenter la réponse de vieuxpere
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Salut,

tu ne vois pas la sélection changer parce que la ListView n'a plus le focus !!!
essaye comme ça :
procedure TForm1.Button1Click(Sender: TObject);
begin
  with ListView1 do
    if Assigned(Selected) and (Selected.Index < Items.Count - 1) then
    begin
      Selected := Items[Selected.index + 1];
      SetFocus ;
    end;
end;

 
@+
Cirec

<hr siz ="" />
Commenter la réponse de Cirec
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
J'ai deux lignes sur mon listview qui se selectionne à partir de ma position initiale mais mon mon listview ne s'incremente pas.

J'en suis sur car j'ai fait un : ShowMessage(IntToStr(ListView1.ItemIndex));
Commenter la réponse de vieuxpere
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
ps: avec le premier code il faut sélectionner le premier Item en cliquant dessus

mets un showmessage avant et après et tu verras que sa valeur change !!!!

voici un autre code qui fonctionne dans tous les cas

procedure TForm1.Button11Click(Sender: TObject);
begin
  with ListView1 do
  begin
    if Assigned(Selected) and (Selected.Index < Items.Count - 1) then
    begin
      //ShowMessage(IntToStr(ListView1.ItemIndex));
      Selected := Items[Selected.index + 1];
      //ShowMessage(IntToStr(ListView1.ItemIndex));
    end
    else
    if Items.Count > 0 then
      Selected := Items[0];
    SetFocus;
    end;
end;

ce code a été testé et fonctionne parfaitement (comme le premier d'ailleurs )!!!

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
Merci de votre patience, je fais un peu demeuré mais ce code (dans mon cas) ne fonctionne pas.

J'ai plusieurs collones, ça peut avoir un rapport ?
Commenter la réponse de vieuxpere
Messages postés
199
Date d'inscription
samedi 3 janvier 2004
Dernière intervention
17 décembre 2014
0
Merci
Quelque chose doit m'échapper alors, je vais bien revoir ceci. En tous cas merci encore.

Cordialement,
Commenter la réponse de vieuxpere

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.