Jump to content


Photo

If Then Else


  • Faça o login para participar
11 replies to this topic

#1 nelson8000

nelson8000

    Turista

  • Usuários
  • 53 posts
  • Sexo:Não informado
  • Localidade:São Paulo
  • Interesses:Programação, Fotos ....

Posted 06/05/2004, 08:36

<_< Estou com um problema pra validação de formulário....

Esse é o código do botão Salvar do meu formulário de cadastro de boletos...

procedure TfrmCadBoleto.btnSalvarClick(Sender: TObject);
begin
if dbEmpresa.text='' then
begin
SHOWMESSAGE ('CAMPO EMPRESA ESTÁ VAZIO');
end;
if dbESCOLA.text='' then
begin
SHOWMESSAGE ('CAMPO ESCOLA ESTÁ VAZIO');
end;
if dbCONTA.text='' then
begin
SHOWMESSAGE ('CAMPO CONTA ESTÁ VAZIO');
end;
if dbCLIENTE.text='' then
begin
SHOWMESSAGE ('CAMPO CLIENTE ESTÁ VAZIO');
end;
if dbRGCPF.text='' then
begin
sHOWMESSAGE ('CAMPO CAMPO RG/CPF ESTÁ VAZIO');
end;
if dbBOLETO.text='' then
begin
SHOWMESSAGE ('CAMPO BOLETO ESTÁ VAZIO');
end;
if dbVALOR.text='' then
begin
SHOWMESSAGE ('CAMPO VALOR ESTÁ VAZIO');
end;
if dbSITUACAO.text='' then
begin
SHOWMESSAGE ('CAMPO SITUACAO ESTÁ VAZIO');
end;
if dbDATA.text='' then
begin
SHOWMESSAGE ('CAMPO DATA VENCIMENTO ESTÁ VAZIO');
end;
begin
dmData.tblCobTilt.post;
btnSalvar.enabled:=false;
dbEmpresa.enabled:=false;
dbEscola.enabled:=false;
dbConta.enabled:=false;
dbCliente.enabled:=false;
dbRGCPF.enabled:=false;
dbBoleto.enabled:=false;
dbData.enabled:=false;
dbValor.enabled:=false;
dbSituacao.enabled:=false;
dbJuros.enabled:=false;
ShowMessage('Boleto Salvo com Sucesso')
end;
end;


E o erro é que ele naum respeita os IFs, ele simplesmente passa por tudo e salva..

e eu quero que:

se tiver um campo em branco, naum importa qual... o projeto naum salve o registro...

alguem poderia me ajudar??

Grato

Nelson (y)
P.N.E.O.Q.E.A.V.

#2 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais&gt;&gt; Belo Horizonte
  • Interesses:Programação e Web&gt;&gt;&gt;

Posted 06/05/2004, 08:48

if dbDATA.text='' then
begin
SHOWMESSAGE ('CAMPO DATA VENCIMENTO ESTÁ VAZIO');
end;
begin

tá vendo? vc num tá separando o coisinha...

eu recomento que depois de cada showmessage de erro vc coloque o comando
exit
pra sair da procedure e não passar para os outros procedimentos....
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...

#3 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais&gt;&gt; Belo Horizonte
  • Interesses:Programação e Web&gt;&gt;&gt;

Posted 06/05/2004, 08:52

por uma questão de metodologia eu usaria uma função ....

procedure validabotão;
begin
btsalvar.enabled:=(trim(ednome.text)) and
(trim(edcep.text));
btexcluir.enabled.....

end;


e a cada movimento vc executa a função...[que não é uma função ,,,, é uma procedure...]
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...

#4 xleandro

xleandro

    Saber eh poder

  • Usuários
  • 359 posts
  • Sexo:Não informado
  • Localidade:ES
  • Interesses:Linguagens de programaçao, SO`s, hardwares e softwares.

Posted 06/05/2004, 14:29

eu recomento que depois de cada showmessage de erro vc coloque o comando
exit

Concordo com o proteus...
Da forma q vc fez, o codigo fiko mto amador, c o primeiro campo tiver vazio vai dar a mensagem de erro e vai continuar lendo a procedure atoa.
E não c eskeça do espaço ' '...

[]`s

:)
Nesta guerra jah conquistamos grandes e pequenas batalhas, desde as mais faceis ateh akelas que para qualquer outro mortal seria dita como inalcansavel, mas então, pq continuar? Simples...
Pq o mais importante não eh vencer todas as batalhas, mas sim perpetuar a guerra. ;o)

Meu fotolog: http://www.pixlog.net/xleandro
Leandro Pretti

#5 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais&gt;&gt; Belo Horizonte
  • Interesses:Programação e Web&gt;&gt;&gt;

Posted 06/05/2004, 16:14

pra checar os espaços usa o trim()
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...

#6 xleandro

xleandro

    Saber eh poder

  • Usuários
  • 359 posts
  • Sexo:Não informado
  • Localidade:ES
  • Interesses:Linguagens de programaçao, SO`s, hardwares e softwares.

Posted 07/05/2004, 14:27

pra checar os espaços usa o trim()

Ae, como funciona esse trim? Oq ele faz exatamente?

[]`s

:)
Nesta guerra jah conquistamos grandes e pequenas batalhas, desde as mais faceis ateh akelas que para qualquer outro mortal seria dita como inalcansavel, mas então, pq continuar? Simples...
Pq o mais importante não eh vencer todas as batalhas, mas sim perpetuar a guerra. ;o)

Meu fotolog: http://www.pixlog.net/xleandro
Leandro Pretti

#7 Tarkan

Tarkan

    Powered by Linux - Que inglês! ;)

  • Ex-Admins
  • 651 posts
  • Sexo:Masculino
  • Localidade:Copacabana - RJ

Posted 07/05/2004, 14:44

hehe...
Pelo menos essa eu sei! :)

A função Trim() serve para retirar espaços de ambos os lados, seja da esquerda da string como da direita.
É uma boa para evitar que um campo fique vazio, só preenchido com espaços.

Abraços!

:D
' nome: gustavo veiga
' profissão: ALOG Data Centers do Brasil (analista de sistemas)
' publicidade: ALOG Data Centers do Brasil

#8 xleandro

xleandro

    Saber eh poder

  • Usuários
  • 359 posts
  • Sexo:Não informado
  • Localidade:ES
  • Interesses:Linguagens de programaçao, SO`s, hardwares e softwares.

Posted 07/05/2004, 15:17

Legal, não conhecia esse Trim() :( Vo testar ele aki pra ver c intendi hehhe
Valeu ae

[]`s

:)
Nesta guerra jah conquistamos grandes e pequenas batalhas, desde as mais faceis ateh akelas que para qualquer outro mortal seria dita como inalcansavel, mas então, pq continuar? Simples...
Pq o mais importante não eh vencer todas as batalhas, mas sim perpetuar a guerra. ;o)

Meu fotolog: http://www.pixlog.net/xleandro
Leandro Pretti

#9 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais&gt;&gt; Belo Horizonte
  • Interesses:Programação e Web&gt;&gt;&gt;

Posted 07/05/2004, 15:50

:yes: hêeee

outra legal é a quotestr()
esta coloca aspas simples na sua string

aprende mais essa

Edição feita por: proteus_adi, 07/05/2004, 15:51.

PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...

#10 xleandro

xleandro

    Saber eh poder

  • Usuários
  • 359 posts
  • Sexo:Não informado
  • Localidade:ES
  • Interesses:Linguagens de programaçao, SO`s, hardwares e softwares.

Posted 07/05/2004, 16:57

Boa essa tb :)
quotestr()
Eu jah tinha usado, r0x msmo


[]`s
Nesta guerra jah conquistamos grandes e pequenas batalhas, desde as mais faceis ateh akelas que para qualquer outro mortal seria dita como inalcansavel, mas então, pq continuar? Simples...
Pq o mais importante não eh vencer todas as batalhas, mas sim perpetuar a guerra. ;o)

Meu fotolog: http://www.pixlog.net/xleandro
Leandro Pretti

#11 iuri

iuri

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 16/11/2004, 13:55

cara, tem muito begin nesse teu código, quando so tem uma linha abaixo do IF não precisa begin, tenta assim tb. Você terá o mesmo resultado

if dbEmpresa.text = '' then
SHOWMESSAGE ('CAMPO EMPRESA ESTÁ VAZIO');
if dbESCOLA.text = '' then
SHOWMESSAGE ('CAMPO ESCOLA ESTÁ VAZIO');

#12 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais&gt;&gt; Belo Horizonte
  • Interesses:Programação e Web&gt;&gt;&gt;

Posted 17/11/2004, 12:08

muitas vezes , como neste caso... o begin..end não se faz necessário para o código...
mas muita gente acaba usando pra facilitar o entendimento...

o begin..end soh eh usado em BLOCOS de código... assim como o {} em algumas outras linguagens...
olha
if (a=B ) variavel='valor';

if (a=B ) {
variavel = 'valor';
}

eu acho o segundo caso melhor de entender...
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq