Re: [delphi-br] Problema com Função (Lógica errad a ?)

2009-03-08 Por tôpico Robson Barros
Altere a declaração da procedure para

*procedure Desabilita_Acentos ( var Key : Char);*

Assim vai funcionar.




2009/3/6 Tiago de Assis Pimenta 

>   Pessoal, estou com o seguinte problema aqui no meu serviço, tenho que
> fazer
> uma função que desabilite a acentuação em todos os forms do sistema. Até ae
> tudo OK, estou com a seguinte função para fazer isso.
>
> if not (Key in ['A'..'Z', 'a'..'z', '0'..'9']) then
>
> key := #0;
>
> Testei essa função direto no OnKeyPress do form e ela funcionou
> perfeitamente, mas para ficar um pouco melhor, tentei colocar essa função
> numa Unit aqui que tem somente Procedures e Functions. Então ela ficou
> assim
> :
>
> UntFuncoes
>
> procedure Desabilita_Acentos ( Key : Char);
>
> begin
>
> if not (Key in ['A'..'Z', 'a'..'z', '0'..'9']) then
>
> key := #0;
>
> end;
>
> UntCentro_Custo
>
> No Evento OnKeyPress coloco assim.
>
> procedure TfrmCentro_Custo.FormKeyPress(Sender: TObject; var Key: Char);
>
> Begin
>
> Desabilita_Acentos(key);
>
> end;
>
> Pelo que sei, era para funcionar... mas não funcionou assim, debuguei a
> função e ela retonar false na verificação (Key in ['A'..'Z', 'a'..'z',
> '0'..'9']) e a Key que testei foi a “é”. E mesmo dando false na
> verificação,
> ela não le a linha Key := #0;
>
> Alguem tem alguma explicação do porque isso ?!?!?
>
> Como preciso passar isso logo pra frente, eu coloquei a função “if not (Key
> in ['A'..'Z', 'a'..'z', '0'..'9']) then key := #0;” direto no OnKeyPress do
> UntCentro_Custo para poder liberar isso hj, mas gostaria de uma explicação
> para isso, pois a lógica está correta (Eu acho).
>
> Abraços
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]





-- 
< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >

<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] Problema com Função (Lógica errad a ?)

2009-03-06 Por tôpico Joao Morais
2009/3/6 Tiago de Assis Pimenta :
> ...
> procedure Desabilita_Acentos ( Key : Char);
> ...
> Pelo que sei, era para funcionar... mas não funcionou assim, debuguei a
> função e ela retonar false na verificação (Key in ['A'..'Z', 'a'..'z',
> '0'..'9']) e a Key que testei foi a “é”. E mesmo dando false na verificação,
> ela não le a linha Key := #0;

A questão não é ler a linha Key := #0, mas que essa atribuição não faz
diferença na sua rotina. A forma mais eficaz é fazer passagem por
referência, colocando um 'var' na frente da sua variável:

procedure Desabilita_Acentos(var Key: Char);

--
Joao Morais




-- 
< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >

<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] Problema com Função (Lógica errad a ?)

2009-03-06 Por tôpico JB
function Desabilita_Acentos ( Key : Char): char;
begin

  if not (Key in ['A'..'Z', 'a'..'z', '0'..'9']) then
key := #0;

  result := Key;
end;


 No Evento OnKeyPress coloco assim.

 procedure TfrmCentro_Custo.FormKeyPress(Sender: TObject; var Key: Char);

 Begin

 key := Desabilita_Acentos(key);

 end;


2009/3/6 Tiago de Assis Pimenta :
> Pessoal, estou com o seguinte problema aqui no meu serviço, tenho que fazer
> uma função que desabilite a acentuação em todos os forms do sistema. Até ae
> tudo OK, estou com a seguinte função para fazer isso.
>
> if not (Key in ['A'..'Z', 'a'..'z', '0'..'9']) then
>
> key := #0;
>
> Testei essa função direto no OnKeyPress do form e ela funcionou
> perfeitamente, mas para ficar um pouco melhor, tentei colocar essa função
> numa Unit aqui que tem somente Procedures e Functions. Então ela ficou assim
> :
>
> UntFuncoes
>
> procedure Desabilita_Acentos ( Key : Char);
>
> begin
>
> if not (Key in ['A'..'Z', 'a'..'z', '0'..'9']) then
>
> key := #0;
>
> end;
>
> UntCentro_Custo
>
> No Evento OnKeyPress coloco assim.
>
> procedure TfrmCentro_Custo.FormKeyPress(Sender: TObject; var Key: Char);
>
> Begin
>
> Desabilita_Acentos(key);
>
> end;
>
> Pelo que sei, era para funcionar... mas não funcionou assim, debuguei a
> função e ela retonar false na verificação (Key in ['A'..'Z', 'a'..'z',
> '0'..'9']) e a Key que testei foi a “é”. E mesmo dando false na verificação,
> ela não le a linha Key := #0;
>
> Alguem tem alguma explicação do porque isso ?!?!?
>
> Como preciso passar isso logo pra frente, eu coloquei a função “if not (Key
> in ['A'..'Z', 'a'..'z', '0'..'9']) then key := #0;” direto no OnKeyPress do
> UntCentro_Custo para poder liberar isso hj, mas gostaria de uma explicação
> para isso, pois a lógica está correta (Eu acho).
>
> Abraços
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 



-- 

José Benedito
Software Developer
+55 19 8116-7826
msn: jb_holam...@hotmail.com
skype:jb.sologix




-- 
< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >

<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html