AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi [Fehler] (122): Objekt oder Klassentyp erforderlich
Thema durchsuchen
Ansicht
Themen-Optionen

[Fehler] (122): Objekt oder Klassentyp erforderlich

Ein Thema von PinKing · begonnen am 10. Feb 2007 · letzter Beitrag vom 10. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
PinKing

Registriert seit: 21. Nov 2006
20 Beiträge
 
#1

[Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 18:34
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:
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;
und in der letzten Zeile zeigt er mir den fehler an.


hier mal die unit mNamenliste:

Delphi-Quellcode:
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;
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!

Delphi-Quellcode:
 
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;
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?

lg
Pin
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 18:36
Hallo,
Delphi-Quellcode:
Constructor TNamenListe.create (pSchluessel:String);
Begin
    inherited Create; // Das fehlt bei Dir
    Schluessel := pSchluessel;
    Nachfolger := nil;
end;
I come from outer space to save the human race
  Mit Zitat antworten Zitat
PinKing

Registriert seit: 21. Nov 2006
20 Beiträge
 
#3

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 18:45
habs ausprobiert aber er zeigt leider immernoch den selben fehler an
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 18:53
Versuch mal deinen Konstruktor mir reintroduce zu überschreiben.

Gruss
Thorsten
  Mit Zitat antworten Zitat
PinKing

Registriert seit: 21. Nov 2006
20 Beiträge
 
#5

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 18:56
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

Constructor create(pSchluessel:String); reintroduce; ? oder mach ich es mir da zu einfach?*gg*
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 19:03
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.
  Mit Zitat antworten Zitat
Hawkeye219

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

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 19:09
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
  Mit Zitat antworten Zitat
PinKing

Registriert seit: 21. Nov 2006
20 Beiträge
 
#8

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 19:17
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:
function TSystem.gib_RegalNamen:TNamenliste;
Var
    Namenliste : TNamenListe;
Begin
    Namenliste:= tNamenListe.create('Schluessel'); //genau hier!
Fehlermeldung: [Fehler] mSystem.pas(122): Objekt oder Klassentyp erforderlich

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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 19:21
Nenne mal deine Unit um.
Markus Kinzler
  Mit Zitat antworten Zitat
PinKing

Registriert seit: 21. Nov 2006
20 Beiträge
 
#10

Re: [Fehler] (122): Objekt oder Klassentyp erforderlich

  Alt 10. Feb 2007, 19:32
1. Post ist editiert!

welche unit soll ich umbennen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:42 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