Dann mußt du erstmal mit TextWidth in einer Schleife die Größe des breitesten Eintrages holen.
Delphi-Quellcode:
procedure TForm1.ComboBox1DropDown(Sender: TObject);
var i, textwidth: integer;
begin
textwidth := ComboBox1.Width;
for i := 0 to ComboBox1.Items.Count - 1 do begin
if ComboBox1.Canvas.TextWidth(ComboBox1.Items.Strings[i]) > textwidth then begin
textwidth := ComboBox1.Canvas.TextWidth(ComboBox1.Items.Strings[i]) + 10;
end;
end;
SendMessage(Combobox1.Handle, CB_SETDROPPEDWIDTH, textwidth, 0);
end;