AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Komposition ähnlicher Objekte; Prozeduraufruf ohne "as ..."
Thema durchsuchen
Ansicht
Themen-Optionen

Komposition ähnlicher Objekte; Prozeduraufruf ohne "as ..."

Ein Thema von LucasL · begonnen am 7. Dez 2006 · letzter Beitrag vom 8. Dez 2006
 
LucasL

Registriert seit: 20. Dez 2005
19 Beiträge
 
#1

Komposition ähnlicher Objekte; Prozeduraufruf ohne "as

  Alt 7. Dez 2006, 21:37
Hallo,

ich würde gerne Objekte, die alle eine bestimmte Prozedur gemeinsam haben, in einer Liste zusammenstellen und dann diese gemeinsame Prozedur z.B. in einem Schleifendurchlauf aufrufen - ohne mich um den genauen Typ kümmern zu müssen. Geht das?

Ich habs mit ner abstrakten Klasse versucht, auf die die Liste zugreifen kann und die dann von allen Objekten implementiert wurde - ohne Erfolg .

Delphi-Quellcode:
  //----------
  // renderbares Objekt
  //----------
  TGLObject = class(TObject)
  private
    FNext : TGLObject;
  public
    constructor Create;

    procedure Render; virtual; abstract;
  end;

  //----------
  // Liste von renderbaren Objekten
  //----------
  TGLObjects = class(TObject)
  private
    FFirst,
    FPointer : TGLObject;
  public
    constructor Create;

    procedure Render;

    procedure Add(Obj: TGLObject);
    procedure Remove;
    [...]
  end;

  [...]

//----------
// Rendern aller in der Liste befindlichen Objekte
//----------
procedure TGLObjects.Render;
  var
    Obj: TGLObject;
begin
  Reset;
  while Fetch(Obj) do
    Obj.Render;
end;
Obj zeigt auf konkrete, von TGLObject abgeleitete Objekte, die "Render" implementiert haben. Der Compiler versucht jedoch in der while-Schleife der Prozedur Render von TGLObjects (-s!) die abstrakte Prozedur von TGLObject aufzurufen, da Obj ja eine TGLObject-Variable ist... Was aber natürlich zu einem Fehler führt.
Wie kann ich die Schleife simpel halten und trotzdem einen korrekten Prozeduraufruf erzeugen, ohne mich um den genauen Typen von dem jeweiligen Objekt kümmern zu müssen?

Vielen Dank und schönen Gruß,
Lucas
  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 16:59 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