Dernier element d'un TListView [Résolu]

Signaler
Messages postés
24
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
8 février 2005
-
claudecg
Messages postés
2
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
19 janvier 2007
-
Bonjour,
Je voudrais faire apparaitre le dernier element d'un TListView. Lorsque je remplis mon TListView, je voudrais voir le defilement et l'ajout des nouveaux éléments, et non resté bloqué sur la position actuelle de la fenetre. Seulement je ne sais pas par quel bout aborder la chose... Si quelqu'un pouvais me donner une piste ce serais sympa.
Merci.
Emmanuel.

4 réponses

Messages postés
24
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
8 février 2005

Alors pour obtenir le focus sur le dernier element d'un TListView, il suffit de le selectionner:

//---- code -------------
procedure TFormArinc750.Arinc750Available(var msg: String);
var
subItems :TStrings;
ListAjout : TListItem;
begin
if(update = true) then
begin
subItems := StrExplode(msg,'|', false, -1);

ListAjout := ListView1.Items.Add;
ListAjout.Caption := subItems[0];
ListAjout.SubItems.Add(subItems[1]);

// Selection du dernier element
ListAjout.Focused:= true;
ListAjout.Selected := true;
end;

// Affichage à l'ecran de l'element selectionné
ListView1.Scroll(0,1000);
end;
//------------ fin code -------------------

la méthode utilisé n'est pas forcement la plus élégante, mais je n'en ai pas trouvé d'autre. Le TListView ne scrolle pas automatiquement sur l'element selectionné... et je ne sais pas pourquoi, ni comment le faire.

Si quelqu'un a autre chose à proposer je suis preneur.

Emmanuel.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
4
Hello,

Essaye ca : ListView1.Items.Item[I].Selected; Ca marche en lecture et en ecriture d'apres l'aide mais j'ai pas le temps d'essayer.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
24
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
8 février 2005

Salut,
Cela n'a pas l'effet escompté... Je dirais meme plus cela ne semble pas avoir d'effet... J'ai essayé une autre solution pour selectionné le dernier élément, et il etait bien selectionné mais le focus n'etait pas fait sur ce dernier. La selection etait donc faite hors affichage...
C'est pourquoi je suis un peu perdu... avec une ListBox, cela ne pose pas de probleme car il suffit de selectionner un element pour que le focus soit sur celui ci, mais ce n'est pas le cas avec un TListView.

Emmanuel.
Messages postés
2
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
19 janvier 2007

Bonjour,

moi je fais juste aprés : ListView1.Items.Add
ListView1.Scroll(0,40);

et ca marche !