Hola fidel,
Asi a vista rápida el código que tienes solo hará mayúsculas en caso de que haya un espacio.
Si tu deseas que controlase el tema de guiones y los "de", "la" y otros más habrá que buscarle un algoritmo un poquito más complicado, pero se puede.
Por el momento puedo decirte que el algoritmo que tienes puede mejorarse un poco:
Código Delphi
[-]
HayEspacio := True;
For i := 1 to Length(sAape) do
begin
if HayEspacio
then sApellidos := sApellidos + AnsiUpperCase(copy(sAape, i, 1))
else sApellidos := sApellidos + AnsiLowerCase(copy(sAape, i, 1));
HayEspacio := Copy(sAape, i, 1) = ' ';
end;
Saludos,