Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como puedo usar record en delphi (https://www.clubdelphi.com/foros/showthread.php?t=66199)

antonio302050 05-02-2010 22:11:18

como puedo usar record en delphi
 
disculpen miignorancia soy nuevoen esto de programar
quisiera q me den un ejemplo de como usar record

Casimiro Notevi 05-02-2010 22:21:17

google->buscar: delphi record ;)

Código:

procedure TForm1.Button1Click(Sender: TObject);
type
  registroPrueba = record
    campo1 : integer;
    campo2 : string;
    campo3 : double;
    campo4 : TStringList;
  end;

var
  registro : registroPrueba;
  listaEjemplo : TStringList;
begin
  registro.campo1 := 43;
  registro.campo2 := 'Esto es una prueba de registros';
  registro.campo3 := 112234;
  //inicializamos un TStringList cualquiera y le insertamos valores
  listaEjemplo := TStringList.Create;
  listaEjemplo.Add('Estro es una prueba');
  listaEjemplo.Add('de inserción de una lista');
  listaEjemplo.Add('en un tipo "record"');

  //inicializamos el TStringList del registro
  registro.campo4 := TStringList.Create;
  //le insertamos la lista creada anteriormente en el registro
  registro.campo4 := listaEjemplo;

  //mostramos algún valor del registro
  showmessage (registro.campo4.Strings[1]);
  showmessage (IntToStr(registro.campo1));
end;

Espero que te sirva.

antonio302050 05-02-2010 22:32:25

muchas gracias
 
muchas gracias por el ejemplo se muy bueno para entenderlo
una pregunta mas
puedo usar un record dentro de otro record ?
nose si me explique bien
me refiero a esto
un ejemplode lo que quiero
alumno.nombre:=antonio;
alumno.nombre.direccion:="barrio bolivar";
como tu ej
de registro.campo1
pero implementarlo otra variable
registro.campo1.fecha:=020202;
quierosaber si sepuede
te agradezco la ayudade antemano

Casimiro Notevi 05-02-2010 22:51:15

Supongo que sí, un record en delphi es lo "mismo" que una "estruct" en lenguaje C, así que debe poderse, seguro.

Haz la prueba, así es como se aprende :)

santiago14 06-02-2010 01:29:46

Yo pondría algo así:

Código Delphi [-]

type
 registroInterno = record
   campo1:integer;
   campo2:string;
   campo3:TDate;
end;

registroPrincipal = record
   principal1:byte;
   principal2:integer;
   principal3:registroInterno;
end;
De esta forma, luego tendría que declarar la variable:
Código Delphi [-]
//....
var
  registro:registroPrincipal
begin
  //Asignación
  registro.principal3.campo1:=33;

//....
Supongo que eso es de lo que se trata ¿no?

Saludos.

DriverOp 06-02-2010 02:45:53

Cita:

Empezado por antonio302050 (Mensaje 353156)
una pregunta mas
puedo usar un record dentro de otro record ?

Sí, se puede tranquilamente. Por ejemplo:

Código Delphi [-]
type
  TFecha=record
    Dia: byte;
    Mes: byte;
    Ano: integer;
  end;

  TPersona=record
    Nombre, Apellido: string;
    FechaDeNacimiento: TFecha;
  end;
Y accedes a los campos como has intuido tú:
Código Delphi [-]
var
  Persona: TPersona;
begin
  Persona.Nombre:='Diego';
  Persona.FechaDeNacimiento.Dia:=1;
  Persona.FechaDeNacimiento.Mes:=1;
  Persona.FechaDeNacimiento.Ano:=2003;
...
Lo que no puedes hacer es esto:
Código Delphi [-]
  Persona.FechaDeNacimiento:=01012003;
Porque FechaDeNacimiento es de tipo TFecha y 01012003 es un longint.

santiago14 06-02-2010 17:24:10

Exacto, DriverOp dió un ejemplo más gráfico que el mío. La idea es la misma.

Gracias DriverOp.

Saludos.

antonio302050 08-02-2010 22:17:29

okok
 
gracias por las respuestas a todos
me quedo todo clarisimo


La franja horaria es GMT +2. Ahora son las 10:51:11.

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