Bom dia pessoal, como tirar um erro de showmodal no Delphi? Segue a rotina...
banco.table1.edit;
falterar.edit1.text:=banco.table1.fieldbyname('Codigo').asstring;
falterar.edit2.text:=banco.table1.fieldbyname('Produto').asstring;
falterar.edit3.text:=banco.table1.fieldbyname('Fornecedor').asstring;
falterar.maskedit1.text:=banco.table1.fieldbyname('DataPG').asstring;
falterar.maskedit2.text:=banco.table1.fieldbyname('DataVC').asstring;
falterar.edit4.text:=banco.table1.fieldbyname('Valor').asstring;
falterar.edit5.text:=banco.table1.fieldbyname('Situacao').asstring;
falterar.ShowModal; // o erro está nesta linha, quando clico no botão gravar para efetuar a alteração ele dá esse erro.[img:descricao=Erro de ShowModal quando executo a gravação dos dados no formulário alterar.
]http://arquivo.devmedia.com.br/forum/imagem/450776-20150829-091751.png[/img]
falterar.edit1.text:=banco.table1.fieldbyname('Codigo').asstring;
falterar.edit2.text:=banco.table1.fieldbyname('Produto').asstring;
falterar.edit3.text:=banco.table1.fieldbyname('Fornecedor').asstring;
falterar.maskedit1.text:=banco.table1.fieldbyname('DataPG').asstring;
falterar.maskedit2.text:=banco.table1.fieldbyname('DataVC').asstring;
falterar.edit4.text:=banco.table1.fieldbyname('Valor').asstring;
falterar.edit5.text:=banco.table1.fieldbyname('Situacao').asstring;
falterar.ShowModal; // o erro está nesta linha, quando clico no botão gravar para efetuar a alteração ele dá esse erro.[img:descricao=Erro de ShowModal quando executo a gravação dos dados no formulário alterar.
]http://arquivo.devmedia.com.br/forum/imagem/450776-20150829-091751.png[/img]
Mauricio Ribeiro
Curtidas 0
Respostas
Bruno Henrique
29/08/2015
Tente colocar nas propriedades visible := false
GOSTEI 0
Raimundo Pereira
29/08/2015
Bruno, Bom dia
Verifique a propriedade do Form falterar [VISIBLE:=FALSE]
Verifique também se o form falterar está no AutoCreat, se não estiver.
Lembre-se, você está preenchendo um outro form com os dados .
falterar := Tfalterar.Create(Application);
banco.table1.edit;
falterar.edit1.text:=banco.table1.fieldbyname('Codigo').asstring;
falterar.edit2.text:=banco.table1.fieldbyname('Produto').asstring;
falterar.edit3.text:=banco.table1.fieldbyname('Fornecedor').asstring;
falterar.maskedit1.text:=banco.table1.fieldbyname('DataPG').asstring;
falterar.maskedit2.text:=banco.table1.fieldbyname('DataVC').asstring;
falterar.edit4.text:=banco.table1.fieldbyname('Valor').asstring;
falterar.edit5.text:=banco.table1.fieldbyname('Situacao').asstring;
falterar.ShowModal; // o erro está nesta linha, quando clico no botão gravar para efetuar a alteração ele dá esse erro.
Verifique a propriedade do Form falterar [VISIBLE:=FALSE]
Verifique também se o form falterar está no AutoCreat, se não estiver.
Lembre-se, você está preenchendo um outro form com os dados .
falterar := Tfalterar.Create(Application);
banco.table1.edit;
falterar.edit1.text:=banco.table1.fieldbyname('Codigo').asstring;
falterar.edit2.text:=banco.table1.fieldbyname('Produto').asstring;
falterar.edit3.text:=banco.table1.fieldbyname('Fornecedor').asstring;
falterar.maskedit1.text:=banco.table1.fieldbyname('DataPG').asstring;
falterar.maskedit2.text:=banco.table1.fieldbyname('DataVC').asstring;
falterar.edit4.text:=banco.table1.fieldbyname('Valor').asstring;
falterar.edit5.text:=banco.table1.fieldbyname('Situacao').asstring;
falterar.ShowModal; // o erro está nesta linha, quando clico no botão gravar para efetuar a alteração ele dá esse erro.
GOSTEI 0
Mauricio Ribeiro
29/08/2015
Boa tarde Bruno!
Estou aprendendo a programar e não sei muita coisa mesmo, então aí vai mais um problema em que preciso de ajuda:
O comando falterar := Tfalterar.Create(Application); resolveu o problema do erro acima descrito, mas ele gerou um outro problema, o botão "sair" não está mais fechando o formulário de atualização das informações.
Um outro problema é que as alterações não são realizadas. Clico em gravar e ele não grava as atualizações que fiz!
Estou aprendendo a programar e não sei muita coisa mesmo, então aí vai mais um problema em que preciso de ajuda:
O comando falterar := Tfalterar.Create(Application); resolveu o problema do erro acima descrito, mas ele gerou um outro problema, o botão "sair" não está mais fechando o formulário de atualização das informações.
Um outro problema é que as alterações não são realizadas. Clico em gravar e ele não grava as atualizações que fiz!
GOSTEI 0
Raimundo Pereira
29/08/2015
Mauricio Ribeiro, Bom dia, Qual o código do Botão sair ?
GOSTEI 0
Mauricio Ribeiro
29/08/2015
Boa tarde P2
O código é esse: Falterar.Close;
O Falterar não está gravando a alteração, verifiquei no datamodule as configurações do table e do datasource e estão corretas.
O Banco é paradox, será que ele corrompeu?
O código é esse: Falterar.Close;
O Falterar não está gravando a alteração, verifiquei no datamodule as configurações do table e do datasource e estão corretas.
O Banco é paradox, será que ele corrompeu?
GOSTEI 0
Mauricio Ribeiro
29/08/2015
P2 OUTRA INFORMAÇÃO É A SEGUINTE:
O BOTÃO GRAVAR NO FORMULÁRIO ADICIONAR GRAVA NORMALMENTE OS DADOS, MAS NO FALTERAR NÃO GRAVA.
O BOTÃO GRAVAR NO FORMULÁRIO ADICIONAR GRAVA NORMALMENTE OS DADOS, MAS NO FALTERAR NÃO GRAVA.
GOSTEI 0
Mauricio Ribeiro
29/08/2015
procedure TFalterar.SpeedButton1Click(Sender: TObject);
begin
banco.table1.edit;
falterar.edit1.text:=banco.table1.fieldbyname('Codigo').asstring;
falterar.edit2.text:=banco.table1.fieldbyname('Produto').asstring;
falterar.edit3.text:=banco.table1.fieldbyname('Fornecedor').asstring;
falterar.maskedit1.text:=banco.table1.fieldbyname('DataPG').asstring;
falterar.maskedit2.text:=banco.table1.fieldbyname('DataVC').asstring;
falterar.edit4.text:=banco.table1.fieldbyname('Valor').asstring;
falterar.edit5.text:=banco.table1.fieldbyname('Situacao').asstring;
banco.table1.Post;-----------------------------------------------------------------// adicionei esse código para fechar a gravação, mas não funcionou, continua não gravando a alteração.
falterar.Show;
end;
begin
banco.table1.edit;
falterar.edit1.text:=banco.table1.fieldbyname('Codigo').asstring;
falterar.edit2.text:=banco.table1.fieldbyname('Produto').asstring;
falterar.edit3.text:=banco.table1.fieldbyname('Fornecedor').asstring;
falterar.maskedit1.text:=banco.table1.fieldbyname('DataPG').asstring;
falterar.maskedit2.text:=banco.table1.fieldbyname('DataVC').asstring;
falterar.edit4.text:=banco.table1.fieldbyname('Valor').asstring;
falterar.edit5.text:=banco.table1.fieldbyname('Situacao').asstring;
banco.table1.Post;-----------------------------------------------------------------// adicionei esse código para fechar a gravação, mas não funcionou, continua não gravando a alteração.
falterar.Show;
end;
GOSTEI 0
Raimundo Pereira
29/08/2015
Mauricio Ribeiro, boa tarde essa rotina apenas pega os dados da tabela e preenche seu form :
procedure TFalterar.SpeedButton1Click(Sender: TObject);
Na edição a rotina é inversa.
begin
banco.table1.locate('Codigo',falterar.edit1.text,[]);\\ Vai para o registro a ser alterado.
Banco.table1.edit; \\ Coloca a tabela em modo de edição
\\banco.table1.fieldbyname('Codigo').asstring:=falterar.edit1.text; \\Esse código não se altera pois é funciona como a ID do registro
banco.table1.fieldbyname('Produto').asstring:=falterar.edit2.text;
banco.table1.fieldbyname('Fornecedor').asstring:=falterar.edit3.text;
banco.table1.fieldbyname('DataPG').asstring:=falterar.maskedit1.text;
banco.table1.fieldbyname('DataVC').asstring:=falterar.maskedit2.text;
banco.table1.fieldbyname('Valor').asstring:=falterar.edit4.text;
banco.table1.fieldbyname('Situacao').asstring:=falterar.edit5.text;
banco.table1.Post;
-----------------------------------------------------------------// adicionei esse código para fechar a gravação, mas não funcionou, continua não gravando a alteração.
falterar.Show;
end;
Aguardo retorno.
procedure TFalterar.SpeedButton1Click(Sender: TObject);
Na edição a rotina é inversa.
begin
banco.table1.locate('Codigo',falterar.edit1.text,[]);\\ Vai para o registro a ser alterado.
Banco.table1.edit; \\ Coloca a tabela em modo de edição
\\banco.table1.fieldbyname('Codigo').asstring:=falterar.edit1.text; \\Esse código não se altera pois é funciona como a ID do registro
banco.table1.fieldbyname('Produto').asstring:=falterar.edit2.text;
banco.table1.fieldbyname('Fornecedor').asstring:=falterar.edit3.text;
banco.table1.fieldbyname('DataPG').asstring:=falterar.maskedit1.text;
banco.table1.fieldbyname('DataVC').asstring:=falterar.maskedit2.text;
banco.table1.fieldbyname('Valor').asstring:=falterar.edit4.text;
banco.table1.fieldbyname('Situacao').asstring:=falterar.edit5.text;
banco.table1.Post;
-----------------------------------------------------------------// adicionei esse código para fechar a gravação, mas não funcionou, continua não gravando a alteração.
falterar.Show;
end;
Aguardo retorno.
GOSTEI 0
Mauricio Ribeiro
29/08/2015
[img]http://arquivo.devmedia.com.br/forum/imagem/450776-20150904-091557.png[/img]
Após inserir esse código, compilei e executei o projeto, acionei o falterar. Essa rotina gerou esse erro!
Obrigado P2!
Após inserir esse código, compilei e executei o projeto, acionei o falterar. Essa rotina gerou esse erro!
Obrigado P2!
GOSTEI 0
Raimundo Pereira
29/08/2015
Bom dia , Mauricio.
Debug e veja em qual linha está apresentando erro.
Mas acredito que seja o tipo de campo.
No caso um campo que na tabela esteja Integer e no form String.
Exemplo
O campo ('Codigo'). na tabela está integer.
Ao levar para o form. use a rotina.
falterar.edit1.text:=inttostr(banco.table1.fieldbyname('Codigo').asinteger);
Mauricio, não testei.
Aguardo retorno.
Debug e veja em qual linha está apresentando erro.
Mas acredito que seja o tipo de campo.
No caso um campo que na tabela esteja Integer e no form String.
Exemplo
O campo ('Codigo'). na tabela está integer.
Ao levar para o form. use a rotina.
falterar.edit1.text:=inttostr(banco.table1.fieldbyname('Codigo').asinteger);
Mauricio, não testei.
Aguardo retorno.
GOSTEI 0