Erro estranho no Delphi

Delphi

05/08/2016

Olá boa noite a todos.

Estou trabalhando em um projeto Delphi Berlin e das duas uma ou mudou tudo ou não sei o que é esse erro:

criei um método dentro de um datamodule

function Tdm.finsertSql(nome, idade: string): Boolean;
begin
  Result := False;
  with Qry_I do
  begin
    close;
    sql.Clear;
    sql.Add('insert into tb_demo1 (nome,idade)values (:nome,:idade)');
    ParamByName('nome').AsString := nome;
    ParamByName('idade').AsString := idade;
    ExecSQL;
    Result := True;
  end;

end;



Ate aqui tudo certo

no form

procedure TForm1.btnAddClick(Sender: TObject);
var
  x: Tdm;

begin
  x.finsertSql(edtNome.Text, edtIdade.Text);

end;



ao executar da um erro e por curiosidade vi que se trocar o x por datamodule.funcao funciona corretamente

Alguém sabe o porque disso ?
Carlos Faria

Carlos Faria

Curtidas 0

Melhor post

Raimundo Pereira

Raimundo Pereira

06/08/2016

x: Tdm;

begin
Application.CreateForm(Tdm, x);
x.finsertSql(edtNome.Text, edtIdade.Text);

end;
GOSTEI 1

Mais Respostas

Carlos Faria

Carlos Faria

05/08/2016

Não entendi o X ? se ela já representa a class vou criala 2x ?
GOSTEI 0
William

William

05/08/2016

O colega P2 está sugerindo que você instancie um objeto Tdm!

Porém acredito que você já esteja referenciando o DataModule na sua cláusula USES desse "Form1" então não precisa dessa variável "x", basta chamar pelo name do DataModule.
GOSTEI 0
Carlos Faria

Carlos Faria

05/08/2016

Foi exatamente isso que eu fiz , dei uses no datamodule e mesmo assim da esse erro , no delphi 2010 roda beleza mas aqui no xe8 piratinha .... aparece esse erro estranho compila mas na execução da um acess violation
GOSTEI 0
POSTAR