Hercles Posted August 3, 2013 at 12:20 AM Report #520730 Posted August 3, 2013 at 12:20 AM 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.
crazypt14 Posted August 3, 2013 at 01:19 AM Report #520732 Posted August 3, 2013 at 01:19 AM (edited) 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 August 4, 2013 at 02:55 PM by crazypt14
nunopicado Posted August 3, 2013 at 07:07 AM Report #520737 Posted August 3, 2013 at 07:07 AM (edited) 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 August 3, 2013 at 07:30 AM 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.
Hercles Posted August 5, 2013 at 12:14 AM Author Report #520823 Posted August 5, 2013 at 12:14 AM (edited) 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 August 5, 2013 at 12:17 AM by Hercles
nunopicado Posted August 5, 2013 at 07:39 AM Report #520834 Posted August 5, 2013 at 07:39 AM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now