Ir para o conteúdo
Hercles

Tratamento de Erro nos campos de formulário (Lazarus).

Mensagens Recomendadas

Hercles

Olá!

caros,

alguém sabe com fazer um tratamento do tipo se for digita no campo de um formulário que esta destinado a "nome de um funcionario" um número ou deixar em branco abrir um aleta informando que o valor é invalidos e retona ao formulário sem que ele feche. :)

Grato.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
crazypt14

Boas, nunca trabalhei com formulários, por isso não sei se haverá diferença, mas para fazer isso na consola é com uma estrutura de controlo defines a condição para que se o valor da variável não estiver dentro de [A..Z] então ele vai dizer que tem um erro, se não continua... (Tambem não sei como se faz para abrir uma pop-up)...

Sei que não é grande ajuda, mas é tudo o que sei, espero ter ajudado...

Editado por crazypt14

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nunopicado

Para esse tipo de validação tens de usar os eventos do componente em questão.

No caso, crias um Handle para o evento OnExit do TEdit que estás a usar para o nome.

Lá dentro, testas o que quiseres, por exemplo se só há lá numeros, e se não passar na validação, tens de executar o SetFocus desse componente.

Podes aqui também dar o alerta ao utilizador, por exemplo com um ShowMessage.

Se não souberes fazer algum destes passos, avisa.

Exemplo:

procedure TForm1.Edit1Exit(Sender: TObject);
var
  Code:Integer;
  Temp:Int64;
begin
    Val(Edit1.Text,Temp,Code);
    if Code=0
       then begin
                 ShowMessage('O campo não pode ser só numérico. . .');
                 Edit1.Text:='';
                 if Edit1.CanFocus
                    then Edit1.SetFocus
            end;
end;

Editado por nunopicado

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Hercles

Não endendi muito bem.... Se ocorresse por exemplo um campo nota (currency) e o ususario digitasse uma letra... o programa informaria uma msg em ingles e fecharia ou travaria... pra que isso não acontecesse o que eu poderia fazer? (informando uma mesagem minha do tipo => 'Entre somente com valores numerico!')

Editado por Hercles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nunopicado

A validação seria a que pusesses no OnExit.

Este evento é executado assim que o componente perde o foco (deixa de estar seleccionado), pelo que o valor seria validado ainda antes de usares esse valor em qualquer outra parte do teu programa!

Estás a usar um TEdit, certo?

E depois usas o valor quando? Ao clicar num botão?


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.