Ok war noch ein ganz einfacher Logikfehler drin. Das ganze wird ja mehrmals auf den gleichen String losgelassen. Dabei zählt der dann bereits vorhandene Leerzeichen mit. So hier die funktionierende neue Fassung:
Delphi-Quellcode:
function buchstaben5ergruppen(const text: string): string;
var i: Integer;
begin
Result :='';
for i := 1 to Length(Text) do
begin
if text[i] <> ' ' then
Result := Result + text[i];
end;
for i := (Length(text)-1) div 5 downto 1 do
begin
Insert(' ', result, i*5 +1);
mmotest.Text := mmotest.Text + Result;
end;
end;