var i,max:integer;
begin
Max:=0;
for i:=0 to Listbox1.Items.Count -1 do
if Max<Length(listbox1.items[i]) then
Max:=Length(listbox1.items[i]);
end;
begin
Max:=0;
for i:=0 to Listbox1.Items.Count -1 do
if Max<Length(listbox1.items[i]) then
Max:=Length(listbox1.items[i]);
end;
begin
Max:=0;
for i:=0 to Listbox1.Items.Count -1 do
if Max<Length(listbox1.items[i]) then
Max:=Length(listbox1.items[i]);
end;ListBox1.Width := ListBox1.Canvas.TextWidth(Max);
//首先要设ListStyle 为lbOwnerDrawFixed
procedure TFormItemAdd.Button1Click(Sender: TObject);
var i,LongStr:integer;
s:string;
begin
LongStr:=0;
for i:=0 to Listbox1.Items.Count -1 do
begin
s:=listbox1.items[i];
if LongStr<ListBox1.Canvas.Length(s) then
LongStr:=ListBox1.Canvas.Length(s);
end;
ListBox1.Width := LongStr+6;
//加6是要算listbox框的宽度
//加多宽要根据框的宽度确定,同时还要考虑滚动条的情况,建议做个类直接使用TListBox.ClientWidth就避免了这些麻烦
//end;