title: Is it possible to using Data Module without .DFM?
body: <p>I offloaded all ADO hood in a separate Data Module, so a single module can be referred by several applications. All my applications basically need only two <em>worker</em> methonds to access data:</p>
  
  <p><code>AdoQuery</code> delivers a result set in a form of <code>TADODataSet</code>.<br>
  <code>AdoExecute</code> performs simple update/delete queries without fetching any results.</p>
  
  <p>Here is the class structure:</p>
  
  <pre><code>type
    TMyDataModule = class(TDataModule)
      procedure DataModuleCreate(Sender: TObject);
      procedure DataModuleDestroy(Sender: TObject);
    private
      procedure pvtAdoConnect;
      procedure pvtAdoExecute(const sql: string);
      function pvtAdoQuery(const sql: string): TADODataSet;
    public
      AdoConnection: TADOConnection;
    end;
  </code></pre>
  
  <p>Then I added two publicly exposed wrappers to class methods. I used that to avoid long class references in the calls:</p>
  
  <pre><code>function AdoQuery(const sql: string): TADODataSet;
  procedure AdoExecute(const sql: string);
  
  implementation
  
  function AdoQuery(const sql: string): TADODataSet;
  begin
    Result := MyDataModule.pvtAdoQuery(sql);
  end;
  </code></pre>
  
  <p>Above are the <em>worker</em> function which I call from within all my forms. </p>
  
  <p><code>AdoConnect</code> runs only once on <code>DataModuleCreate</code> event. TDatModule derived from <code>TPersistent</code>, which allows to persist the single instance of connection throughout a runtime.</p>
  
  <p>The only thing that annoys me so far - is a useless .DFM which I don't need at all.<br>Is there any option to get rid of it?</p>