Problema com verificação na digitação
E ai galera bem e o seguinte , eu to tetando fazer uma função que depois que o cara deixa um edit ele verifica o que foi digitado, e aceita somente os valores numericos,X,W,G,R,U, B. so que não to conseguindo, ou ele aceita tudo ou não aceita nada o codigo que usando e esse aqui :
custo_real:=Edit1.Text;
if (custo_real<>´´) then
Begin
for t:=0 to Length(custo_real) do
begin
if (not(((custo_real[t]>=´0´) and (custo_real[t]<=´9´)) or (UpperCase(custo_real[t])=´X´) or (UpperCase(custo_real[t])=´U´) or (UpperCase(custo_real[t])=´G´) or (UpperCase(custo_real[t])=´B´) or (UpperCase(custo_real[t])=´W´) or (UpperCase(custo_real[t])=´R´))) then
begin
ShowMessage(´Por favor utilize valores numericos ou que se encontrem dentro da Legenda de Custo´);
Edit1.SetFocus;
Break;
end;
end;
Bem essa função fica no OnExit do Edit.
Agluem tem alguma ideia do que pode ser ?.
custo_real:=Edit1.Text;
if (custo_real<>´´) then
Begin
for t:=0 to Length(custo_real) do
begin
if (not(((custo_real[t]>=´0´) and (custo_real[t]<=´9´)) or (UpperCase(custo_real[t])=´X´) or (UpperCase(custo_real[t])=´U´) or (UpperCase(custo_real[t])=´G´) or (UpperCase(custo_real[t])=´B´) or (UpperCase(custo_real[t])=´W´) or (UpperCase(custo_real[t])=´R´))) then
begin
ShowMessage(´Por favor utilize valores numericos ou que se encontrem dentro da Legenda de Custo´);
Edit1.SetFocus;
Break;
end;
end;
Bem essa função fica no OnExit do Edit.
Agluem tem alguma ideia do que pode ser ?.
Robo
Curtidas 0
Respostas
Luciano.lirio
24/11/2007
Coloque o código abaixo no evendo KeyPress do edit, acho que vai dar certo.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin Key := UpCase(Key); if not (UpCase(Key) in [´0´..´9´,´X´,´W´,´G´,´R´,´U´,´B´]) then Key := 0; end;
GOSTEI 0
Robo
24/11/2007
Nossa luciano, funcionou bacana cara brigadasso.
GOSTEI 0
Luciano.lirio
24/11/2007
só toma cuidado que a pessoa pode copiar e colar com o botão direito do mouse, seria interessante colocar uma validação antes de gravar no banco de dados.
GOSTEI 0
Robo
24/11/2007
Ok vlws,mas eu te falo que pro cara realmente querer ele tem que querer mesmo colocar um valor diferente para dar o ctrl+c e o ctrl+v.
tipo ele realmente ta querendo mesmo.
tipo ele realmente ta querendo mesmo.
GOSTEI 0