Excluir todas as ocorrências de um caractere de uma string no Delphi

Inclua na seção uses:SysUtils

Problema:

Em determinados casos gostaria de poder eliminar alguns 
caracteres indesejados que os usuários podem digitar, tais
como pontos, aspas, etc. Como fazer isto?



Solução:

Na função abaixo, o primeiro parâmetro é o caractere a ser
eliminado e o segundo parâmetro é a string, donde o caractere
será eliminado. 

function DeleteChar(const Ch: Char; const S: string): string;
var
  Posicao: integer;
begin
  Result := S;
  Posicao := Pos(Ch, Result);
  while Posicao > 0 do begin
    Delete(Result, Posicao, 1);
    Posicao := Pos(Ch, Result);
  end;
end;

=== Exemplo de uso ===

- Coloque um Edit e um Button.
- Programe o OnClick do botão conforme abaixo:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := DeleteChar('"', Edit1.Text); { Exclui aspas }
  Edit1.Text := DeleteChar('.', Edit1.Text); { Exclui pontos }
end;

Observações

Para eliminar vários caracteres poderíamos escrever uma função que fizesse toda a tarefa numa única chamada.