AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Fehler: TYP noch nicht vollständig deklariert
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler: TYP noch nicht vollständig deklariert

Ein Thema von Zacherl · begonnen am 25. Feb 2007 · letzter Beitrag vom 26. Feb 2007
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Fehler: TYP noch nicht vollständig deklariert

  Alt 25. Feb 2007, 18:32
Hi,

ich habe versucht folgenden Typ zu deklarieren:

Delphi-Quellcode:
type
  TCatData = record
    Caption: string;
    ImageIndex: integer;
    SubCats: array of TCatData; <-- Fehler: TCatData wurde noch nicht vollständig deklariert
  end;
Nun bekomme ich den Fehler: "TCatData wurde noch nicht vollständig deklariert". Mir ist grade entfallen, wie ich Typen vordefinieren kann.

Helft mir auf die Sprünge bitte
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Fehler: TYP noch nicht vollständig deklariert

  Alt 25. Feb 2007, 18:36
Das geht gar nicht. Der Compiler will herausbekommen wie gross das record ist und das ist bei so einer rekursiven Deklaration unmoeglich.
Es geht das du Zeiger auf das record benutzen kannst. Diese kann man vor der record Deklaration im gleichen type Bereich deklarieren.
Es ginge wenn der Compiler ein Mehrpass-compiler waere, aber ein Pascal-Compiler ist nun mal traditionell ein Einpass-Compiler.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#3

Re: Fehler: TYP noch nicht vollständig deklariert

  Alt 25. Feb 2007, 18:36
Äh... geht das überhaupt? Ich meine, Subdata ist vom Typ TCatData. Und Subdata ist in TCatData deklariert.

//Edit: Rekursiv... Das Wort hatte ich gesucht. Na ja, Robert war schneller...
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Fehler: TYP noch nicht vollständig deklariert

  Alt 25. Feb 2007, 18:42
Okey, vielen Dank:

Delphi-Quellcode:
type
  PCatData = ^TCatData;
  TCatData = record
    Caption: string;
    ImageIndex: integer;
    SubCats: array of PCatData;
  end;
so geht es ..

//Edit: Und ja, es soll sogar rekursiv sein, weil ich eine rekursive Funktion mit den Datensätzen füttere
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Fehler: TYP noch nicht vollständig deklariert

  Alt 25. Feb 2007, 19:28
Hallo,

mit forward geht es auch
Delphi-Quellcode:
type
  TCatData = record; forward;

  TCatData = record
    Caption: string;
    ImageIndex: integer;
    SubCats: array of TCatData;
  end;

Heiko
Heiko
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Fehler: TYP noch nicht vollständig deklariert

  Alt 25. Feb 2007, 20:00
Zitat von hoika:
mit forward geht es auch
Heiko, mit welcher Delphi-Version hast du es getestet?

Gruß Hawkeye
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Fehler: TYP noch nicht vollständig deklariert

  Alt 26. Feb 2007, 07:21
Hallo,

war aber nur so getippert *zugeb*

Bei Klassen würde das gehen, bei Records wohl nicth.
Wieder ein Grund, gleich Klassen zu benutzen ...

Delphi-Quellcode:
type
  TCatData = class;

  TCatData = class
    Caption: string;
    ImageIndex: integer;
    SubCats: array of TCatData;
  end;
Aber in diesem Fall würde ich eh TList (oder einen Abkömmling)
anstatt des arrays benutzen,
auch wenn Pointer das vereinfachen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Fehler: TYP noch nicht vollständig deklariert

  Alt 26. Feb 2007, 07:25
Danach suchte ich .. habe dann aber auch gemerkt, dass es nur mit Objecten geht. Der ganze Record hat nur den Sinn intern eine Struktur darzustellen, welche dann später auf einen VirtualStringTree übertragen wird.
Da lohnte es sich nicht extra mit Objecten zu arbeiten.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
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 08:32 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