title: Registering custom TClientDataSet but I do not see Fields created in the constructor
body: <p>I created a custom TClientDataset that I then registered as a design time component.</p>
  
  <pre><code>TMyDataset = class(TClientDataset)
  public
  constructor Create(AOwner : TComponent); override;
  end;
  </code></pre>
  
  <p>in the Create method, I created the fields of this dataset</p>
  
  <pre><code>implementation
  
  constructor TMyDataset.Create(aOwner : TComponent);
  var
    lField : TStringField;
  begin
    inherited Create(aOwner);
    lField := TStringField.Create(Self);
    lField.FieldName := 'NAME';
    lField.Dataset := Self;
    Fields.Add(lField);      
  end;
  </code></pre>
  
  <p>When registering the component as such</p>
  
  <pre><code>procedure Register;
  begin
  RegisterComponents('Queries', [TMyDataset]);
  end;
  </code></pre>
  
  <p>And dropping the TMyDataset onto a form, <strong>I do not see the <code>NAME</code> field in the Fields collection of this dataset</strong>. </p>
  
  <p>My goal is to define and register these predefined queries so I can use them at design time. </p>
  
  <p>I would like to prevent anyone using this component from redefining the Fields of this dataset, but still be able to see them in the visual editor to bind cxGrid or such (automatic column creation and so on).</p>
  
  <p>Also, this Dataset is only a placeholder for another dataset. It will only serve to present the Fields collection to other visual editors that can bind to them.</p>
  
  <p>My question is  : </p>
  
  <p>Why can't I see the field I created in the constructor in the visual editor and how can I make it visible?</p>
  
  <p>How can I override the behavior of the component to never save the user modifications on its TFields into the DFM ?</p>
  
  <p>Thank you </p>