AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TObjekt List Problem

Ein Thema von maximus Caesar · begonnen am 6. Jan 2006 · letzter Beitrag vom 6. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#1

TObjekt List Problem

  Alt 6. Jan 2006, 14:02
Hallo!
Ich hab ne TObjektList vom Namen Daten.Haus
Haus 1 ist vom Typ THaus
ich füge jetzt Daten.Haus ein Objekt vom Typ Haus1 hinzu, und gebe Werte an:


Delphi-Quellcode:
      b1:=Daten.Haus.Add(Haus1);
      THaus(Daten.Haus.Items[b1]).xpos:=i2;
      THaus(Daten.Haus.Items[b1]).ypos:=i;
      THaus(Daten.Haus.Items[b1]).Typ:=Typ;
      THaus(Daten.Haus.Items[b1]).Besitzer:=Besitzer+1;
auslesen tue ich diese z.B. so:

b1:=THaus(Daten.Haus.Items[x]).ypos; auf diese Art speichere ich mehrere Objekte vom Typ Haus1 in der TObjektList Daten.Haus
jedes dieser Objekte hat Unterschiedliche Werte, und bei xpos und ypos kommt keine kombination doppelt vor.
Lese ich diese Werte jetzt von verschiedenen Objekten aus, so sind alle Werte immer die Gleichen.
Wo liegt mein Fehler?
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#2

Re: TObjekt List Problem

  Alt 6. Jan 2006, 14:05
musst du haus1 nicht erst create'n?
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: TObjekt List Problem

  Alt 6. Jan 2006, 14:05
Wird schon beim starten des Programms gemacht
Allerdings in Unit1,
Und das erstellen is in der Unit Skript, das auslesen in der Unit speichern.
Könnte es daran liegen?
Auch is Daten.Haus in Unit1.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#4

Re: TObjekt List Problem

  Alt 6. Jan 2006, 14:19
Du machst immer b1:=Daten.Haus.Add(Haus1); ? ohne Haus1 neu zuerstellen? Dann kann das nicht klappen, da du ja nur die Objekt-Referenz der Liste hinzufügt. Das heißt du hast dann eine Liste mit zeigern, die auf das gleiche Objekt zeigen.

Besser wäre es so:

b1:=Daten.Haus.Add(THaus.Create)
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TObjekt List Problem

  Alt 6. Jan 2006, 14:23
Funktioniert!
Danke!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: TObjekt List Problem

  Alt 6. Jan 2006, 15:02
Und noch ein Tipp:

Dein Original Code:
Delphi-Quellcode:
b1:=Daten.Haus.Add(Haus1);
THaus(Daten.Haus.Items[b1]).xpos:=i2;
THaus(Daten.Haus.Items[b1]).ypos:=i;
THaus(Daten.Haus.Items[b1]).Typ:=Typ;
THaus(Daten.Haus.Items[b1]).Besitzer:=Besitzer+1;
Aber da Haus1 und auch Daten.Haus.Items[b1] genau die gleich Instanz beinhalten, kannst du natürlich das ganze einfacher gestalten, wenn du es so machst:

Delphi-Quellcode:
Daten.Haus.Add(Haus1);
Haus1.xpos:=i2;
Haus1.ypos:=i;
Haus1.Typ:=Typ;
Haus1.Besitzer:=Besitzer+1;
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: TObjekt List Problem

  Alt 6. Jan 2006, 15:29
Jetzt nimmer!
Ich brauch den Code von jim_raynor....
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: TObjekt List Problem

  Alt 6. Jan 2006, 17:54
Zitat von maximus Caesar:
Jetzt nimmer!
Ich brauch den Code von jim_raynor....
Dann hast du OOP noch nicht verstanden:

Delphi-Quellcode:
Haus1 := THaus.Create; // das war der einzige Unterschied zu jim_raynor's code...
Daten.Haus.Add(Haus1); // kann hier oder am Ende der Zuweisungen stehen - ist egal, Erklärung: siehe zuvor...
Haus1.xpos:=i2;
Haus1.ypos:=i;
Haus1.Typ:=Typ;
Haus1.Besitzer:=Besitzer+1;
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: TObjekt List Problem

  Alt 6. Jan 2006, 18:27
Das is mir schon klar!
Nur brauch ich des net, da ich kein Haus1 mehr verwende!
Das war nur für Daten.Haus.Add(Haus1); gedacht!
Ansonsten hat es in meinem Programm keine Bedeutung.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: TObjekt List Problem

  Alt 6. Jan 2006, 20:02
Der Code von Muetze1 ist aber erstens übersichtlicher und zweitens schneller. Ob Du Haus1 hinterher noch benötigst ist irrelevant. Das weiss der Compiler schon. Es ist keine Schande, eine Variable zu verwenden, im Gegenteil: Es herhöht die Übersichtlichkeit.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:38 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