AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf Variable in type in type

Ein Thema von Niklas- · begonnen am 24. Dez 2007 · letzter Beitrag vom 24. Dez 2007
Antwort Antwort
Niklas-

Registriert seit: 24. Dez 2007
11 Beiträge
 
#1

Zugriff auf Variable in type in type

  Alt 24. Dez 2007, 13:14
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:
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;
Wenn ich das ganze dann erstelle und zuordne:

Delphi-Quellcode:
  
  Keller := Traum.Create;
  Keller.Name := ('Keller');
  Keller.Objekte[1] := Futter;
[....]
  Futter := TInventar.create;
  Futter.Name := 'riesen Haufen Futter';
müsste ich ja eigentlich mit
  label2.caption := Keller.Objekte[1].Name; den Namen des Objekts (riesen Haufen Futter)ausgeben können dachte ich..

Nur Leider mag Delphi das nicht:
Zitat:
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00453B49 in Modul 'Project1.exe'. Lesen von Adresse 00000004'. Prozess wurde angehalten. Mit Einselne Anweisung oder Start fortsetzen
Und er markiert mir diese Zeile:
  label2.caption := Keller.Objekte[1].Name; Hat da jemand eine Idee???

Danke!

Edit1: Variablen deklaration eingefügt
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Zugriff auf Variable in type in type

  Alt 24. Dez 2007, 13:20
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Niklas-

Registriert seit: 24. Dez 2007
11 Beiträge
 
#3

Re: Zugriff auf Variable in type in type

  Alt 24. Dez 2007, 13:26
Meinst du das hier:
Delphi-Quellcode:
var
  Form1 : TForm1;
  Keller : TRaum;
  Futter : TInventar;
Das habe ich im Quellcode stehen, hatte ich nur vergessen mit zu posten, habs jetzt reineditiert
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Zugriff auf Variable in type in type

  Alt 24. Dez 2007, 13:30
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
42
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Zugriff auf Variable in type in type

  Alt 24. Dez 2007, 13:30
Nein, ich meine die Zuweisung. Erst Futter erstellen und initialisieren (Futter:=TInventar.Create etc.) und dann zuweisen!
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Zugriff auf Variable in type in type

  Alt 24. Dez 2007, 13:32
so:

Delphi-Quellcode:
Keller := Traum.Create;
  Keller.Name := ('Keller');
  Futter := TInventar.create;
  Futter.Name := 'riesen Haufen Futter';
  Keller.Objekte[1] := Futter;
[....]
Gruß
42
  Mit Zitat antworten Zitat
Niklas-

Registriert seit: 24. Dez 2007
11 Beiträge
 
#7

Re: Zugriff auf Variable in type in type

  Alt 24. Dez 2007, 13:46
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...
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:16 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