Listbox en guise de log

Résolu
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 - 13 mai 2005 à 20:44
speletux Messages postés 30 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 6 février 2014 - 25 sept. 2005 à 05:41
salut a tous,

jai pose un listbox pour servir de log dans sur mon appli cependant, lorsque des lignes s ajoutent, ce sont toujours les premieres lignes qui sont affiches.
je veux dire que l affichage de la liste ne se decale pas.

y a t il une propriete pour cela ?

3 réponses

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
13 mai 2005 à 21:45
Salut,



Ben, je crois que tu peux utiliser la propriété TopIndex dans le genre :



ListBox1.TopIndex:= ListBox1.Items.Count-1;



Après avoir ajouté une ligne ... Et si le nombre de lignes ne justifie pas un scroll, il n'est pas exécuté.


Ken@vo

<hr size="2" width="100%">Code, Code, Codec !


http://www.pourflorenceethussein.org/
3
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 1
14 mai 2005 à 00:53
donc, il faut que je mette ca apres chaque ajout..

merci bien
0
speletux Messages postés 30 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 6 février 2014
25 sept. 2005 à 05:41
Tu utilises le ListBox comme console de log ou comme console de suivi ?



Si tu l'utilise comme console de suivi (un peu comme lorsque tu lances
des programmes graphiques sous Linux et que ceux-ci balancent des
informations d'état sur la sortie standard), pour éviter une saturation
de ta ListBox, pense à ne conserver que les 500 à 1000 dernières lignes.



Tu dois envisager une procedure de type

procedure AfficherMessage(const Msg: string)



qui gèrera l'envoi de messages de log.



Exemples d'AfficherMessage:



Pour Windows:

procedure AfficherMessage(const Msg: string)

const MaxLines = 666;

begin

with ListBox1 do begin

Items.Add(Msg); // ajoute ligne

if Items.Count > MaxLines then

Items.Delete(0); // supprime la première ligne

Items.ItemIndex:=ItemsCount-1; // se positionne sur dernière ligne

end;

end;



Pour Linux (Kylix ou Free Pascal):


procedure AfficherMessage(const Msg: string)


const MaxLines = 666;


begin


WriteLn(Msg);


end;

en lançant ton programme ds un terminal.

Tu peux faire un log bon marché en tapant à l'invite de commandes:



monprogrammedelphidelamort > monlogquitue.txt



monprogrammedelphidelamort: nom de ton appli

> : rediriger les sorties de ton programmes vers

monlogquitue.txt: ton fichier log
0
Rejoignez-nous