Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2007
Suriu Suriu is offline
Miembro
 
Registrado: abr 2007
Posts: 48
Poder: 0
Suriu Va por buen camino
Question Problemas con registros record

Hola foro, estoy desarrollando el siguiente código:

Código Delphi [-]
...........
Type
 Datos = Record
  Nombre    : ShortString;
  Apellidos : ShortString;
  Edad      : Byte;
 End;

 Estudiante = Class
 Private
  Alumno : Array of Datos;
  FCant  : Integer;
 Public
  Property Cant : Integer read FCant write FCant;
  Procedure Entrada(aDatos : Datos);
  Function Impresion(aIndice : Integer) : Datos;
 End;

implementation

procedure Estudiante.Entrada(aDatos: Datos);
begin
 Inc(FCant);
 SetLength(Alumno, FCant);
 Alumno[FCant - 1] := aDatos;
end;

function Estudiante.Impresion(aIndice: Integer): Datos;
begin
 Result := Alumno[aIndice];
end;

end.

Al cual quiero agregarle un procedimiento para borrar un determinado registro, o sea quedaría algo así:

Código Delphi [-]
public
 procedure Borrar(aIndice : Integer);
.............
procedure Estudiante.Borrar(aIndice: Integer);
begin
 Alumno[aIncice].delete;
end;

El problema es que así no me sirve y quisiera que alguien me digiera como puedo lograr esto o por lo menos que procedimiento es el que debo usar para borrarlo, espero a verme explicado bien pues soy nuevo en esto de trabajar con los record. Gracias de antemano para quien me pueda ayudar....
Responder Con Cita
  #2  
Antiguo 30-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 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
  #3  
Antiguo 30-11-2007
Suriu Suriu is offline
Miembro
 
Registrado: abr 2007
Posts: 48
Poder: 0
Suriu Va por buen camino
Gracias Delphius, ohora mismo voy a buscar.....
Responder Con Cita
  #4  
Antiguo 22-01-2008
Avatar de yarielrs
yarielrs yarielrs is offline
Miembro
 
Registrado: mar 2007
Ubicación: Cienfuegos, Cuba
Posts: 16
Poder: 0
yarielrs Va por buen camino
Sobre registros record...

Hola, amigos del foro:
E visto el ejemplo que hay en este enlace http://www.clubdelphi.com/foros/show...ghlight=record el cual es bastante semejante al mio. El problema es que quisiera agregarle una especie de evento OnAdd. Si alguien me pudiera dar una idea o decirme donde puedo encontrar algo referente a esto se lo agradecería mucho. Gracias de antemano....
Responder Con Cita
  #5  
Antiguo 22-01-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por yarielrs Ver Mensaje
...El problema es que quisiera agregarle una especie de evento OnAdd...
Pues eso deja de ser una estructura y pasa a ser un objeto.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Record counta el total de registros devueltos? rafita SQL 2 15-09-2006 12:41:52
Problemas para la insercion de Registros taru MySQL 7 14-07-2006 05:20:00
Problemas en insercion de registros ilichhernandez Conexión con bases de datos 6 02-11-2005 10:00:57
Problemas Con Tabla De 500,000 Registros nola Tablas planas 1 04-05-2004 04:56:42
Problemas al insertar registros con ADO sanluisme Conexión con bases de datos 0 04-03-2004 10:34:41


La franja horaria es GMT +2. Ahora son las 03:45:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi