Criando DataModule em tempo de execução.
Bom dia,
Estou tentando criando um datamodule em tempo de execução, mas estou tendo problemas. Tenho a seguinte estrutura:
AutoCreate -> Está somente o principal.
frmPrincipal -> Botão
frmConsultaSQL
Já tentei
Quando passa por está linha de criação do DataModule estoura um AV, se removo ela o form é criado normalmente.
Desde já, obrigado!
Estou tentando criando um datamodule em tempo de execução, mas estou tendo problemas. Tenho a seguinte estrutura:
AutoCreate -> Está somente o principal.
frmPrincipal -> Botão
procedure TForm2.SpeedButton2Click(Sender: TObject); var ConsultaSQL : TForm; begin ConsultaSQL := TfrmConsultaSQL.Create(nil); ConsultaSQL.ShowModal; ConsultaSQL.Free; end;
frmConsultaSQL
private
SQL : TDataModule;implementation Uses untDMSQL; //Nome desta unit é DMSQL
procedure TfrmConsultaSQL.FormCreate(Sender: TObject); begin SQL := TDMSQL.Create(self); end;
Já tentei
procedure TfrmConsultaSQL.FormCreate(Sender: TObject); begin SQL := DMSQL.Create(self); end;
Quando passa por está linha de criação do DataModule estoura um AV, se removo ela o form é criado normalmente.
Desde já, obrigado!
Thiago Ribeiro
Curtidas 0
Respostas
Cauê Nishijima
27/05/2014
Aparentemente seu código esta correto,
Quando você deixa o DataModule no AutoCreate não da erro?
Se puder posta o código do DataModule.
Quando você deixa o DataModule no AutoCreate não da erro?
Se puder posta o código do DataModule.
GOSTEI 0
Thiago Ribeiro
27/05/2014
Sim, se eu coloco no AutoCreate ele não da erro.
Segue o código do DM:
Segue o código do DM:
unit untDMSQL;
interface
uses
SysUtils, Classes, FMTBcd, WideStrings, DBXFirebird, DB, SqlExpr, Provider,
DBClient;
type
TDMSQL = class(TDataModule)
cdsFilmes: TClientDataSet;
dpsFilmes: TDataSetProvider;
qryFilmes: TSQLQuery;
Banco: TSQLConnection;
cdsDiretor: TClientDataSet;
dspDiretor: TDataSetProvider;
tlbDiretor: TSQLTable;
cdsDiretorDIR_NOME: TStringField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DMSQL: TDMSQL;
implementation
{$R *.dfm}
end.GOSTEI 0
Nelson Santos
27/05/2014
ganhe dinheiro com softwares 3D com Delphi 7
GOSTEI 0
Thiago Ribeiro
27/05/2014
Fiz o seguinte:
Percebi que o AV ocorre quando passo por está outra linha, quando utilizo um componente que está dentro deste DM.
procedure TfrmConsultaSQL.FormCreate(Sender: TObject); begin DMSQL := TDMSQL.Create(self); end;
Percebi que o AV ocorre quando passo por está outra linha, quando utilizo um componente que está dentro deste DM.
procedure TfrmConsultaSQL.edtDiretorChange(Sender: TObject);
var Diretor : String;
begin
Diretor := edtDiretor.Text;
DMSQL.cdsFilmes.Close; // Aqui
DMSQL.qryFilmes.ParamByName('Diretor').AsString := Diretor;
DMSQL.cdsFilmes.Open;
end;GOSTEI 0
Nelson Santos
27/05/2014
ganhe dinheiro com softwares 3D com Delphi 7
http://www.3dsistemas.com.br/#!curso-delpih3d/cisv
http://www.3dsistemas.com.br/#!curso-delpih3d/cisv
GOSTEI 0