Varrer um DBEdit
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!!!
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
Curtidas 0
Respostas
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
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
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
16/08/2007
:D CarlosRM...
Cara pé exatamente isso que estava procurando....
Muito obrigado, precisando estamos as ordens!!!
Abraço!!!
Cara pé exatamente isso que estava procurando....
Muito obrigado, precisando estamos as ordens!!!
Abraço!!!
GOSTEI 0
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!!!
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
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 ...):
Espero que sirva de motivação.
Abraços.carlosrm
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