Fórum Sempre desaperece os ultimos registros #214218

15/02/2004

0

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

Responder

Posts

15/02/2004

Edilcimar

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


Responder

Gostei + 0

15/02/2004

Fórum Vini

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.


Responder

Gostei + 0

15/02/2004

Fórum Vini

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; 



Responder

Gostei + 0

15/02/2004

Edilcimar

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


Responder

Gostei + 0

15/02/2004

Wagner

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


Responder

Gostei + 0

15/02/2004

Edilcimar

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


Responder

Gostei + 0

15/02/2004

Fórum Vini

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.


Responder

Gostei + 0

15/02/2004

Fórum Vini

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...


Responder

Gostei + 0

15/02/2004

Edilcimar

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


Responder

Gostei + 0

15/02/2004

Fórum Vini

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


Responder

Gostei + 0

15/02/2004

Wagner

: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;


Responder

Gostei + 0

15/02/2004

Edilcimar

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


Responder

Gostei + 0

15/02/2004

Wagner

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


Responder

Gostei + 0

15/02/2004

Edilcimar

dbeditX.text := ´´;


Responder

Gostei + 0

15/02/2004

Wagner

Desculpe-me

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar