title: How to get a list of all components on the Form at Design-Time?
body: <p>I need to get a list of all components on the Form at Design-Time (not controls, just components).</p>
  
  <p>The components must also be visible on the Form as a 24x24 image at Design-Time.</p>
  
  <p>I could use code like this</p>
  
  <pre><code>procedure TForm2.GetComponentList(Memo1: TMemo)
  var
    i: Integer;
  begin
   for i := 0 to ComponentCount-1 do
     if (Components[i] is TComponent) and not (Components[i] is TControl) then
      Memo1.Lines.Add(Components[i].Name);
  end;
  </code></pre>
  
  <p>but here I will get invisible components like TField etc.</p>
  
  <p>I need only components that the IDE show on the Form as a 24x24 bitmap.</p>
  
  <p>May be I can use Open Tools API?</p>