Sauvegarder position listbox

Résolu
julienjp Messages postés 6 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 13 octobre 2010 - 2 déc. 2009 à 11:39
julienjp Messages postés 6 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 13 octobre 2010 - 9 déc. 2009 à 10:25
Bonjour je travaille actuellement sur un petit programme qui me permet de savoir le temps passé sur une application, processus.

Mon programme comporte une listbox qui se rafraichit à l'aide d'un timer toute les XX ms mais chaque fois que je rafraichit, "l'ascenseur" de ma listbox se remet en haut...
comment pourrais-je faire pour qu'il garde sa position lorsque mon timer agit ?

l'interface de mon programme :

Merci d'avance de vos réponse.

6 réponses

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 9
2 déc. 2009 à 12:54
var
 N: Integer;
begin
 N := ListBox.ItemIndex;
 ListBox.BeginUpdate;
 
 // Traitement

 ListBox.EndUpdate;
 if N <> -1 then ListBox.ItemIndex := N;
end;


Ca devrait marcher.

Cordialement, Bacterius !
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 48
2 déc. 2009 à 13:00
Salut,

si la liste à changée N n'est peut être plus un index valide !!!
et si il est valide il ne pointe peut être plus sur le bon Item


[hr]@+Cirec
[hr]
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 9
2 déc. 2009 à 13:06
Désolé je n'y avais pas pensé.
Mais il existe une méthode plus propre et qui s'adapte à ton problème : tu garde en mémoire une chaîne sur le nom du processus (voir IndexOf), puis à la fin du traitement tu restitues la ligne sur le nom du processus (IndexOf aussi).

Cordialement, Bacterius !
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2010 14
2 déc. 2009 à 14:22
Elle n'est pas "plus propre" mais simplement "plus juste" car la première solution ne correspond pas au bon index puisque la liste est rafraichie.
Risque donc de mettre un index trop grand (et Exception) ou repositionner l'index sur le mauvais item.
L'IndexOf est donc le mieux !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julienjp Messages postés 6 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 13 octobre 2010
7 déc. 2009 à 20:43
Salut, désolé de répondre aussi tard... mais ton code ne fonctionne pas et comme tu l'as avec IndexOf je n'est pas compris.
0
julienjp Messages postés 6 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 13 octobre 2010
9 déc. 2009 à 10:25
edit : finalement j'ai réussi. merci à toi
0