Re: [delphi-br] Problema com Função (Lógica errad a ?)
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/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 ?)
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