...resize the width of the drop-down list of a TComboBox?

Author: Thomas Stutz

Category: VCL

procedure TForm1.Button1Click(Sender: TObject);
const
  
PIXEL_WIDTH = 200;
begin
  
ComboBox1.Perform(CB_SETDROPPEDWIDTH, PIXEL_WIDTH, 0);
end;


{With this Code, the drop-down list will automatically be sized to the longest string.}

procedure TForm1.Button2Click(Sender: TObject);
var
  
i, ItemWidth: Integer;
begin
  
ItemWidth := 0;
  with Combobox1 do
  begin
    for 
i := 0 to Items.Count - 1 do
      if 
(Form1.Canvas.TextWidth(Items[i]) <> ItemWidth) then
        
ItemWidth := Form1.Canvas.TextWidth((Items[i])) + 20;
    Perform(CB_SETDROPPEDWIDTH, ItemWidth, 0);
  end;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base