DataModule Livre

Um datamodule livre é apenas um datamodule comum.

unit_FreeDataModule.pas
unit_FreeDataModule;

interface

uses
  SysUtils, Classes;

type
  TFreeDataModule = class(TDataModule)
  private
    { Declarações privadas }
  public
    { Declarações públicas }
  end;

implementation

{$R *.dfm}

end.

Esse tipo de datamodule é usado da mesma forma que era usado em aplicações VCL comuns. O usuário é totalmente responsável por criá-lo quando necessário e por liberá-lo assim que não for mais necessário.

A razão para usar esse tipo de datamodule vem do fato de que alguns componentes não visuais precisam de um host/container (ou é mais fácil usá-los dessa maneira). Um bom exemplo é uma ferramenta de relatórios, pois geralmente é colocada em um datamodule mesmo que o usuário vá usá-la apenas para exportar o relatório.

Uma razão adicional para usar datamodules é que nenhum "código de negócio" deve ser hospedado na camada de apresentação (TForm, TUniForm, qualquer form). Usar um datamodule livre permite ao desenvolvedor gerenciar recursos sob demanda, mantendo o uso de memória no mínimo.

O uso de datamodule livre é demonstrado nos demos do FastReport e ReportBuilder que estão disponíveis na pasta ..\demos\desktop.