Para colocar una barra de desplazamiento horizontal en un ListBox, de manera que puedan verse las entradas largas puede aplicarse el siguiente procedimiento:
Código Delphi
[-]
procedure SetHorizontalScrollBar(ListBox: TListBox);
var
W, I: Integer;
begin
with ListBox do
begin
W := ClientWidth;
for I := 0 to Items.Count - 1 do
if W < Canvas.TextWidth(Items[i]) then
W := Canvas.TextWidth(Items[i]);
if W > ClientWidth then
Inc(W, 4);
Perform(LB_SETHORIZONTALEXTENT, W, 0);
end;
end;
La barra sólo se coloca si hay entradas más largas que el ancho del control.
Este procedimiento se aplicaría cada vez que ocurra un cambio en el ListBox, como inserción, remoción o modificación de entradas.