Je sais qu'il existe une option quelque part pour faire en sorte que la TListBox se scrolle automatiquement pour afficher le derniere element lors d'un ajout de ligne mais je ne sais plus ou ?
Version imprimable
Je sais qu'il existe une option quelque part pour faire en sorte que la TListBox se scrolle automatiquement pour afficher le derniere element lors d'un ajout de ligne mais je ne sais plus ou ?
Code:
1
2ListBox1.ItemIndex := ListBox1.Items.Count -1; listbox1.setFocus;
Mouais ;) mais c'est quand meme genant de mettre le focus sur le TListBox.
Et j'ai oublier de preciser mais j'aimerais aussi eviter d'avoir a soit un reclangle pointillé, soit carrelement la selectio bleue ;)
Salut
Et comme ça ?
@+ ClaudiusCode:
1
2
3
4
5
6 with ListBox1 do begin ItemIndex := -1; SendMessage(Handle, LB_SETCARETINDEX, Items.Count - 1, 0); end;
Solution simple comme celle de Rayek
La listbox se place sur le denier element ajouté sans pour autant en prendre le focus je crois que c'est ce que tu cherches non?
Code:
1
2 ListBox1.ItemIndex := ListBox1.Items.Add('Test');
cela a pour effet de "selectionner" l'element. J'aimerias eviter ca.
Essaie avec TopIndex ... ca a l'air de marcher comme tu veux
Code:
1
2
3
4 Y := ListBox1.Items.Add('Test' + IntToStr(I)); ListBox1.TopIndex := Y; Inc(I);
Mais on dirait bien :)
J'ai teste ca sur un timer qui ajoute toutes les 100ms une chaine et on vois bien definier les elements.
Et si je clique en cours de route sur un element, la selection reste bien sur l'element et monte en ememe temps que lui ;)
Merci pour cette solution bien simple mais efficace :D
Mais y'a pas de quoi :mouarf:
Je ne connaissai pas et j'ai découvert ça en cherchant une solution a ton probléme :king: