title: Delphi Adding Items to ComboBox Speed
body: <p>I have a fairly complex and large application that hands loads and loads of data.  Is there a speedy way to add items to ComboBox that doesn't take so long?  On my P3 3.2ghz, the following snippet takes just under a second to add around 32,000 items.  (MasterCIList is a StringList with strings typically 20 - 30 bytes long).  </p>
  
  <pre><code>with LookupComboBox do
   begin
    Items.BeginUpdate;
    Items.Clear;
    for i := 0 to MasterCIList.Count - 1 do
     Items.Add(MasterCIList[i]);
    Items.EndUpdate;
   end;
  </code></pre>
  
  <p>Drilling down into the VCL, it appears that in <code>TComboBoxStrings.Add</code>, there is a call to </p>
  
  <pre><code>Result := SendMessage(ComboBox.Handle, CB_ADDSTRING, 0, Longint(PChar(S)));
  </code></pre>
  
  <p>I'm guessing this is really taking up time (okay, I know it is).  Is there another way to populate the Items that is speedier?  Any high-speed combo boxes available?  I have the TMS components but they seem to be extensions of TComboBox.  </p>
  
  <p>For instance, I have the PlusMemo which seems to be a total rewrite of a TMemo.  I can easily add a million line in a second to a PlusMemo.  A TMemo, I don't think so.</p>
  
  <p>Thank you so much for your time!</p>