![]() |
wo deklariert man ein Record?
Hi,
mal ne vielleicht dumme Frage, aber wo deklariert man ein Record? Ich dachte wenn ichs unter type anlege kann nix schief gehen, in meinem Buch wird es aber erst im implementation-Teil als Variable eingeführt. Ist eins davon "richtiger" oder gibts da überhaupt einen Unterschied? denn mein Programm zeigt wegen der Deklaration einen Internal Error an. Danke Gruß Dassi |
Re: wo deklariert man ein Record?
Hallo!
Ein Record ist (grob gesagt) eine Variable, die mehrere Variablen enthalten kann. Also wird sie in der var Sektion deklariert. Du kannst natürlich auch zuerst einen Typ anlegen, der ein Record "ist" und dann eine Variable von diesem daklarieren.
Delphi-Quellcode:
Das sind beides gleichwertige Records, nur unterschiedlich deklariert.
type
TAdresse = record Strasse: string; Nummer: Byte; end; var Name: record Vorname, Namchname: string; end; Privat: TAdresse; Grüße Faux |
Re: wo deklariert man ein Record?
Hallo,
Zitat:
Delphi erlaubt zwar das Definieren und Deklarieren in einer Anweisung, aber so deklarierte Records sind nicht zuweisungskompatibel. Gruß xaromz |
Re: wo deklariert man ein Record?
Also soweit hab ich das zwar verstanden, alos schon mal danke, aber wie genau setzte ich das jetzt um?
wenn ich: var Mautsystem: TMautsystem; TFahrzeuginstanz : record Instanz: TFahrzeug; empty: boolean; end; schreibe, dann erkennt er die Eigenschaften Instanz und Empty nicht an im Verlauf des Programmes, wenn ich aber vorher TFahrzeuginstanz als type festlege und dann deklariere dann sagt er identifier redeclared. was mach ich da falsch? ist sicher bloß ein dummer denkfehler |
Re: wo deklariert man ein Record?
Du hast die Antworten nicht richtig gelesen, es muß:
Delphi-Quellcode:
heißen.
type
TFahrzeuginstanz : record Instanz: TFahrzeug; empty: boolean; end; var Mautsystem: TMautsystem; |
Re: wo deklariert man ein Record?
ok danke
|
Re: wo deklariert man ein Record?
Der ganze Huddl entsteht nur dadurch, dass nicht sauber auseinandergehalten wird, was es bedeutet, wenn man einen Typ bzw. eine Variable deklariert. Die obige Unterscheidung zwischen "Definition" und "Deklaration" finde ich in diesem Zusammenhang auch nicht besonders hilfreich, weil beide Vorgänge letztendlich eben doch "Definitionen" sind. Nur sind eben die "definierten Dinge" von völlig unterschiedlicher Art: wichtiger scheint mir daher die Unterscheidung zwischen "Typ" und "Variable", oder allgemeiner "Klasse" und "Instanz".
Und um die Verwirrung komplett zu machen, gestattet Delphi auch noch, dass man beide Vorgänge in einem Aufwasch erledigt - wovon ich nur abraten kann! Für die Praxis sollte man vor jeder Vereinbarung einer strukturierten Variablen ihren Typ deklariert haben. Das ist vielleicht ein bisschen dogmatisch, vergrößert aber auf die Dauer die Chance, dass man versteht, was man tut. Gruss |
Re: wo deklariert man ein Record?
Vielleicht ein wenig offtopic, aber wenn man in einem grösseren Projekt z.B. auf mehreren Forms diese Records, Klassen, Sets, wasauchimmer braucht bietet es sich sogar an, das in eine Extra Unit zu verschieben um zirkulare Referenzen zu vermeiden
|
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Hier gehts auch um Delphi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz