Me parece que lo que se desea para el ejercicio es que aprendas a hacer corte de control.
program Ejercicio_27;
var oracion:string;
var contA,contE,contI,contO,contU:integer;
var contPalabras,maxLetras,letras: integer;
var i:integer;
begin
readln(oracion);
//Inicialización oracion
contA:=0;
contE:=0;
contI:=0;
contO:=0;
contU:=0;
contPalabras:=0;
maxLetras:=0;
i := 1;
while (oracion[i]<>'.') do begin //Ciclo que corta cuando termina la oración
//Inicialización palabra
contPalabras := contPalabras +1;
letras := 0;
while( (oracion[i]<>' ') and (oracion[i]<>'.') ) do begin //Ciclo que corta cuando termina la palabra y/o oracion
letras:=letras+1;
case oracion[i] of
'a','A' : contA:=contA+1;
'e','E' : contE:=contE+1;
'i','I' : contI:=contI+1;
'o','O' : contO:=contO+1;
'u','U' : contU:=contU+1;
end;
i:=i+1;
end;
//Finalización palabra
if letras>maxLetras then maxLetras:=letras;
if oracion[i]=' ' then i:=i+1;
end;
//Finalización oracion
writeln('La cantidad de veces que aparecen las vocales son:');
writeln('La vocal a: ',contA,' veces');
writeln('La vocal e: ',contE,' veces');
writeln('La vocal i: ',contI,' veces');
writeln('La vocal o: ',contO,' veces');
writeln('La vocal u: ',contU,' veces');
writeln('La cantidad de palabras que aparecen son: ',contPalabras);
writeln('La palabra mas larga tiene: ',maxLetras,' letras');
end.
Los cortes de control se usan cuando tenés cosas dentro de otras(ejemplo: palabras dentro de una oración), son siempre iguales: Tenés varios ciclos anidados y para cada uno tenés acciones de inicialización (por ejemplo en este fue inicializar las variables que importan para toda la oración antes del ciclo que recorre la oración, y las que importan para la palabra antes del ciclo de palabra) y de finalización (en la finalización de la oración imprimís, al final del ciclo que recorre la palabra te fijás si es la que tiene más letras)
Si en vez de una oración te pasaran un párrafo(y te pidieran por ejemplo contar la cantidad de oraciones) se agregaría un ciclo más.
program Ejercicio_27;
var parrafo:string;
var contA,contE,contI,contO,contU:integer;
var contPalabras,contOraciones,maxLetras,letras: integer;
var i:integer;
begin
readln(parrafo);
//Inicialización párrafo
contOraciones:=0;
i:=1;
while(i < Length (parrafo)) do begin
//Inicialización oracion
contA:=0;
contE:=0;
contI:=0;
contO:=0;
contU:=0;
contPalabras:=0;
maxLetras:=0;
contOraciones:= contOraciones+1;
while ( (parrafo[i]<>'.')) do begin
//Inicialización palabra
contPalabras := contPalabras +1;
letras := 0;
while( (parrafo[i]<>' ') and (parrafo[i]<>'.')) do begin
letras:=letras+1;
case parrafo[i] of
'a','A' : contA:=contA+1;
'e','E' : contE:=contE+1;
'i','I' : contI:=contI+1;
'o','O' : contO:=contO+1;
'u','U' : contU:=contU+1;
end;
i:=i+1;
end;
//Finalización palabra
if letras>maxLetras then maxLetras:=letras;
if parrafo[i]=' ' then i:=i+1;
end;
//Finalización oracion
writeln('Oracion nro: ',contOraciones);
writeln('La cantidad de veces que aparecen las vocales son:');
writeln('La vocal a: ',contA,' veces');
writeln('La vocal e: ',contE,' veces');
writeln('La vocal i: ',contI,' veces');
writeln('La vocal o: ',contO,' veces');
writeln('La vocal u: ',contU,' veces');
writeln('La cantidad de palabras que aparecen son: ',contPalabras);
writeln('La palabra mas larga tiene: ',maxLetras,' letras');
writeln('==========================================================');
writeln();
i:=i+2;//Avanzo el . y el espacio.
end;
//Finalización párrafo
writeln('La cantidad de oraciones es: ',contOraciones);
end.