Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [OOP] Auf Objekt des Parents zugreifen (https://www.delphipraxis.net/110523-%5Boop%5D-auf-objekt-des-parents-zugreifen.html)

Zwoetzen 19. Mär 2008 11:45


[OOP] Auf Objekt des Parents zugreifen
 
Hi DP'ler

Ich stehe momentan vor einem Problem, wo ich nicht weiß, wie ich es am besten lösen könnte.

Folgende Situation:
Ich habe eine Klasse. Diese Klasse enthält unter anderem zwei Objekte anderer Klassen, nennen wir diese Pfeil und Textur.
Mein Problem ist nun, dass ich innerhalb vom Pfeil nun auf die Textur zugreifen will.


Also ungefähr so:
Delphi-Quellcode:
type TPfeil = class
  procedure doAnything;
end;
type TTextur = class
  procedure getSomething;
end;

type TOberesObjekt = class
  Textur: TTextur;
  Pfeil: TPfeil;
end;
In der Prozedur doAnything will ich nun eben auf die Prozedur Textur.getSomething zugreifen.

Die Frage ist nun: Wie mach ich das am besten?


Vielen Dank schonmal im Vorraus

MfG Zwoetzen

EDIT: Titel angepasst

3_of_8 19. Mär 2008 11:48

Re: [OOP] Auf Objekt des Vorfahres zugreifen
 
Gar nicht. So geht das nicht. Vor allem ist TOberesObjekt kein Vorfahr von irgendetwas. Du musst deine Klassen anders strukturieren, z.B. die Textur in den Pfeil verlegen oder im Konstruktor von Pfeil die Textur übergeben und sie in TPfeil speichern.

Die Muhkuh 19. Mär 2008 11:49

Re: [OOP] Auf Objekt des Vorfahres zugreifen
 
Gib dem Pfeil einen Parent mit:

Delphi-Quellcode:
type TPfeil = class
private
  FParent: TOberesObjekt;
public
  constructor Create(Parent: TOberesObjekt);
  procedure doAnything;
end;
type TTextur = class
  procedure getSomething;
end;

type TOberesObjekt = class
public
  constructor Create;

  Textur: TTextur;
  Pfeil: TPfeil;
end;

implementation

constructor TOberesObjekt.Create;
begin
  Pfeil := TPfeil.Create(Self);
  Textur := TTextur.Create;
end;

procedure TPfeil.doAnything;
begin
  FParent.Textur.getSomething;
end;

Zwoetzen 19. Mär 2008 11:58

Re: [OOP] Auf Objekt des Vorfahres zugreifen
 
@3of8:
ach verdammt, stimmt, Vorfahr war ja bei abgeleiteten Klassen.
*wie immer alles durcheinander bringt*
*hofft das Parent besser passt*

@Muhkuh:
Danke für den Ansatz, ich werde ihn mal versuchen umzusetzen, schaut aber schonmal vielversprechend aus. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 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