Olá galera, nesta Quick Tips, irei mostra como podemos remover os acentos de uma texto, seja uma string ou um simples char. Vejamos como implementar e reaproveitar este método.
Inicialmente vamos criar um exemplo, adicionando em nosso form, e salvando o mesmo como uFrmPrincipal.pas :
1 Button (BtnRemoverAcentos)
3 Edit (EdtExemplo1, EdtResultado, EdtExemplo2)
2 GroupBox (GroupBoxExemplo1, GroupBoxExemplo2)
Nosso exemplo completo

Iremos agora na seção private criar uma function para remover os acentos, vejamos sua declaração:
private
{ Private declarations }
function RemoverAcento(Key: Char): char;
public
{ Public }
RemoverAcento
{ Com esta função estamos verificando se a variável Key possui algum acento, usando a instrução in, por exemplo se digitarmos 'é','è','ê', o resultado da função será “e” , e assim por diante, com esta função podemos trocar também “.” por “,” ou “,” por “.”, basta adaptar seguindo este modelo.}
function TFrmPrincipal.RemoverAcento(Key: Char): char;
begin
if (key in ['é','è','ê']) then
begin
Result := 'e';
end
else
if (key in ['É','È','Ê']) then
begin
Result := 'E';
end
else
if (key in ['á','à','ã','â']) then
begin
Result := 'a';
end
else
if (key in ['Á','À','Ã','Â']) then
begin
Result := 'A';
end
else
if (key in ['í','ì','Í','Ì','î','Î']) then
begin
Result := 'i';
end
else
if (key in ['Í','Ì','Î']) then
begin
Result := 'I';
end
else
if (key in ['ó','ò','õ','ô']) then
begin
Result := 'O';
end
else
if (key in ['Ó','Ò','Õ','Ô']) then
begin
Result := 'O';
end
else
if (key in ['ú','ù']) then
begin
Result := 'u';
end
else
if (key in ['Ú','Ù']) then
begin
Result := 'U';
end
else
if (key in ['ç']) then
begin
Result := 'c';
end
else
if (key in ['Ç']) then
begin
Result := 'C';
end
else
Result := Key;
end;
{ Com este método ao clicamos no nosso BtnRemoverAcentos, todo o conteúdo de EdtExemplo1, que contiver acentos, imediatamente será substituído por caracteres sem acento }
BtnRemoverAcentos
procedure TFrmPrincipal.BtnRemoverAcentosClick(Sender: TObject);
Var
S : String;
I : Integer;
begin
for I := 1 to Length(EdtExemplo1.Text) do
begin
S := S + RemoverAcento(EdtExemplo1.Text[I]);;
end;
EdtResultado.Text := S;
end;
{ Com este método ao digitarmos qualquer coisa no EdtExemplo2, que possua acento automaticamente o mesmo será substituído por um caracter sem acento }
EdtExemplo2Change
procedure TFrmPrincipal.EdtExemplo2KeyPress(Sender: TObject; var Key: Char);
begin
key := RemoverAcento(Key);
end;
Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.
Um abraço
Wesley Y