codigo de barras

Delphi

29/12/2008

boa tarde,

Tenho um campo(edit), onde gostaria de bloquear qualquer tipo de digitacao, somente com o leitor.

como eu posso fazer isso



no aguardo


Evandro


Evandro_araujo

Evandro_araujo

Curtidas 0

Respostas

Darkrme

Darkrme

29/12/2008

Amigo, procure a propriedade ReadOnly do seu Edit e mude-a para True, isso evita que o usuário digite no seu Edit.

Espero ter ajudado. =)


GOSTEI 0
Evandro_araujo

Evandro_araujo

29/12/2008

entao mas se fizer isso nao vou conseguir passar o leitor de codigo de barra


GOSTEI 0
Vitor Alcantara

Vitor Alcantara

29/12/2008

O que você pode tentar é pegar o valor digitado e armazenar em uma váriavel, dai testar quando for pressionado o ENTER se é um código de barras válido (EAN13 possui 13 digitos e o EAN8 possui 8 digitos), após o ENTER você executa o teste se é código válido ou não, e insere ou não no seu edit. Agora quanto a permitir a entrada de dados somente do leitor, creio que com esses leitores usb e extensão de teclados, você não irá conseguir, pois os mesmo funcionam como um teclado.

Ex:
no on KePress

begin
  if key in [´0´..´9´] then
  begin
    MinhaVariavel := MinhaVariavel + Key;
  end;

  if key = 13 then
  begin
    //Aqui você insere a sua rotina
  end;

end;



GOSTEI 0
Darkrme

Darkrme

29/12/2008

Desulpe, mas eu nao tinha visto que vc queria usar o Leitor, no meu sistema eu uso leitor, porem deixo apra o usuario digitar qualquer valor, busco o produto com o codigo q o ususario digitou, caso nao encontre nada mando uma msg e limpo o campo, caso contrario insere o produto na compra, mas a dica do nosso amigo Vitor pode dar certo, soh gostaria de fazer algumas obeservacoes, acho q trabalhar com tecla virtual eh mais facil ou seja #13 = Enter e VK_RETURN = Enter (Virtual), mais facil de memorizar, outra coisa... acho q para usar isso a sua tela de compra nao pode ter nenhum outro campo onde va numero, pois senao a sua variavel vai pegar mais caracteres que deve.

begin
  if key in [´0´..´9´] then
  begin
    MinhaVariavel := MinhaVariavel + Key;
  end;

  if Key = VK_RETURN then
  begin
    //Aqui você insere a sua rotina

   //no final dessa rotina vc zera a sua variavel
  MinhaVariavel := ´´; ou MinhaVariavel := 0;
  end;

end;



acho q esse codigo vc poderia colocar no evento OnKeyDown do form, e se quiser deixar um pouco mais seguro usa a propriedade ActiveControl para saber em qual objeto esta o Foco.. por exemplo:

  if ActiveControl <> EdtData then
  begin
    if key in [´0´..´9´] then
    begin
      MinhaVariavel := MinhaVariavel + Key;
    end;
  end;



ou seja.. sua variavel soh vai pegar os numeros qnd nao estiver no campo de data, que tb eh um campo numerico.

Espero ter ajudado.


GOSTEI 0
POSTAR