Para Delphi 7 que no cuenta con la propiedad StrictDelimiter
El truco está en reemplazar el espacio por un carácter que se esté seguro que no se va a usar y luego hacer el proceso inverso.
Código Delphi
[-]Var
SubFrase: TStringList;
begin
SubFrase:= TStringList.Create;
SubFrase.Text:= 'hola, soy pepe perez perea, no tengo pereza, por eso uso delphi';
SubFrase.Delimiter:= ',';
SubFrase.DelimitedText:= StringReplace(SubFrase.Text, ' ', '·', [rfReplaceAll]);
ShowMessage(StringReplace(SubFrase.Strings[0], '·', ' ', [rfReplaceAll]));
ShowMessage(StringReplace(SubFrase.Strings[1], '·', ' ', [rfReplaceAll]));
ShowMessage(StringReplace(SubFrase.Strings[2], '·', ' ', [rfReplaceAll]));
ShowMessage(StringReplace(SubFrase.Strings[3], '·', ' ', [rfReplaceAll]));
FreeAndNil(SubFrase);
end;