Naja, kann ja auch nicht. Du überschreibst S ja immer wieder. Deine Routine ersetzt also nur ä's
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
S:String;
begin
S := Edit10.Text;
S := StringReplace(S,'ü','ue',[rfReplaceAll]);
S := StringReplace(S,'ö','oe',[rfReplaceAll]);
S := StringReplace(S,'ä','ae',[rfReplaceAll]);
Edit10.Text := S;
end;
Sollte besser funktionieren (nicht getestet !)