AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi OOP: Bidirektionale Beziehung zw. Klassen [erledigt]
Thema durchsuchen
Ansicht
Themen-Optionen

OOP: Bidirektionale Beziehung zw. Klassen [erledigt]

Ein Thema von Passi077 · begonnen am 16. Apr 2006 · letzter Beitrag vom 16. Apr 2006
 
Passi077

Registriert seit: 7. Okt 2004
23 Beiträge
 
#1

OOP: Bidirektionale Beziehung zw. Klassen [erledigt]

  Alt 16. Apr 2006, 16:20
Hi,

ich bin gerade dabei eine PartikelEngine zu programmieren. Das Ganze soll objektorientiert geschehen.

Dazu habe ich 2 Klassen erstellt: cParticleEffekt und cParticle:

Delphi-Quellcode:
type cParticle=class
   private
     thePosX, thePosY: real;

     procedure setVelocity(pVelocity: Velocity3f);
     procedure Kill();
end;

type cParticleEffekt=class
  private
    theMaxParticleCount: integer;
    theTime: real;

    particle: array of cParticle;

  public
    procedure Calculate(t: real);
    procedure addParticle(pIndex, pPreset: integer);

    constructor create(pMaxParticles: integer);

  end;
Nun muss ich zwischen diesen beiden Klassen eine bidirektionale Beziehung aufbauen, damit

a) die Klasse cParticleEffekt auf die einzelnen Partikel zugreifen kann und diese berechnen kann
b) die Klasse cParticle Zugriff auf Variablen der Klasse cParticleEffekt hat, welche sich global auf alle Partikel auswirken

Leider bin ich damit überfordert. Ich wollte die Klasse cParticle von der cParticleEffekt Klasse abhängig machen und habe das Ganze so modelliert:

Delphi-Quellcode:
type cParticle=class
   private
     thePosX, thePosY: real;
[b] ParticleEffekt: cParticleEffekt; [/b]

     procedure setVelocity(pVelocity: Velocity3f);
     procedure Kill();

[b] constructor create(pParticleEffekt: cParticleEffekt); [/b]
end;

type cParticleEffekt=class
  private
    theMaxParticleCount: integer;
    theTime: real;

  [b] particle: array of cParticle; [/b]

  public
    procedure Calculate(t: real);
    procedure addParticle(pIndex, pPreset: integer);

    constructor create(pMaxParticles: integer);

  end;
Jetzt kennt die Klasse cParticle aber natürlich den Datentyp cParticleEffekt noch nicht.. wenn ich das Ganze umdrehe im Code, dann kennt eben die Klasse cParticleEffekt den DAtentyp cParticle nicht, und das ist mein Problem.

Wie muss ich das korrekt modellieren, damit es realisierbar ist?

Oder: Wie erstelle ich die Signatur einer Klasse? Also sowas in der Art:

Delphi-Quellcode:
type cParticleEffekt=class
end;
Sozusagen eine leere Klasse. Leider kommt dann die Meldung bei der richtigen Klasse, dass der Bezeichner redefiniert wird..

Danke + Grüße
Passi
  Mit Zitat antworten Zitat
 


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 15:55 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