Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Erklärung von record (Delphihilfe unverständlich :)) (https://www.delphipraxis.net/80023-erklaerung-von-record-delphihilfe-unverstaendlich.html)

ErdNussLocke 1. Nov 2006 19:15


Erklärung von record (Delphihilfe unverständlich :))
 
Hi,

kann mir wer erklären, wie man die Funktion record benutzt?
Die Delphihilfe wirft wie immer nur noch mehr Rätsel auf.

Ich habe bisher verstanden, das man es unter type deklariert und mehrere Variablen verschiedenen Typs reinspeichern kann.
Nun versucht die Delphihilfe etwas mit "case" zu erkären, wo ich allerdings nicht durchsteige.
Bitte um Hilfe^^ (und um Fehlerberichtigung falls ich schon falsch liege)
Danke im Vorraus
MfG
ErdNussLocke

mkinzler 1. Nov 2006 19:19

Re: Erklärung von record (Delphihilfe unverständlich :))
 
Ein Record ist einfach ein zusammengesetzter Datentyp.

z.B.
Delphi-Quellcode:
TAdresse = Record
    Name: string;
    Vorname: string;
    GebDat: TDate;
    ...
end;
...
adr: TAdresse;
...
   adr.Name := 'Erdnusslocke';
   adr.Vorname := '...';
    ...

ErdNussLocke 1. Nov 2006 19:25

Re: Erklärung von record (Delphihilfe unverständlich :))
 
ok das is schonmal gut. danke dafür

und was hat es mit diesem case auf sich?

mkinzler 1. Nov 2006 19:26

Re: Erklärung von record (Delphihilfe unverständlich :))
 
Was steht da genau mit dem case drinn?

ErdNussLocke 1. Nov 2006 19:27

Re: Erklärung von record (Delphihilfe unverständlich :))
 
z.b. das hier

Delphi-Quellcode:
 TPolygon = record
   X, Y: Real;
   case Kind: Figure of
     TRectangle: (Height, Width: Real);
     TTriangle: (Side1, Side2, Angle: Real);
     TCircle: (Radius: Real);

3_of_8 1. Nov 2006 19:29

Re: Erklärung von record (Delphihilfe unverständlich :))
 
Das ist schon ein recht fortschrittliches Sprachfeature.

Das erlaubt dir, deine records dynamisch zu deklarieren, das heißt die genauen Bestandteile des records hängen von dem Aufzählungswert Kind ab.

mkinzler 1. Nov 2006 19:30

Re: Erklärung von record (Delphihilfe unverständlich :))
 
dabei handelt es sich nicht um einen normalen Record, sondern um einen Union. Je nach Wert einer Variable (hier Kind) sind andere Teile der Datenstruktur sichtbar.

ErdNussLocke 1. Nov 2006 19:31

Re: Erklärung von record (Delphihilfe unverständlich :))
 
aso ok. warum schreiben die das nicht so in die Hilfe ;)

Vielen Dank an alle!

alzaimar 1. Nov 2006 19:36

Re: Erklärung von record (Delphihilfe unverständlich :))
 
Zitat:

Zitat von 3_of_8
Das ist schon ein recht fortschrittliches Sprachfeature.

Nicht ganz. Es ist so alt wie Pascal selbst. Und damit bald 40 Jahre ...
Zitat:

Zitat von mkinzler
dabei handelt es sich nicht um einen normalen Record, sondern um einen Union. Je nach Wert einer Variable (hier Kind) sind andere Teile der Datenstruktur sichtbar.

Hmmjein. 'Union' heißen die Dinger in C, bei Pascal sind das 'variant records'. Kommt aber aufs gleiche raus :zwinker:

Hansa 1. Nov 2006 19:41

Re: Erklärung von record (Delphihilfe unverständlich :))
 
Empfehlung von mir : Finger weg von dem Kram. Zumindest solange, wie Du denkst ein Record sei eine Funktion. :zwinker:

Zitat:

Zitat von mkinzler
sondern um einen Union

Da hat er sich vertan. Das ist ein Variant-Typ. Es gibt vielleicht einige Ausnahmefälle, wo der gebraucht wird. Im Normalfall aber nicht. Hatte auch mal getestet, was das überhaupt soll und danach nie mehr gebraucht.

[Edit] mir fällt gerade noch ein : der Variant braucht pro Einheit immer soviel Platz, wie das größte Element. Krasses Beispiel : der Variant besteht nur aus einem integer oder alternativ einem TImage von 5 MB. Der integer würde dann 5 MB belegen !! :cyclops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz