Algo así también me venía funcionando, pero con algún resultado no demasiado correcto.
Código Delphi
[-]
sAape := 'SIGÜENZA NÚÑEZ PUÇOL'
sApellidos := '';
sEspacio := 'Si';
For i := 1 to Length(sAape) do
begin
if sEspacio = 'Si' then
sApellidos := sApellidos + AnsiUpperCase(copy(sAape, i, 1))
else
sApellidos := sApellidos + AnsiLowerCase(copy(sAape, i, 1));
if copy(sAape, i, 1) = ' ' then
sEspacio := 'Si'
else
sEspacio := 'No';
end;
MARTÍNEZ-MENDOZA GIL ..... Martínez-mendoza Gil (Martínez-Mendoza Gil)
HURTADO DE MENDOZA DE LA CUADRA .... Hurtado De Mendoza De La Cuadra (Hurtado de Mendoza de la Cuadra)