Dernier element d'un TListView

Résolu
ptitmanu Messages postés 23 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 8 février 2005 - 14 déc. 2004 à 15:21
claudecg Messages postés 2 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 19 janvier 2007 - 19 janv. 2007 à 17:50
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

ptitmanu Messages postés 23 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 8 février 2005
15 déc. 2004 à 18:15
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.
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
14 déc. 2004 à 15:58
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.
0
ptitmanu Messages postés 23 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 8 février 2005
14 déc. 2004 à 16:24
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.
0
claudecg Messages postés 2 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 19 janvier 2007
19 janv. 2007 à 17:50
Bonjour,

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

et ca marche !
0
Rejoignez-nous