Ver Mensaje Individual
  #2  
Antiguo 30-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Hola Suriu,
El problema de estar empleando un array dinámico es que para borrar una posición determinada debes tu mismo elaborar el algoritmo. No existe el Delete en un array dinámico.
Deberás sobrescribir los valores corriendolos hacia una posición anterior. Y luego realizar un SetLength con el valor anterior. Más o menos así:

Código Delphi [-]
procedure Estudiante.Borrar(aIndice: Integer);
begin
 Desplazar(aIndice);
 dec(FCant);
 SetLength(Alumno, FCant);
end;

Siendo Desplazar el algoritmo que se encarga de ir "corriendo" los datos.

La otra opción es que no emplees los arrays dinámicos y uses TList, o TObjectList. Éstos cuentan con los métodos adecuados para insertar, borrar, etc... Si tienes dudas, con la ayuda de Delphi y una búsqueda en estos foros podrás evacuarlas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 30-11-2007 a las 05:45:04. Razón: error en el codigo
Responder Con Cita