title: Component disabling and enabling at runtime in Delphi 2K9. Weird problem
body: <p>Here is code:</p>
  
  <pre><code>procedure DisableContrlOL(const cArray : array of string; ReEnable : boolean = False);
  // can be called from VKP / RAW / Generation clicks
  var
    AComponent: TComponent;
    CompListDis, CompListEna : TStringList;
  begin
    CompListDis := TStringList.Create;
    CompListEna := TStringList.Create;
    for i := Low(cArray) to High(cArray) do begin
      AComponent := FindComponent(cArray[i]);
      if Assigned(AComponent) then
        if (AComponent is TControl) then begin
          if TControl(AComponent).Enabled then
            CompListEna.Add(TControl(AComponent).Name)
          else
            CompListDis.Add(TControl(AComponent).Name);
          ShowMessage(TControl(AComponent).Name);
          if ReEnable then begin // if reenabling needed, then all whi
            if not TControl(AComponent).Enabled then
              TControl(AComponent).Enabled := True;
          end else if (TControl(AComponent).Enabled) then
            TControl(AComponent).Enabled := False;
        end;
    end;
  end;
  </code></pre>
  
  <p>I think no more explanations are needed.
  The ShowMessage correctly shows name of each component, but nothing is added in StringLists. Why?</p>
  
  <hr>
  
  <p>UPDATE: As question has gone pretty wild, I did confirm answer, which a bit helped me.</p>
  
  <p>I understand that I did write things pretty unclear, but I am very limited, because these code lines is part of commercial project, and my hobby and heart thing. The main problem was found already 6h ago, but Rob just wanted to extend this whole question :D No, no offense, mate, it's OK. I am happy to receive so willing and helpful posts. Thanks again.</p>