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

vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 21 juin 2009 à 13:49 - Dernière réponse : vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention
- 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 

12 réponses

Répondre au sujet
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 21 juin 2009 à 22:57
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Delphiprog
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 juin 2009 à 12:05
+3
Utile
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="" />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Cirec
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 22 juin 2009 à 22:37
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de vieuxpere
Grudziecki 3 Messages postés dimanche 21 juin 2009Date d'inscription 21 juin 2009 Dernière intervention - 21 juin 2009 à 15:01
0
Utile
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
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 21 juin 2009 à 15:33
0
Utile
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
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 21 juin 2009 à 15:41
0
Utile
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
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 22 juin 2009 à 00:17
0
Utile
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
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 juin 2009 à 00:34
0
Utile
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
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 22 juin 2009 à 00:59
0
Utile
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
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 juin 2009 à 01:28
0
Utile
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
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 22 juin 2009 à 01:56
0
Utile
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
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 22 juin 2009 à 14:48
0
Utile
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.