Varrer um DBEdit

Delphi

16/08/2007

Ola moçada!!!

Preciso de um help, estou fazendo um pequeno plano de contas e preciso varrer um Edit buscando os digitos de 2 em 2...

EX:

xx.yy.ww.zz.hhhh < preciso colocar xx numa variável para comparação depois yy e assim sucessivamente!!!

Se alguem puder ajudar, fico muito grato!!!


Wadojr

Wadojr

Curtidas 0

Respostas

Carlosrm

Carlosrm

16/08/2007

Olá, wadojr,

como eu não sei o que vc pretende fazer depois das comparações, uma das possíveis soluções é criar uma variável para cada nível de conta do seu plano. Por exemplo, N1 armazenará o conteúdo de xx; N2 armazenará o conteúdo de yy; N3 armazenará o conteúdo de ww; N4 armazenará o conteúdo de zz; N5 armazenará o conteúdo de hhhh.

Detalhando: No evento OnExit do Edit, ou no OnKeyPress se a tecla pressionada for o Enter (#13) ou em qualquer outro evento que atenda os propósitos do seu código, você poderia escrever algo parecido com

procedure ...
var 
  N1, N2, N3, N4 : string[2];  
  N5 : string[4];
begin
  N1 := ´´;
  N2 := ´´;
  N3 := ´´;
  N4 := ´´;
  N5 := ´´;

  if edit1.text <> emptystr then begin
     N1 := copy(Edit1.text, 1,2);
     N2 := copy(Edit1.text, 4,2);
     N3 := copy(Edit1.text, 7,2);
     N4 := copy(Edit1.text, 10,2);
     N5 := copy(Edit1.text, 13,4);

     if N1 := ´01´ then begin
        showmessage(´Ativo´);
        ...
     end; // if N1...

  end; // if edit1...

end;  // fim da procedure  


obs: Não é o código mais curto, mas imagino que pelo menos nas primeiras vezes facilitará a compreensão e manutenção.

Espero que ajude a clarear.

carlosrm


GOSTEI 0
Wadojr

Wadojr

16/08/2007

:D CarlosRM...

Cara pé exatamente isso que estava procurando....

Muito obrigado, precisando estamos as ordens!!!

Abraço!!!


GOSTEI 0
Wadojr

Wadojr

16/08/2007

Como comentei... a ideia que vc me passou funcionou legal...

Agora tive a idéia de fazer um autocomplete... EX: temos:

1.11.11.11.0000 Conta PAI
1.11.11.11.0001 Conta Filha

para inserir a conta filha gostaria q os numeros 1.11.11.11(da conta PAI) sejam prenchidos automaticamente.. Ja consegui colocar os valores nas variáveis, o problema esta sendo colocar essas variaveis no dbedit porq as mesmas ficam entre os pontos.

maskara => xx.xx.xx.xx.xxxx

alguem tem alguma dica???

thank´s!!!


GOSTEI 0
Carlosrm

Carlosrm

16/08/2007

wadojr,

vc deve estar gravando na tabela os digitos de cada nivel de conta SEM os símbolos separadores de níveis (no caso, o ponto).
Na exibição do conteúdo do componente, os pontos aparecem. Para que grave na tabela também os pontos separadores de níveis, basta alterar a máscara de formatação (é facil, veja exemplos pressionando a reticências ao lado da propriedade EditMask do componente no Object Inspector.

Outra forma mais trabalhosa e pouco producente (mas funcional) é criar uma variável para receber o conteúdo da conta pai, já intercalada com os pontos (No post anterior eu te lembrei um modo de obter N1, N2 ...):

procedure ...
var
  s : string;
begin
  s := N1+´.´+N2+´.´+N3+´.´+N4+´.´;  // se esta parte do código for utili-
  EditContaFilha.text := s;                // zada mais de uma vez, faça uma 
  - - -                                             // função ou procedure...
  
end;  



Espero que sirva de motivação.

Abraços.carlosrm


GOSTEI 0
POSTAR