Sempre desaperece os ultimos registros

Delphi

15/02/2004

Olá pessoal no meu projeto eu criei um botão incluir e salvar com os respectivos codigos:

INCLUIR
procedure TF_contpagar.BitBtn1Click(Sender: TObject);
begin
table1.Append;
dbgrid1.Enabled:=false;
dbnavigator1.Enabled:=false;
bitbtn1.enabled:=false;
bitbtn2.Enabled:=false;
dbedit2.setfocus;

SALVAR
procedure TF_contpagar.BitBtn3Click(Sender: TObject);
begin
if dbedit2.text = ´´ then
begin
Application.messagebox(´O campo não pode ficar em branco!´,´Confirmação´,mb_ok+mb_iconError);
dbedit2.setfocus;
end;
table1.post;
dbgrid1.enabled:=true;
dbnavigator1.Enabled:=true;
bitbtn1.enabled:=true;
bitbtn2.Enabled:=true;
dbedit2.setfocus;

O que acontece e que muitas vezes quando saio do sistema e volto depois os ultimos dados que eu digitei ´SUMIIIIIIU´
O que esta errado? :cry:

Obrigado


Wagner

Wagner

Curtidas 0

Respostas

Edilcimar

Edilcimar

15/02/2004

if dbedit2.text = ´´ then
begin
Application.messagebox(´O campo não pode ficar em branco!´,´Confirmação´,mb_ok+mb_iconError);
dbedit2.setfocus;
end
else
table1.post;
dbgrid1.enabled:=true;
dbnavigator1.Enabled:=true;
bitbtn1.enabled:=true;
bitbtn2.Enabled:=true;
dbedit2.setfocus;
se não houver o else ele vai dar um post o tempo todo, mesmo quando o dbedit2 contiver um nulo


GOSTEI 0
Fórum Vini

Fórum Vini

15/02/2004

Olá pessoal no meu projeto eu criei um botão incluir e salvar com os respectivos codigos: INCLUIR procedure TF_contpagar.BitBtn1Click(Sender: TObject); begin table1.Append; dbgrid1.Enabled:=false; dbnavigator1.Enabled:=false; bitbtn1.enabled:=false; bitbtn2.Enabled:=false; dbedit2.setfocus; SALVAR procedure TF_contpagar.BitBtn3Click(Sender: TObject); begin if dbedit2.text = ´´ then begin Application.messagebox(´O campo não pode ficar em branco!´,´Confirmação´,mb_ok+mb_iconError); dbedit2.setfocus; end; table1.post; dbgrid1.enabled:=true; dbnavigator1.Enabled:=true; bitbtn1.enabled:=true; bitbtn2.Enabled:=true; dbedit2.setfocus; O que acontece e que muitas vezes quando saio do sistema e volto depois os ultimos dados que eu digitei ´SUMIIIIIIU´ O que esta errado? :cry: Obrigado

Tente fazer assim:
SALVAR
procedure TF_contpagar.BitBtn3Click(Sender: TObject);
begin
if dbedit2.text = ´´ then
begin
  Application.messagebox(´O campo não pode ficar em branco!´,´Confirmação´,mb_ok+mb_iconError); 
  dbedit2.setfocus;
  Exit; //Sai da procedure
end;
table1.post;
dbgrid1.enabled:=true;
dbnavigator1.Enabled:=true;
bitbtn1.enabled:=true;
bitbtn2.Enabled:=true;
dbedit2.setfocus;


Espero ter ajudado.
Vinicius.


GOSTEI 0
Fórum Vini

Fórum Vini

15/02/2004

if dbedit2.text = ´´ then begin Application.messagebox(´O campo não pode ficar em branco!´,´Confirmação´,mb_ok+mb_iconError); dbedit2.setfocus; end else table1.post; dbgrid1.enabled:=true; dbnavigator1.Enabled:=true; bitbtn1.enabled:=true; bitbtn2.Enabled:=true; dbedit2.setfocus; se não houver o else ele vai dar um post o tempo todo, mesmo quando o dbedit2 contiver um nulo
Desculpe, não tinha visto o seu post, :oops: mas as duas soluções funcionam.
Obs.: Faltou um begin no else:
...
Application.messagebox(´O campo não pode ficar em branco!´,´Confirmação´,mb_ok+mb_iconError); 
dbedit2.setfocus; 
end
else
begin 
  table1.post;
  dbgrid1.enabled:=true; 
  dbnavigator1.Enabled:=true; 
  bitbtn1.enabled:=true; 
  bitbtn2.Enabled:=true; 
  dbedit2.setfocus;
end; 



GOSTEI 0
Edilcimar

Edilcimar

15/02/2004

se colocar um begin após o post ele só vai habilitar os componentes quando for falso


GOSTEI 0
Wagner

Wagner

15/02/2004

:lol: Ih ai! vai um begin ou não? Gostaria da maneira mais segura possivel para não perder meus dados


GOSTEI 0
Edilcimar

Edilcimar

15/02/2004

se vc desabilitou os componentes, depois tem que habilitá-los novamente sem importar se a condição é falsa ou verdadeira, portanto se vc colocar o begin vc só voltará a habilitar os componentes quando a condição for verdadeira impedindo que o usuário utilize-o novamente quando a condição for falsa, portanto deixe do jeito que escrevi


GOSTEI 0
Fórum Vini

Fórum Vini

15/02/2004

se colocar um begin após o post ele só vai habilitar os componentes quando for falso
Então, se o usuário digitar nulo, ele mostra a mensagem e seta o foco, senão ele salva a edição e abilita os componentes.

Vinicius.


GOSTEI 0
Fórum Vini

Fórum Vini

15/02/2004

se vc desabilitou os componentes, depois tem que habilitá-los novamente sem importar se a condição é falsa ou verdadeira, portanto se vc colocar o begin vc só voltará a habilitar os componentes quando a condição for verdadeira impedindo que o usuário utilize-o novamente quando a condição for falsa, portanto deixe do jeito que escrevi
Mas o dbnavigator deve ser disabilitado, já que o usuário está editando o registro, já os outros componentes eu não sei do que se tratam...


GOSTEI 0
Edilcimar

Edilcimar

15/02/2004

porém caso ele desista do append não conseguirá utilizar o navegador


GOSTEI 0
Fórum Vini

Fórum Vini

15/02/2004

porém caso ele desista do append não conseguirá utilizar o navegador
Tá certo, põe sem o begin mesmo! :oops:


GOSTEI 0
Wagner

Wagner

15/02/2004

:D Vixi! Agora tô sem saber se o resto dos botões esta correto
Eu tenho um botão CANCEL

procedure TF_Form1.BitBtn5Click(Sender: TObject);
begin
table1.cancel;
dbgrid1.enabled:=true;
dbnavigator1.enabled:=true;
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=true;
bitbtn3.enabled:=true;
dbedit1.setfocus;
end;


GOSTEI 0
Edilcimar

Edilcimar

15/02/2004

tá, mas vc deveria limpar os campos do dbedit´s


GOSTEI 0
Wagner

Wagner

15/02/2004

Valeu, mais como eu faço isso? pode me passar o codigo :lol:


GOSTEI 0
Edilcimar

Edilcimar

15/02/2004

dbeditX.text := ´´;


GOSTEI 0
Wagner

Wagner

15/02/2004

Desculpe-me

Mais qual evento?
Devo colocar esse codigo em cada dbedit do meu form?


GOSTEI 0
POSTAR