Enviando dados de um form para o outro

Delphi

31/10/2012

Pessoal, tenho 2 form´s, no form1 eu tenho um botão que chama o form2.
o name do form1 é frm_faturamento
o name do form2 é frm_cadsimplificado

A intenção é que ao lançar dados para o faturamento, se o cliente não for cadastrado o usuário possa clicar no botão e abrir o form para cadastrar os dados dos clientes e ao clicar em gravar, retorna-se ao form de faturamento com os dados do cliente.
Estou fazendo assim:

No form1
procedure Tfrm_faturar.BitBtn4Click(Sender: TObject);
var
 clienteSimplificado : Tfrm_cadClienteSimplificado;
begin

  clienteSimplificado := Tfrm_cadClienteSimplificado.Create(Self);
  clienteSimplificado.ShowModal;
end;


No form2
if DM_FINAN.DS_Clientes.State in [dsInsert] then
    begin
      CDS_somaID.Open;
      CDS_somaID.Last;
      ultimoCod := CDS_somaIDCLIENTES_ID.Value+1;
      DBEdit15.Text := IntToStr(ultimoCod);
      CDS_somaID.Close;

      DM_FINAN.CDS_Clientes.Post;
      DM_FINAN.CDS_Clientes.ApplyUpdates(-1);
      ShowMessage('Inclusão realizada com sucesso...');
      frm_faturamento.DBEdit1.Text := DBEdit15.Text;



Está erro de violação de acesso.
Marcos Barbosa

Marcos Barbosa

Curtidas 0

Respostas

Claudia Nogueira

Claudia Nogueira

31/10/2012

Debugando dá erro de acesso violado em que linha?

Eu não faria assim, faria dessa forma. Levando em consideração que o name do Form Tfrm_cadClienteSimplificado seria frm_cadClienteSimplificado o código do form 1 ficaria assim:

Application.CreateForm(Tfrm_cadClienteSimplificado,frm_cadClienteSimplificado)     
frm_cadClienteSimplificado.ShowModal;
if frm_cadClienteSimplificado = mrOk then
  DBEdit1.Text := frm_cadClienteSimplificado.DBEdit1.Text;
FreeAndNil(frm_cadClienteSimplificado);


No form 2 algo mais ou menos assim:

if DM_FINAN.DS_Clientes.State in [dsInsert] then
begin
CDS_somaID.Open;
CDS_somaID.Last;
ultimoCod := CDS_somaIDCLIENTES_ID.Value+1;
DBEdit15.Text := IntToStr(ultimoCod);
CDS_somaID.Close;

DM_FINAN.CDS_Clientes.Post;
DM_FINAN.CDS_Clientes.ApplyUpdates(-1);
ShowMessage('Inclusão realizada com sucesso...');
ModalResult := mrOK;
GOSTEI 0
Marcos Barbosa

Marcos Barbosa

31/10/2012

o erro é na linha
frm_faturamento.DBEdit1.Text := DBEdit15.Text;
GOSTEI 0
Marcos Barbosa

Marcos Barbosa

31/10/2012

Claudinha, dá erro na linha
if frm_cadClienteSimplificado = mrOk then


Erro: Incompatible types
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

31/10/2012

Ops, digitei errado, o certo é:

if frm_cadClienteSimplificado.modalresult = mrOk then

Claudinha, dá erro na linha
if frm_cadClienteSimplificado = mrOk then


Erro: Incompatible types
GOSTEI 0
Marcos Barbosa

Marcos Barbosa

31/10/2012

Vlw, agora sim...
Muito obrigado.
GOSTEI 0
POSTAR