Fórum nao usar acentos no edit #294238
01/09/2005
0
um abraço
postem o codigo po favor!

Njuniorba
Curtir tópico
+ 0Posts
01/09/2005
Adriano Santos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | function AnsiToAscii(str: char): string; var i: Integer; begin case str of ´á´: str := ´a´; ´é´: str := ´e´; ´í´: str := ´i´; ´ó´: str := ´o´; ´ú´: str := ´u´; ´à´: str := ´a´; ´è´: str := ´e´; ´ì´: str := ´i´; ´ò´: str := ´o´; ´ù´: str := ´u´; ´â´: str := ´a´; ´ê´: str := ´e´; ´î´: str := ´i´; ´ô´: str := ´o´; ´û´: str := ´u´; ´ä´: str := ´a´; ´ë´: str := ´e´; ´ï´: str := ´i´; ´ö´: str := ´o´; ´ü´: str := ´u´; ´ã´: str := ´a´; ´õ´: str := ´o´; ´ñ´: str := ´n´; ´ç´: str := ´c´; ´Á´: str := ´A´; ´É´: str := ´E´; ´Í´: str := ´I´; ´Ó´: str := ´O´; ´Ú´: str := ´U´; ´À´: str := ´A´; ´È´: str := ´E´; ´Ì´: str := ´I´; ´Ò´: str := ´O´; ´Ù´: str := ´U´; ´Â´: str := ´A´; ´Ê´: str := ´E´; ´Î´: str := ´I´; ´Ô´: str := ´O´; ´Û´: str := ´U´; ´Ä´: str := ´A´; ´Ë´: str := ´E´; ´Ï´: str := ´I´; ´Ö´: str := ´O´; ´Ü´: str := ´U´; ´Ã´: str := ´A´; ´Õ´: str := ´O´; ´Ñ´: str := ´N´; ´Ç´: str := ´C´; end; Result := str; end; |
Essa função troca o acento por sem acento.
Acho que dá pra ser mais curta, mas foi a única que achei aqui nos meus arquivos.
Gostei + 0
02/09/2005
Martins
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | function AnsiToAscii(str: char): string; var i: Integer; begin case str of ´á´: str := ´a´; ´é´: str := ´e´; ´í´: str := ´i´; ´ó´: str := ´o´; ´ú´: str := ´u´; ´à´: str := ´a´; ´è´: str := ´e´; ´ì´: str := ´i´; ´ò´: str := ´o´; ´ù´: str := ´u´; ´â´: str := ´a´; ´ê´: str := ´e´; ´î´: str := ´i´; ´ô´: str := ´o´; ´û´: str := ´u´; ´ä´: str := ´a´; ´ë´: str := ´e´; ´ï´: str := ´i´; ´ö´: str := ´o´; ´ü´: str := ´u´; ´ã´: str := ´a´; ´õ´: str := ´o´; ´ñ´: str := ´n´; ´ç´: str := ´c´; ´Á´: str := ´A´; ´É´: str := ´E´; ´Í´: str := ´I´; ´Ó´: str := ´O´; ´Ú´: str := ´U´; ´À´: str := ´A´; ´È´: str := ´E´; ´Ì´: str := ´I´; ´Ò´: str := ´O´; ´Ù´: str := ´U´; ´Â´: str := ´A´; ´Ê´: str := ´E´; ´Î´: str := ´I´; ´Ô´: str := ´O´; ´Û´: str := ´U´; ´Ä´: str := ´A´; ´Ë´: str := ´E´; ´Ï´: str := ´I´; ´Ö´: str := ´O´; ´Ü´: str := ´U´; ´Ã´: str := ´A´; ´Õ´: str := ´O´; ´Ñ´: str := ´N´; ´Ç´: str := ´C´; end; Result := str; end; |
Essa função troca o acento por sem acento.
Acho que dá pra ser mais curta, mas foi a única que achei aqui nos meus arquivos.[/quote:76467eacdc]
Tem sim [b:76467eacdc]Adriano[/b:76467eacdc]
Fica mais ou menos assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Function SemAcentos ( Texto: string ): string; var Contar, Posicao: integer; Acentos, TiraAcentos: string; begin Acentos:=´áäàãâÁÄÀÃÂéëèêÉËÈÊíïìîÍÏÌÎóöòõôÓÖÒÕÔúüùûÚÜÙÛçÇ´; TiraAcentos:=´aaaaaAAAAAeeeeEEEEiiiiIIIIoooooOOOOOuuuuUUUUcC´; Result:=´´; For Contar:=1 to Length(Texto) do begin Posicao:=Pos(Copy(Texto,Contar,1),Acentos); If Posicao=0 then Result:=Result+Copy(Texto,Contar,1) else Result:=Result+Copy(TiraAcentos,Posicao,1); end; end; |
Boa sorte!!!
Gostei + 0
02/09/2005
Imoreira
begin
if (pos(key,´abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZ1234567890´+#8)=0) THEN BEGIN
key:=0;
end;
end;
Gostei + 0
02/09/2005
Adriano Santos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Function SemAcentos ( Texto: string ): string; var Contar, Posicao: integer; Acentos, TiraAcentos: string; begin Acentos:=´áäàãâÁÄÀÃÂéëèêÉËÈÊíïìîÍÏÌÎóöòõôÓÖÒÕÔúüùûÚÜÙÛçÇ´; TiraAcentos:=´aaaaaAAAAAeeeeEEEEiiiiIIIIoooooOOOOOuuuuUUUUcC´; Result:=´´; For Contar:=1 to Length(Texto) do begin Posicao:=Pos(Copy(Texto,Contar,1),Acentos); If Posicao=0 then Result:=Result+Copy(Texto,Contar,1) else Result:=Result+Copy(TiraAcentos,Posicao,1); end; end; |
[b:89803f8899]Martins[/b:89803f8899] e [b:89803f8899]iMoreira[/b:89803f8899], já estou atualizando meus arquivos de dicas :D....
Quem sabe, sabe não é msm?
Gostei + 0
02/09/2005
Martins
Interessante esse seu código, mas não sei se vc percebeu q ele somente impede q os caracteres acentuados sejam digitados ex: JOÃO, o seu código do jeito q vc postou ficaria JOO, pq ele impede a digitação do Ã, então o usuário teria q colocar o A sem o acento, e tem mais, ele impede a utilização da barra de espaço, podem testar, se vcs conseguirem algo diferente, tentarei novamente, pois então devo ter feito algo errado.
Um abraço !!!!
:wink:
Gostei + 0
02/09/2005
Adriano Santos
Verdade [b:dda3aa6d7f]Martins[/b:dda3aa6d7f] também testei aqui, mas é porque ele manda o caracter de volta como nulo #0, é por isso.
Tem que fazer um esquema para substituir por outro sem acento. Talvez com um Array de caracteres, ou algo assim.
Gostei + 0
02/09/2005
Martins
Verdade [b:25590cfb1f]Martins[/b:25590cfb1f] também testei aqui, mas é porque ele manda o caracter de volta como nulo #0, é por isso.
Tem que fazer um esquema para substituir por outro sem acento. Talvez com um Array de caracteres, ou algo assim.[/quote:25590cfb1f]
Só pra constar!!!
Galera onde tem o 8) é um ´8´, se não for colocado vcs vão bloquear até o backspace, Ok!
[b:25590cfb1f]iMoreira[/b:25590cfb1f], já me falaram nos bastidores q tu manja muito de Delphi, então deve ter sido um vacilo comum a todos os programadores, stress, cansaço, sabe como é, qualquer alteração no código posta aqui q eu quero uma cópia dele.
Um abraço [b:25590cfb1f]iMoreira, Adriano, njuniorba[/b:25590cfb1f].
:wink:
Gostei + 0
02/09/2005
Imoreira
Testei a do Martins e funciona legal
só tem que mandar o cursor para o fim da cadeia do edit.
ex.: edit.SelStart:=length(edit.text);
Fiz o teste no evento onChange.
Gostei + 0
02/09/2005
Martins
Blz, iMoreira sem problema, e valeu pela dica tb.
Pronto juntos postamos a solução para o nosso amigo.
Um abraço!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)