title: Create objects in runtime and work with them
body: <p>I'm having problem with object(s) created while my program is running</p>
  
  <p>First I create n objects (let's say that n := 3)</p>
  
  <pre><code>for i:=0 to n-1 do
    begin
      With TGauge.Create(Form1) do
        begin
          Parent  := Form1;  // this is important
          Left    := 20;     // X coordinate
          Top     := 20+i*45;     // Y coordinate
          Width   := 250;
          Height  := 20;
          Kind    := gkHorizontalBar;
          Name    := 'MyGauge'+IntToStr(i);
          //.... 
          Visible := True;
        end;
    end;
  </code></pre>
  
  <p>These 3 objects are created and visible in the form. Now I want to alter its' property, but whenever I try to access these created object I only get </p>
  
  <pre><code>EAccessViolation
  </code></pre>
  
  <p>for example when I try to get name of one object</p>
  
  <pre><code>g := Form1.FindComponent('MyGauge0') as TGauge;
  Form1.Label1.Caption:=g.Name;
  </code></pre>