Jump to content
Hercles

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

Recommended Posts

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.

Share this post


Link to post
Share on other 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...

Edited by crazypt14

Share this post


Link to post
Share on other 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;

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

Share this post


Link to post
Share on other 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!')

Edited by Hercles

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.