![]() |
AW: Zirkuläre Referenzen
Hallo,
@Uwe Raabe Noch eine (vorerst) letzte Frage: Da TPlayer im interface Teil ist, ist es aus anderen Klassen aufrufbar. Nun besitzt TPlayer die Prozedur DoBlock, welche jedoch leer ist. Steht da ein höheres Verhalten hinter? Da TAdapterPlayer ja auch diese besitzt und gleichzeitig ein fPlayer hat, würde ich ja davon ausgehen, dass beim Aufruf von TPlayer.DoBlock einfach TAdapterPlayer.DoBlock aufgerufen wird. Erschließen tu sich mir die ganze Sache noch nicht... EDIT Sekunde mal. Kann es sein, dass TPlayer einen TAdapter besitzen soll, TAdapter aber keinen TPlayer? macht ja eingentlich auch garkeinen Sinn, oder übersehe ich da was. Die Hierarchie ist mir nähmlich ein wenig unschlüssig |
AW: Zirkuläre Referenzen
Zitat:
|
AW: Zirkuläre Referenzen
Je nachdem ab wann Programmieren als dieses zählt. Mit Delphi gespielt schon sehr lange, ernsthaft programmiert seit 2-3 Jahren.
Im nachhinein kann man meinen EDIT überlesen, ich sollte endlich anfangen öfter zu lesen und dann erst zu fragen. |
AW: Zirkuläre Referenzen
Will ein TPlayer bei einem TActionBlock das OnAction aufrufen, muss er einen TAbstractPlayer übergeben. Das ein TPlayer aber nicht von TAbstractPlayer abgeleitet ist, springt hier die TPlayerAdapter-Instanz ein, die alle Aufrufe von DoWithBlock einfach an den TPlayer weiterleitet.
Das ganze Code-Beispiel ist natürlich vollkommen sinnlos, da hier eigentlich nichts passiert. Es ist auch nur als Darstellung der Klassenhierarchie zum Auflösen der zirkulären Referenz gedacht. Aus deinem Beispiel geht aber auch nicht hervor, was eigentlich passieren soll und ob der Kreis nicht auch anders aufgebrochen werden kann. |
AW: Zirkuläre Referenzen
Hallo,
aah, verstanden. Also übergebe ich beim Aufruf von Block.OnAction den PlayerAdapter, welcher wiederrum (derzeit) einfach nur das Event zurück gibt. Dass der Code nicht viel macht ist klar, am Ende sollen damit Blöcke entstehen können, die z.B.: Den Zustand von Player properties ändern, GUIs aufrufen (für den Player) oder andere Blöcke verändern. Dann hab ich ja jetzt alles was ich brauch. Vielen vielen Dank nochmal. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 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-2025 by Thomas Breitkreuz