если вам не нужно делать это на месте, а генерировать копию строки, попробуйте этот код
type CharSet=Set of Char;
function StripCharsInSet(s:string; c:CharSet):string;
var i:Integer;
begin
result:='';
for i:=1 to Length(s) do
if not (s[i] in c) then
result:=result+s[i];
end;
и используйте его следующим образом
s := StripCharsInSet(s,[#0..#9,#11,#12,#14..#31,#127]);
РЕДАКТИРОВАНИЕ : добавлено # 127 для DEL ctrl char.
EDIT2 : это более быстрая версия, спасибо ldsandon
function StripCharsInSet(s:string; c:CharSet):string;
var i,j:Integer;
begin
SetLength(result,Length(s));
j:=0;
for i:=1 to Length(s) do
if not (s[i] in c) then
begin
inc(j);
result[j]:=s[i];
end;
SetLength(result,j);
end;