ich weiß ja, wie peinlich das ist - aber die Umlaute bringen mich zur Verzweiflung

Aus einem String möchte ich gerne Sonderzeichen herausfiltern. Und ich kriegs einfach nicht hin: Auch die Umlaute werden dauernd herausgefiltert

Vielleicht ist ja jemand nochmal geduldig.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
a,b :string;
begin
a := edit1.text;
b := Check_String( a );
// b := GetOnly (a); //alternativ, funktioniert aber auch nicht!
edit2.Text:= b;
end;
Code: Alles auswählen
function Check_String(Text : String) : string; //verbotene Buchstaben rausfiltern!!
var
i : integer;
begin
Result := '';
for i:=1 to Length(Text) do
begin
if ( Text[i] in [ char(#46), char(#48)..char(#57), char(#65)..char(#90), char(#97)..char(#122) , char(#196),char(#214),char(#220),char(#228),char(#246), char(#252) ] ) then
begin
Result := Result + Text[i];
end;
end;
end;
Code: Alles auswählen
function GetOnly(Value: String): String;
var
i, CurResult: Integer;
begin
SetLength(Result, Length(Value));
CurResult := 1;
for i := 1 to Length(Value) do
if Value[i] in ['a'..'z', 'A'..'Z' , '0'..'9' , 'ä','ö','ü','Ä','Ö','Ü' ] then //funktioniert, wenn die Umlaute nicht dabei sind
begin
Result[CurResult] := Value[i];
Inc(CurResult);
end;
SetLength(Result, CurResult - 1);
end;
Wo liegt der Haken, kann/mag mir jemand helfen?
Aliobaba