Enviando dados de um form para o outro
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
No form2
Está erro de violação de acesso.
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
Curtidas 0
Respostas
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:
No form 2 algo mais ou menos assim:
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
31/10/2012
o erro é na linha
frm_faturamento.DBEdit1.Text := DBEdit15.Text;
GOSTEI 0
Marcos Barbosa
31/10/2012
Claudinha, dá erro na linha
Erro: Incompatible types
if frm_cadClienteSimplificado = mrOk then
Erro: Incompatible types
GOSTEI 0
Claudia Nogueira
31/10/2012
Ops, digitei errado, o certo é:
if frm_cadClienteSimplificado.modalresult = mrOk then
if frm_cadClienteSimplificado.modalresult = mrOk then
Claudinha, dá erro na linha
Erro: Incompatible types
if frm_cadClienteSimplificado = mrOk then
Erro: Incompatible types
GOSTEI 0
Marcos Barbosa
31/10/2012
Vlw, agora sim...
Muito obrigado.
Muito obrigado.
GOSTEI 0