Verificar caracteres
é o seguinte, tenho uma tela de caixa .. onde o cliente digita o codigo de barra do produto, dá um enter e aparece o nome deo produto e o foco cai no campo quantidade com o valor 1, dai um outro enter confirma, se ele quiser outra quantidade ele digita e enter confirma ..... isso é o q esta lá .... ele esta querendo assim, quando eu digitar o codigo de barra e der um enter o preduto é confirmado
direto sem cair no campo quantidade, mas se eu digitar ´,´ virgula antes, dai cai no quantidade
estou com problemas na hora de virificar se ele digitou virgula, extrair essa virgula qdo ele digitar (pq naum posso gravar com virgula, e nem dar um locate)
simples mas naum estou com cabeça hj heheheh ressaca do feriado heheeh
me ajudem, hehehhe
direto sem cair no campo quantidade, mas se eu digitar ´,´ virgula antes, dai cai no quantidade
estou com problemas na hora de virificar se ele digitou virgula, extrair essa virgula qdo ele digitar (pq naum posso gravar com virgula, e nem dar um locate)
simples mas naum estou com cabeça hj heheheh ressaca do feriado heheeh
me ajudem, hehehhe
Fer
Curtidas 0
Respostas
Lfernandos
02/05/2003
Penso que você esteja lendo o código de barras num campo do tipo TEdit, então no seu evento OnKeyPress vc pode fazer como abaixo, basta adaptar para suas necessidades:
procedure TForm1.edtCodigoBarraKeyPress(Sender: TObject; var Key: Char);
begin
if Key = ´,´ then begin
Key := #0;
edtQuantidade.SetFocus;
end
else if Key = 13 then
btnConfirma.Click;
end;
Esta rotina verifica se foi pressionado ´,´ se foi então altera a tecla para 0 e muda o foco senão se foi Enter então confirma.
procedure TForm1.edtCodigoBarraKeyPress(Sender: TObject; var Key: Char);
begin
if Key = ´,´ then begin
Key := #0;
edtQuantidade.SetFocus;
end
else if Key = 13 then
btnConfirma.Click;
end;
Esta rotina verifica se foi pressionado ´,´ se foi então altera a tecla para 0 e muda o foco senão se foi Enter então confirma.
GOSTEI 0
Skywalker
02/05/2003
Bom primeiramente agradeco pelo esclarecimento da duvida!
No caso as respostas acimas todas estao boas, mas ja procaso do cliente digitar a virgula em outro lugar(no meio do codigo por exemplo), voce pode proceder da seguinte forma;
...
var
...
I, TEMVIRGULA: integer;
TEXTO, SEMVIRGULA: string;
begin
...
TEMVIRGULA:= 0;
SEMVIRGULA:= ´´;
TEXTO:= Edit.Text; {O edit do Codigo de barras}
for I:= I to length(TEXTO) do
begin
if TEXTO[I] = ´,´ then
begin
TEMVIRGULA:= 1;
end
else
begin
SEMVIRGULA:= SEMVIRGULA + TEXTO[I];
end;
end;
if TEMVIRGULA = 0 then
begin
.... {executa o codigo se nao teiver virgula}
end
else
begin
... {executa o codigo com virgula}
Edit.TExt:= SEMVIRGULA; {Edit do codigo de barras}
end;
....
ESpero ter ajudado
Ate +
No caso as respostas acimas todas estao boas, mas ja procaso do cliente digitar a virgula em outro lugar(no meio do codigo por exemplo), voce pode proceder da seguinte forma;
...
var
...
I, TEMVIRGULA: integer;
TEXTO, SEMVIRGULA: string;
begin
...
TEMVIRGULA:= 0;
SEMVIRGULA:= ´´;
TEXTO:= Edit.Text; {O edit do Codigo de barras}
for I:= I to length(TEXTO) do
begin
if TEXTO[I] = ´,´ then
begin
TEMVIRGULA:= 1;
end
else
begin
SEMVIRGULA:= SEMVIRGULA + TEXTO[I];
end;
end;
if TEMVIRGULA = 0 then
begin
.... {executa o codigo se nao teiver virgula}
end
else
begin
... {executa o codigo com virgula}
Edit.TExt:= SEMVIRGULA; {Edit do codigo de barras}
end;
....
ESpero ter ajudado
Ate +
GOSTEI 0