Hola madrid_cr7.
Si en Edit9.Text tiene que quedar la primera vocal a partir del segundo caracter del apellido, tu código reformado quedaría así:
Código Delphi
[-]var i:integer; begin i:= 2; while not (UpCase(Edit1.Text[i]) in ['A','E','I','O','U']) do Inc(i); Edit9.Text:= Edit1.Text[i]; end;
Te explico que es lo que hace: La primera letra hay que ignorarla sea vocal o consonante y a partir de la segunda recorremos la cadena incrementando la varialbe 'i' hasta que encuentra una vocal. Alli termina el ciclo
while y por supuesto el valor 'i' tiene la posición de la
primera vocal encontrada a partir del segundo caracter. Esa posición es usada como subindice de Edit1.Text[i] para obtener el caracter
buscado.
La función
UpCase convierte a mayúsculas lo que estamos comparando, por que no es lo mismo 'A' que 'a', sin ella tendría que haber echo:
Código Delphi
[-] while not (Edit1.Text[i] in ['A','E','I','O','U','a','e','i','o','u']) do
Al finalizar el ciclo while, se asigna a Edit9.Text la vocal encontrada en Edit1.Text[i].
Si hay algo que no te quedó en claro decimelo y lo vamos a ir tratando de aclarar.
Un saludo.