Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   IDE Problem mit Recorddefinition (Delphi.NET) (https://www.delphipraxis.net/70690-ide-problem-mit-recorddefinition-delphi-net.html)

Heffalump 2. Jun 2006 21:04


IDE Problem mit Recorddefinition (Delphi.NET)
 
Hallo,

also ich versuche folgendes, was vom Prizip auch funktioniert (lässt sich ohne Fehler kompilieren):
Delphi-Quellcode:
unit Beispiel;

interface

type
  Record1 = record;
  Record2 = record;

  Record1 = record

  end;

  Record2 = record

  end;

implementation

end.
Nun das was stört. Sobald ich irgendwo (nach der Definition) die Entertaste betätige, wird ein zusätzliches end; eingefügt. Beispiel:
Delphi-Quellcode:
unit Beispiel;

interface

type
  Record1 = record;
  Record2 = record;

  Record1 = record

  end;

  Record2 = record

  end;

implementation
  end;

end.
Wie kann man das Abstellen?

Sobald ich jetzt noch Querverweise einfügen und kompiliere verabschiedet sich meine IDE ohne Fehlermeldungen. Beispiel:
Delphi-Quellcode:
unit Beispiel;

interface

type
  Record1 = record;
  Record2 = record;

  Record1 = record
    Rec2: Record2;
  end;

  Record2 = record
    Rec1: Record1;
  end;

implementation
  end;

end.
Bei der Definition von Klassen gibt es keine derartigen Probleme.

SirThornberry 2. Jun 2006 21:08

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
hast du schonmal einen Typ davon angelegt? Ich bezweifel dass, das dann richtig funktioniert. Denn laut der Definition ist es was endloses (In Record1.Record2.Record1.Record2.Record1.Record2... .....)
Also eigentlich supi das die IDE da rum spinnt.

Heffalump 2. Jun 2006 21:42

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
Zitat:

Zitat von SirThornberry
hast du schonmal einen Typ davon angelegt? Ich bezweifel dass, das dann richtig funktioniert. Denn laut der Definition ist es was endloses (In Record1.Record2.Record1.Record2.Record1.Record2... .....)
Also eigentlich supi das die IDE da rum spinnt.

Bei Klassen spinnt die IDE nicht rum, bei genau der gleichen Vorgehensweise.

Heffalump 2. Jun 2006 21:53

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
Und für den Fall, das es nicht möglich ist einen entsprechenden Querverweis zu verwenden, warum wird das dann nicht als Fehler durch die IDE dargestellt? Ein sang- und klanloser Abschied ist nicht gerade die feine Art auf Fehler aufmerksam zu machen.

SirThornberry 2. Jun 2006 22:01

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
bei klassen klappt das weil eine Klasseninstanz nur ein Pointer auf daten ist. Und solange die Klasse nicht erzeugt wird wird auch die Unterklasse nicht erzeugt.

mkinzler 2. Jun 2006 22:11

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
Du konntest die Crossreferenz durch Zeiger realisieren.

Delphi-Quellcode:
type
  pRec1 = ^Record1;
  Record1 = record;
  pRec2 = ^Record2;
  Record2 = record;

  Record1 = record
    Rec2: pRec2;
  end;

  Record2 = record
    Rec1: pRec1;
  end;

SirThornberry 2. Jun 2006 22:36

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
gibts diese Pointer denn überhaupt unter .NET?

Dax 2. Jun 2006 22:38

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
Ja, es gibt sie. Und Delphi erlaubt sie glaub ich auch einfach so :gruebel: Dabei ist es unsafe-Code und sollte damit nicht verwendet werden :warn:

mkinzler 2. Jun 2006 22:40

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
Zitat:

gibts diese Pointer denn überhaupt unter .NET?
Oh hatte ich überlesen.
In diesem Fall sollte er Klassen verwenden.

Ist die Frage dann nicht im falschen Bereich?

SirThornberry 2. Jun 2006 22:41

Re: IDE Problem mit Recorddefinition (Delphi.NET)
 
[OT]Die Frage ist im richtigen Bereich weil es hier darum geht das die IDE fehlerhafter weise ein "end" setzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 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