nao usar acentos no edit
ola amigos, qual eh a funçao q bloqueia acentos, Ç, tremas etc.. nas letras? obrigado o usuario a digitar somente as palavras sem acentos, Ç etc..
um abraço
postem o codigo po favor!
um abraço
postem o codigo po favor!
Njuniorba
Curtidas 0
Respostas
Adriano Santos
01/09/2005
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
Martins
01/09/2005
[quote:76467eacdc=´Adriano Santos´]
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:
Boa sorte!!!
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:
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
Imoreira
01/09/2005
procedure TForm1.editKeyPress(Sender: TObject; var Key: Char);
begin
if (pos(key,´abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZ1234567890´+#8)=0) THEN BEGIN
key:=0;
end;
end;
begin
if (pos(key,´abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZ1234567890´+#8)=0) THEN BEGIN
key:=0;
end;
end;
GOSTEI 0
Adriano Santos
01/09/2005
Tem sim [b:89803f8899]Adriano[/b:89803f8899]
Fica mais ou menos assim:
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;
procedure TForm1.editKeyPress(Sender: TObject; var Key: Char);
begin
if (pos(key,´abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZ1234567890´+#8)=0) THEN BEGIN
key:=#0;
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
Martins
01/09/2005
procedure TForm1.editKeyPress(Sender: TObject; var Key: Char);
begin
if (pos(key,´abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZ1234567890´+#8)=0) THEN BEGIN
key:=0;
end;
end;
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
Adriano Santos
01/09/2005
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.
:wink:
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
Martins
01/09/2005
[quote:25590cfb1f=´Adriano Santos´]
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:
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
Imoreira
01/09/2005
Foi mal, não tinha atentado para esse detalhe.
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.
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
Martins
01/09/2005
Foi mal, não tinha atentado para esse detalhe.
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.
Blz, iMoreira sem problema, e valeu pela dica tb.
Pronto juntos postamos a solução para o nosso amigo.
Um abraço!!!
GOSTEI 0