AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

wo deklariert man ein Record?

Ein Thema von dassi87 · begonnen am 6. Jan 2007 · letzter Beitrag vom 9. Jan 2007
Antwort Antwort
dassi87

Registriert seit: 5. Jan 2007
Ort: Hanau
7 Beiträge
 
Delphi 8 Architect
 
#1

wo deklariert man ein Record?

  Alt 6. Jan 2007, 15:57
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
Stefanie
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: wo deklariert man ein Record?

  Alt 6. Jan 2007, 15:58
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:
type
  TAdresse = record
    Strasse: string;
    Nummer: Byte;
  end;

var
  Name: record
    Vorname, Namchname: string;
  end;
  Privat: TAdresse;
Das sind beides gleichwertige Records, nur unterschiedlich deklariert.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: wo deklariert man ein Record?

  Alt 6. Jan 2007, 16:02
Hallo,
Zitat von faux:
Ein Record ist (grob gesagt) eine Variable, die mehrere Variablen enthalten kann. Also wird sie in der var Sektion deklariert.
Falsch. Ein Record ist (grob gesagt) ein Typ, der aus mehreren Vaiablen zusammengesetzt ist. Er wird also mit type definiert und mit var deklariert.
Delphi erlaubt zwar das Definieren und Deklarieren in einer Anweisung, aber so deklarierte Records sind nicht zuweisungskompatibel.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
dassi87

Registriert seit: 5. Jan 2007
Ort: Hanau
7 Beiträge
 
Delphi 8 Architect
 
#4

Re: wo deklariert man ein Record?

  Alt 6. Jan 2007, 16:07
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
Stefanie
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: wo deklariert man ein Record?

  Alt 6. Jan 2007, 18:47
Du hast die Antworten nicht richtig gelesen, es muß:
Delphi-Quellcode:
type
    TFahrzeuginstanz : record
        Instanz: TFahrzeug;
        empty: boolean;
    end;
var
    Mautsystem: TMautsystem;
heißen.
Markus Kinzler
  Mit Zitat antworten Zitat
dassi87

Registriert seit: 5. Jan 2007
Ort: Hanau
7 Beiträge
 
Delphi 8 Architect
 
#6

Re: wo deklariert man ein Record?

  Alt 7. Jan 2007, 15:01
ok danke
Stefanie
  Mit Zitat antworten Zitat
McLing

Registriert seit: 6. Jan 2007
6 Beiträge
 
Delphi 7 Professional
 
#7

Re: wo deklariert man ein Record?

  Alt 9. Jan 2007, 13:45
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
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: wo deklariert man ein Record?

  Alt 9. Jan 2007, 14:37
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
  Mit Zitat antworten Zitat
9. Jan 2007, 18:58
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Hier gehts auch um Delphi
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.
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