Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Type Record (https://www.delphipraxis.net/92574-type-record.html)

Stillmatic 22. Mai 2007 14:35


Type Record
 
Hi DP'ler

Ich hab mal eine Frage bezüglich der deklaration von Records....

Ich möchte einen record Medium erstellen, das hab ich soweit....

type
Medium = record
ID : word;
Name : String[50];
Typ : (CD,DVD);
Kategorie : (Film,Musik,Software,SonstigeDaten)

Nun soll aber Kategorie auch noch einzelne Unterpunkte für Film,Musik, Software und SonstigeDaten haben!!
zB. Film
-Format
-FilmKategorie

Musik
-Format
-MusikKategorie

Wie mache ich das????

Apollonius 22. Mai 2007 14:37

Re: Type Record
 
Schau doch einfach mal bei dieser Website rein, Stichwort variante records.

Übrigens gibt es hier delphitags.

Tormentor32 22. Mai 2007 14:41

Re: Type Record
 
Wären da Klassen nicht viel besser geeignet?

Delphi-Quellcode:
TMedium = class
FName: string
FID: integer;
end;
Und dann ableiten
Delphi-Quellcode:
TDVD = class(TMedium)
//...
end;
Delphi-Quellcode:
TCD = class(TMedium)
//...
end;

Apollonius 22. Mai 2007 14:43

Re: Type Record
 
Ja, ist möglicherweise besser, vor allem, wenn man das gnaze irgendwann mal erweitern möchte. Aber man kann sich auch mal auf die reinen Pascalfunktionen zurückbesinnen... :wink:

Die Muhkuh 22. Mai 2007 14:45

Re: Type Record
 
Oder Du schaust Dir mal eine Datenbank an. Damit dürfte das auch ganz prima funktionieren.

Stillmatic 22. Mai 2007 21:40

Re: Type Record
 
Kann mir einer von euch sagen warum ich bei diesem record(von dem ich ein Array erstellt habe) auf alle Felder zugreifen kann??

Also wenn ich als Kategorie Film ausgewählt habe also Kategorie := Film; auf die Eigenschaft Schlüssel die ja eigentlich nur für die Software wichtig ist zugreifen kann!!

Code:
MediumRecord = record
          ID : word;
         Name : String[50];
         Typ : (CD,DVD);
    Kategorie : TKategorie;
    case TKategorie of
     Film :(FilmFormat,FilmKategorie : String[50];Länge : Word ;);
     Musik:(MusikFormat,MusikKategorie : String[50];);
     Software:(Hersteller,Schlüssel : String[50]);
     SonstigeDaten:(Zusatz : String[70]);

Ist da was an der daklaration Falsch oder ist das normal so??
(arbeite das erste mal mit variante records)!!!

'THX'

Chewie 22. Mai 2007 22:10

Re: Type Record
 
Das ist normal so. Die ganzen Felder definieren nur Adressoffsets, Filmkategorie und Musikkategorie sind z.B. identisch. Es liegt an deiner Verantwortung, nur die Felder zu benutzen, die du gerade benutzen willst.

Stillmatic 22. Mai 2007 22:18

Re: Type Record
 
Okay,,thx!

Stillmatic 24. Mai 2007 10:32

Re: Type Record
 
Gibt es irgendeine Möglichkeit von einem Array (of variante records) den zur Zeit aktiven Index des Arrays herausufinden???
Also das Problem ist das ich nicht weiß, wie ich das aktuell aktive Element bekomme???
Ich habe zwar eine Ausgabe in der das aktive Element steht, aber ich darf das aktuelle Element nicht aus einer Anzeigekomponenete lesen!!


Z.B. Ich greife auf Arrayeintrag 4 von 8 zu!
Dann ist das aktive Element 4!!

*THX*

Apollonius 24. Mai 2007 15:20

Re: Type Record
 
Ich verstehe nicht ganz - was ist das "aktive Element"? Das, auf welches zuletzt zugegriffen wurde?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 Uhr.
Seite 1 von 2  1 2      

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