Array
(
)

como tirar acentos ao digitar em um dbedit

Zottis
   - 23 ago 2004

Como faço para não permitir a gravação de palavras com acentos, Ç, e caracteres especiais?
Uso Fireird 1.5 e Delphi 7.


Aroldo Zanela
   - 23 ago 2004

Colega,

No evento OnKeyPress, siga o exemplo:

#Código

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


No exemplo acima vai impedir a entrada, mas você pode alterar para conseguir o efeito desejado, conforme abaixo:

#Código
if (Key in [´Á´,´À´,´Ã´]) then key := ´A´;
if (Key in [´á´,´à´,´ã´]) then key := ´a´;


Só por curiosidade, qual o motivo?


Vinicius2k
   - 23 ago 2004

Colega,

Outra solução seria usar uma função, no OnExit, por exemplo :
#Código

function RemoverAcentos(S: String): String;
const StrA = ´áéíóúàèìòùãõâêîôûçüÁÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕÇÜ´;
StrB = ´aeiouaeiouaoaeioucuAEIOUAEIOUAEIOUAOCU´;
var i,aPos: Integer;
begin
for i:= 1 to Length(S) do
begin
aPos:= Pos(S[i],StrA);
if aPos > 0 then S[i]:= StrB[aPos];
end;
Result:= S;
end;


T+


Zottis
   - 23 ago 2004

o motivo é que uso mandar direto para a impressora e não tenho ainda um componente que me permita usar acentos ou caracteres especiais.

Obrigado pela ajuda acho que já resolve o meu problema.

valeu