![]() |
Zugriff auf Variable in type in type
Ich, als Anfänger, versuche mich gerade an einem Textadventure. Dazu möchte ich die Eigenschaften von Gegenstädnen in einem type speichern, welcher wiederum in einem type eines Raumes auftaucht:
Delphi-Quellcode:
Wenn ich das ganze dann erstelle und zuordne:
type
TInventar = class Name : String; end; type TRaum = class Name : String; Objekte : Array[1..5] of TInventar; end; [....] var Form1 : TForm1; Keller : TRaum; Futter : TInventar;
Delphi-Quellcode:
müsste ich ja eigentlich mit Keller := Traum.Create; Keller.Name := ('Keller'); Keller.Objekte[1] := Futter; [....] Futter := TInventar.create; Futter.Name := 'riesen Haufen Futter';
Delphi-Quellcode:
den Namen des Objekts (riesen Haufen Futter)ausgeben können dachte ich..
label2.caption := Keller.Objekte[1].Name;
Nur Leider mag Delphi das nicht: Zitat:
Delphi-Quellcode:
Hat da jemand eine Idee???
label2.caption := Keller.Objekte[1].Name;
Danke! Edit1: Variablen deklaration eingefügt |
Re: Zugriff auf Variable in type in type
Zu dem Zeitpunkt, an dem du Keller.Objekte[1] zuweist, ist Futter noch nil. Du musst erst Futter erstellen und dann zuweisen.
Die Erzeugung und Zerstörung von Objekten wird übrigens gewöhnlich in Konstruktor und Destruktor des übergeordneten Objekts (d.h. TRaum) geregelt. |
Re: Zugriff auf Variable in type in type
Meinst du das hier:
Delphi-Quellcode:
Das habe ich im Quellcode stehen, hatte ich nur vergessen mit zu posten, habs jetzt reineditiert
var
Form1 : TForm1; Keller : TRaum; Futter : TInventar; |
Re: Zugriff auf Variable in type in type
Hi,
ich nehme lieber TObjectList als Arrays. Alle nötigen Zugriffe wie Abfrage der Anzahl (Count), Entfernen einzelner Objecte usw. sind schon mit den entsprechenden Methoden versehen. was deine Fehlermeldung betrifft, hat es Apollonius getroffen. Gruß oki |
Re: Zugriff auf Variable in type in type
Nein, ich meine die Zuweisung. Erst Futter erstellen und initialisieren (Futter:=TInventar.Create etc.) und dann zuweisen!
|
Re: Zugriff auf Variable in type in type
so:
Delphi-Quellcode:
Gruß
Keller := Traum.Create;
Keller.Name := ('Keller'); Futter := TInventar.create; Futter.Name := 'riesen Haufen Futter'; Keller.Objekte[1] := Futter; [....] |
Re: Zugriff auf Variable in type in type
Danke!
Daran lags, ich hab jetzt einfach alle Create aufrufe nach oben gesetzt, dann sollte das nicht nochmal vorkommen... Gibts irgendwo ein Tutorial wie man ein (Text-) Adventure vernünftigt und unkompliziert programmiert?? Denn ich mache im Moment einfach irgendwie und das ganze wird verdammt umfangreich und das geht doch bestimmt auch einfacher... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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