Scrolling horizontal dans TListBox
Bonjour,
J'ai ajouté l'appel à la procédure suivante après le chargement du contenu de chacune de mes différentes ListBox afin d'ajouter la barre d'ascenseur horizontale quand c'est nécessaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| procedure AjouterAscenseurHorizontalListBox (listBox : TListBox);
var
intWidth,
j,
intMaxWidth : integer;
begin
intMaxWidth := 0;
for j := 0 to listBox.Items.Count - 1 do
begin
intWidth := listBox.Canvas.TextWidth (listBox.Items.strings [j]);
if intWidth > intMaxWidth then
intMaxWidth := intWidth;
end;
SendMessage (listBox.Handle, LB_SETHORIZONTALEXTENT, intMaxWidth, 0);
end; |
Cela fonctionne globalement mais pas avec précision ;
il semble que les calculs de taille du texte ne tiennent pas compte de la police définie par la propriété "Font" de la ListBox considérée.
Quelqu'un a-t-il une idée pour résoudre ce problème ?
Merci d'avance pour votre aide
OK suite à conseil de ShaiLeTroll
En ajoutant l'instruction suivante :
"listBox.Canvas.Font := listBox.Font;"
en début de procédure, comme conseillé par ShaiLeTroll, le scrolling de la ListBox fonctionne maintenant correctement.