es wird nix anderes übrig bleiben als alle eintrage durch zu gehen und mit Canvas.TextWidth die Breite des Textes zu ermitteln. Der breiteste Eintrag ist dann die Grundlage für die Breite der Scrollbar
Delphi-Quellcode:
var
lCount,
lWidth : Integer;
begin
lWidth := 0;
ListBox1.Canvas.Font.Assign(ListBox1.Font);
for lCount := 0 to ListBox1.Items.Count - 1 do
lWidth := Max(lWidth, Listbox1.Canvas.TextWidth(ListBox1.Items.Strings[lCount]));
SendMessage(Listbox1.Handle, LB_SETHORIZONTALEXTENT, lWidth + 20, 0);