Autor |
Beitrag |
marvin190
Beiträge: 55
Win XP, SuSe Linux 10.1
Delphi 3/5/2005 Personal; C++ Builder 6
|
Verfasst: Sa 02.05.15 19:21
Hallo zusammen,
ich bekomme vom Compiler einen E2007 Konstante oder Typenbezeichner erwartet Fehler. Leider kann ich mir keinen Reim darauf machen wieso, da der Name dort durchaus ein Typenbezeichner ist und die Unit, die diesen beinhaltet, im Interface Teil bei Uses steht. Mein Code:
uMieterverwaltung:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| unit uMieterverwaltung;
interface
uses [viele Andere], uTypen;
type TFormMieterverwaltung = class(TForm) [...] private AktuellerMieter: Mietpartei; procedure UpdateTree; [...] public end;
var FormMieterverwaltung: TFormMieterverwaltung;
implementation
uses [...];
{$R *.dfm}
[...]
procedure TFormMieterverwaltung.UpdateTree; var [...] Häuserliste: Häuser; begin [...] end;
end. |
uTypen.pas
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| unit uTypen;
interface
type Haus = record [...] end;
Häuser = array of Haus;
Mietpartei = record [...] end;
[...]
implementation
end. |
Was mache ich falsch? Die uTypen in das Implementation-Uses verschieben geht nicht, weil eine Methode ebenfalls einen dort definierten Typ zurückgibt.
Danke für Eure Hilfe!
|
|
platzwart
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Sa 02.05.15 19:47
Anstatt dem "ä" bitte mal "ae" ausprobieren
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
marvin190
Beiträge: 55
Win XP, SuSe Linux 10.1
Delphi 3/5/2005 Personal; C++ Builder 6
|
Verfasst: So 03.05.15 08:56
Das hat leider keinen Effekt.
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 03.05.15 09:10
Kannst du vielleicht ein wenig mehr von dem Code posten?
Zumindest ein paar Zeilen vor und nach dem Fehler und die genaue Position, die nach dem Kompilieren als Fehler markiert wird, oder einen Screenshot von dem markierten Fehler.
|
|
marvin190
Beiträge: 55
Win XP, SuSe Linux 10.1
Delphi 3/5/2005 Personal; C++ Builder 6
|
Verfasst: So 03.05.15 09:44
Na klar, gar kein Problem, ich wollte es nur übersichtlich halten
Hier ist der Teil der uMieterverwaltung.pas, in der der Fehler auftritt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TFormMieterverwaltung.UpdateTree; var Haus: TPair<Integer, TTreeNode>; Wohneinheiten: TDictionary<Integer, TTreeNode>; Wohneinheit: TPair<Integer, TTreeNode>; Häuserliste: Häuser; Wohneinheitenliste: Wohneinheiten; Mieterliste: Mietparteien; i:Integer; begin Tree.Items.Clear; [...] |
Derselbe Fehler tritt übrigens auch eine Zeile später mit dem Typ "Wohneinheiten" auf.
Und hier die beiden Records, um die es geht, aus der uTypen.pas:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| [...] Haus = record Haus_ID: Integer; Name: String; AnschriftZeile1: String; AnschriftZeile2: String; end;
Häuser = array of Haus;
Wohneinheit = record Wohneinheit_ID: Integer; Haus_ID: Integer; Bezeichnung: String; Wohnfläche: Integer; end;
Wohneinheiten = array of Wohneinheit; [...] |
|
|
icho2099
Beiträge: 101
Erhaltene Danke: 12
WIN XP, WIN 7, WIN 10
Delphi 6 Prof, Delphi 2005, FPC
|
Verfasst: So 03.05.15 09:57
Moin
Haus und Wohneinheit hast du erst als Type und dann nochmal als Variable,
Da fällt es dem Compiler schwer zu unterscheiden.
|
|
jaenicke
Beiträge: 19284
Erhaltene Danke: 1742
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 03.05.15 10:30
Deshalb ist es in Delphi auch schlechter Programmierstil Typen wie Klassen nicht mit T anfangen zu lassen. Sprich THaus, THäuser, ...
Dann passiert das auch nicht so leicht.
// EDIT:
Private Felder in Klassen sollten zum Beispiel mit F anfangen (für deine Records gilt das also nicht).
Für die Schreibweise von Delphi-Quelltext gibt es hier auch einen Styleguide, falls es dich interessiert:
edn.embarcadero.com/article/10280 (englisch)
www.delphi-treff.de/...t-pascal/styleguide/ (deutsch)
|
|
marvin190
Beiträge: 55
Win XP, SuSe Linux 10.1
Delphi 3/5/2005 Personal; C++ Builder 6
|
Verfasst: So 03.05.15 11:18
Ich bin ja vielleicht blind -.- Natürlich sollte ich die Bezeichnung nicht zweimal verwenden ...
Danke an alle
|
|