![]() |
[Fehler] (122): Objekt oder Klassentyp erforderlich
hi,
solangsam versteh ich die welt nichtmehr. Ich bekomme diesen fehler nicht weg. Ich versteh ja was er mir sagen will, aber nicht warum^^:
Delphi-Quellcode:
und in der letzten Zeile zeigt er mir den fehler an.
unit mSystem;
interface uses mRegal, mProdukttyp, Messages, Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,mProduktlistenGlied,mNamenliste ,mListe ; type TSystem = class(TObject) private Regalliste : TListe; Typenliste : TListe; public Procedure Oncreate; function gib_RegalNamen:TNamenliste; end; implementation Procedure TSystem.Oncreate; Begin Regalliste := tliste.create('',nil); Typenliste := tliste.create('',nil); end; function TSystem.gib_RegalNamen:TNamenliste; Var Namenliste : TNamenListe; i : Integer; Regal: tregal; Regalname: String; Begin Namenliste:= tNamenListe.create(''); //Fehler! Regal := Regalliste.findeObjekt('') as TRegal; Regal := Regalliste.liefereNachfolger(Regal) as TRegal; while Regal <> nil Do Begin RegalName := IntToStr(Regal.GibRegal_NR); Namenliste.fuege_ein(RegalName); fuegeEin(RegalName); Regal := Regalliste.liefereNachfolger(Regal) as TRegal; end; result := Namenliste; end; hier mal die unit mNamenliste:
Delphi-Quellcode:
als vergleich mal die unit mListe. bei der Prozedur OnCreate in mSystem mache ich ja exakt dasselbe mit Regallliste und Typenliste, der einzige unterschied ist das sie nicht vom Typen TNamenliste sondern vom Typen TListe sind. Und da läuft es wunderbar!
unit mNamenListe;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TNamenListe = class (TList) private //Attribute Schluessel:String; Nachfolger:TNamenListe; public //Methoden procedure fuegeEin(pSchluessel:String); function findeListenGlied(pSchluessel:String):TObject; function entferneListenGlied(pSchluessel:String):boolean; function liefereNachfolger(pSchluessel:String):TObject; Constructor create(pSchluessel:String); end; implementation Constructor TNamenListe.create (pSchluessel:String); Begin Schluessel := pSchluessel; Nachfolger := nil; end;
Delphi-Quellcode:
also die fehlermeldung möchte mir ja weißmachen das es sich beim methodenaufruf kein objekt oder klassentyp vorher angegeben haben, aber mit tNamenliste hab ich das auch eigentlich gemacht, die unit mSystem kennt auch die unit mNamenliste und der Constructore wurde so aufgerufen wie er deklariert(?) wurde. sieht jemand vllt. den fehler? :(unit mListe; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TListe = class (TList) private //Attribute Schluessel:String; Nachfolger:TListe; Objekt : TObject; public //Methoden procedure fuegeEin(pObjekt:TObject;pSchluessel:String); function findeObjekt(pSchluessel:String):TObject; function entferneObjekt(pSchluessel:String):boolean; function liefereNachfolger(pObjekt:TObject):TObject; Constructor create (pSchluessel:String;pObjekt:TObject); end; implementation Constructor TListe.create (pSchluessel:String;pObjekt:TObject); Begin Schluessel := pSchluessel; Objekt := pObjekt; Nachfolger := nil; end; lg Pin |
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
Hallo,
Delphi-Quellcode:
Constructor TNamenListe.create (pSchluessel:String);
Begin inherited Create; // Das fehlt bei Dir Schluessel := pSchluessel; Nachfolger := nil; end; |
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
habs ausprobiert aber er zeigt leider immernoch den selben fehler an :(
|
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
Versuch mal deinen Konstruktor mir reintroduce zu überschreiben.
Gruss Thorsten |
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
hm,
entschuldige wenn ich jetzt so doof frage aber in meinen 1,5 jahren schulinformatik kam das bisher noch nicht vor^^. wie funktioniert das? einfach
Delphi-Quellcode:
? oder mach ich es mir da zu einfach?*gg*
Constructor create(pSchluessel:String); reintroduce;
|
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
Ja, so meinste ich das. Aber vergiss es wieder. Ich bekomme keinen Fehler das geht auch ohne wunderbar. Kannst du nicht nochmal genau schreiben was und wo da wie etwas falsch läuft? Ich verstehe dein Problem leider nicht wirklich, sorry.
|
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
Hallo Pin,
hast du in der Unit mListe den Bezeichner tNamenListe ebenfalls zur Definition verwendet, beispielsweise für einen Typ, der keine Klasse darstellt? Die Quelltexte in deinem ersten Beitrag sehen ziemlich "zerpflückt" aus. Ich vermute, du hast sie für das Einstellen hier im Forum abgespeckt und dabei möglicherweise die Fehlerursache mit entfernt. In diesem Fall haben wir keine Chance, den Fehler zu finden. Gruß Hawkeye |
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
hi,
also das ich das programm abgespeckt habe stimmt soweit, wollte nicht unnötig verwirren^^. mListe und mNamenliste haben eigentlich soweit nichts miteinander zu tun, also in keinem von beiden wird die andere klasse zur definition herangezogen. Aber beide klassen sehen sich ziemlich ähnlich, sie haben die selben Methoden nur unter teilweise anderem namen bzw. andere Parameterliste. @omata: also der compiler zeigt mir ein fehler in dieser funktion:
Delphi-Quellcode:
Fehlermeldung: [Fehler] mSystem.pas(122): Objekt oder Klassentyp erforderlich
function TSystem.gib_RegalNamen:TNamenliste;
Var Namenliste : TNamenListe; Begin Namenliste:= tNamenListe.create('Schluessel'); //genau hier! also so wie ich das verstehe scheint er tNamenliste nicht als Klassentyp zu identifizieren. und genau hier liegt der hund begraben, ich kann mir einfach nicht erklären wieso der fehler auftritt. ich schau das ich den ersten beitrag nochmal editiere und mehr vom programmcode reinpacke. lg Pin |
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
Nenne mal deine Unit um.
|
Re: [Fehler] (122): Objekt oder Klassentyp erforderlich
1. Post ist editiert!
welche unit soll ich umbennen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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 by Thomas Breitkreuz