Thema: Delphi Record erweitern

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.230 Beiträge
 
Delphi 12 Athens
 
#8

Re: Record erweitern

  Alt 14. Jan 2009, 17:03
Jupp, davon kanns du ausgehen (nja, zumindestens die Feldausrichtung im Record dieses hergibt)
drum verwende ich oftmals ganz gern packed Records und Arrays

Delphi-Quellcode:
Rec = record
  case x: Integer of
    0: (p1, p2, p3, p4: TPoint);
    1: (p: Array[1..4] of TPoint);
end;
ohne Feldnahmen im CASE wird der dort angegebene Type zur Unterteilng er einzelnen überlagerten Teile verwendet

Delphi-Quellcode:
Rec = record
  case Boolean of
    false: (p1, p2, p3, p4: TPoint);
    true: (p: Array[1..4] of TPoint);
end;

// oder

MySet = (msPoints, msPointArray);
Rec = record
  case Boolean of
    msPoints: (p1, p2, p3, p4: TPoint);
    msPointArray: (p: Array[1..4] of TPoint);
end;

bezüglich der "Variable"
Delphi-Quellcode:
Rec = record
  case x: Integer of
    0: (p1, p2, p3, p4: TPoint);
    1: (p: Array[1..4] of TPoint);
end;

// entspricht

Rec = record
  x: Integer;
  case Integer of
    0: (p1, p2, p3, p4: TPoint);
    1: (p: Array[1..4] of TPoint);
end;
// bzw.
Rec = record
  x: Integer;
  p1, p2, p3, p4: TPoint;
end;
in diesem Fall könnte man X z.B. dazu verwenden welche Defiinition verwendet wird.
vorallem nützlich, wenn man da unterschiedliche ypen einbaut
Delphi-Quellcode:
Rec = record
  case verwendet: Integer of
    0: (s: string);
    1: (i: integer);
    2: (b: byte);
end;
$2B or not $2B
  Mit Zitat antworten Zitat