Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   type packed record (https://www.clubdelphi.com/foros/showthread.php?t=56360)

jonmendi 15-05-2008 11:17:27

type packed record
 
Hola!
tengo definido

Código:


  TFUsAct = packed record
    Codigo: SmallInt;
    numero: SmallInt;
  end;
 
 
var
  usuario : TFUsAct ;
 
begin
  usuario.codigo := 1;
  usuario.numero:= 123;
end;


para acceder uso el nombre del "campo". ¿Hay alguna forma de acceder sin usar el nombre? me refiero a algo como

Código:


usuario[0] := 1;
usuario[1] := 123;

Gracias a todos!

Jon

basti 15-05-2008 14:27:18

Con punteros podrías hacer algo parecido, con arrays no se me ocurre como:
Código Delphi [-]
type
  TRecord = packed record
    Codigo : Smallint;
    Numero : Smallint;
  end;

var
  r : TRecord;
  p1 : ^Smallint;
begin
  r.Codigo := 1;
  r.Numero := 123;
  p1 := @r;
  Label1.Caption := IntToStr(p1^);
  Inc(p1);
  Label2.Caption := IntToStr(p1^);
end;

Lord Delfos 20-05-2008 16:17:39

Bueno, con arreglos se podría hacer algo así:

Código Delphi [-]

type Arr=array [1..2] of Smallint;

{. . .}

var p:^Arr;
     Rec:TFUsAct;
begin
  p:=@Rec;
  p^[1]:=3;
  p^[2]:=17;
  ShowMessage(IntToStr(Rec.Codigo)+' - '+IntToStr(Rec.numero));
end;

Cuya practicidad es discutible. Pero que funciona, funciona.

Saludongos.


La franja horaria es GMT +2. Ahora son las 21:00:58.

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