![]() |
Werte an Objekt übergeben
Hallo erst mal an alle,
ich möchte Werte an ein selbst erstelltes Objekt über eine Procedure übergeben. eigene Klasse:
Delphi-Quellcode:
aufrufen der Procedure:
type
TRoom = class Description: String; Norden, Osten, Sueden, Westen: TRoom; procedure SetAusgaenge (norden, osten, sueden, westen: TRoom); end;
Delphi-Quellcode:
Procedure:
procedure TForm1.CreateComputerRoom;
begin Computerraum:= TRoom.Create; Computerraum.Description:= ('Du stehst im Computerraum!'); Computerraum.SetAusgaenge(Kueche, nil, nil, nil); end;
Delphi-Quellcode:
Das Problem ist folgendes, dass in diesem Fall Computerraum.Norden = nil ist obwohl er eigendlich = Kueche sein sollte. Habe schon mal gestern eine Stunde versucht, einen Fehler zu finden und heute einfach nochmal den Quelltext neu getippt, aber ohne Erfolg.
procedure TRoom.SetAusgaenge(norden, osten, sueden, westen: TRoom);
begin self.Norden:= norden; self.Osten:= osten; self.Sueden:= sueden; self.Westen:= westen; end; Kann jemand einen Fehler von mir erkennen? Vielen Dank schon mal, Martin.Ghosts |
Re: Werte an Objekt übergeben
Ist denn vielleicht Kueche = nil? ;)
|
Re: Werte an Objekt übergeben
:?: Inwiefern kann Kueche = nil sein? Kueche ist doch nur der Name eines gleichen Objektes mit den Attributen Norden, Osten, Sueden, Westen, die als Zeiger funktionieren. Meiner Meinug nach können nur diese = nil sein.(?)
Delphi-Quellcode:
procedure TForm1.CreateKitchen;
begin Kueche:= TRoom.Create; Kueche.Description:= ('Du stehst in der Küche!'); Kueche.SetAusgaenge(nil, nil, Kueche, nil); end; procedure TForm1.CreateTeacherRoom; begin Lehrerzimmer:= TRoom.Create; Lehrerzimmer.Description:= ('Du stehst im Lehrerzimmer!'); Lehrerzimmer.SetAusgaenge(Lehrerzimmer, nil, Computerraum, nil); end; |
Re: Werte an Objekt übergeben
Wenn du CreateComputerRoom vor CreateKitchen aufrufst, dann ist Kueche undefiniert und zeigt auf eine ungültige Speicherstelle.
|
Re: Werte an Objekt übergeben
Zitat:
Du gibst bei dem Aufruf nur die in der Variable enthaltenen Instanz weiter. Wenn du keine Instanz erzeugst und der Variablen zuweist, dann ist diese uninitialisiert. Abhängig von ihrem Deklarationsort enthält sie Nil oder einen zufälligen Wert. |
Re: Werte an Objekt übergeben
So, Fehler gefunden. Ich hatte Kueche, Lehrerzimmer noch nicht erzeugt(wie 3_of_8 sagte). Ein absolut beknackter Fehler, aber ich glaube, ich hätte noch lange nach ihm gesucht. Tja, aus Fehlern lehrnt man ja bekanntlich :wink:
Nochmal vielen Dank. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 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-2025 by Thomas Breitkreuz