AGB  ·  Datenschutz  ·  Impressum  







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

Zirkuläre Referenzen

Ein Thema von tumo · begonnen am 28. Aug 2018 · letzter Beitrag vom 1. Sep 2018
Antwort Antwort
tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Zirkuläre Referenzen

  Alt 30. Aug 2018, 19:02
Hallo

@Uwe Raabe Vielen vielen Dank für die Lösung Als ich die gelesen habe, habe ich erst gedacht: Ne, ist nicht ganz wie ich es brauche, aber nach einigen Minuten hat sich die Erkenntnis eingestellt: Doch, genau so könnte es klappen (Bin derzeit viel beschäftigt mit Schule, deswegen nur könnte). Ein, zwei Fragen hab ich dann doch noch.
1. Was macht class abstract mit der Klasse?
2. Warum die Adapter-Klasse? Kann ich nicht theoretisch einfach class(TEntity, TAbstractPlayer) machen?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.603 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zirkuläre Referenzen

  Alt 30. Aug 2018, 19:57
1. Was macht class abstract mit der Klasse?
Ist eigentlich nur ein Hinweis für den Entwickler. Aktuell hat das noch keine konkreten Auswirkungen. Das Vorhandensein einer abstrakten Methode genügt bereits, daß eine Klasse abstrakt ist.


2. Warum die Adapter-Klasse? Kann ich nicht theoretisch einfach class(TEntity, TAbstractPlayer) machen?
Weil Klassen in Delphi nur einen Vorfahren haben dürfen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Zirkuläre Referenzen

  Alt 31. Aug 2018, 22:40
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

Geändert von tumo (31. Aug 2018 um 22:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.603 Beiträge
 
Delphi 12 Athens
 
#4

AW: Zirkuläre Referenzen

  Alt 31. Aug 2018, 22:57
Erschließen tu sich mir die ganze Sache noch nicht...
Nur um das richtig einzuordnen: Wie lange programmierst du schon in Delphi?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Zirkuläre Referenzen

  Alt 31. Aug 2018, 23:02
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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.603 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zirkuläre Referenzen

  Alt 31. Aug 2018, 23:39
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
tumo

Registriert seit: 28. Apr 2014
46 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Zirkuläre Referenzen

  Alt 1. Sep 2018, 09:07
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.
  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 05:23 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 by Thomas Breitkreuz