AGB  ·  Datenschutz  ·  Impressum  







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

Dynamischer Funktionsaufruf

Offene Frage von "Sämy"
Ein Thema von Sämy · begonnen am 31. Jan 2007 · letzter Beitrag vom 31. Jan 2007
 
Sämy

Registriert seit: 4. Nov 2004
Ort: Basel (CH)
76 Beiträge
 
Delphi 2007 Professional
 
#1

Dynamischer Funktionsaufruf

  Alt 31. Jan 2007, 10:22
Hallo

Ich habe einige verschiedene Klassen, welche Listen für andere Klassen darstellen:

Delphi-Quellcode:
TBCEffect = class
private
  eid: Integer;
  name: String;
public
  getEID: integer;
  getName: String;
  //...
end;

TBCEffectList = class
private
  function getEffectByID(eid: integer): TBCEffect;
  function getEffectByName(name: String): TBCEffect;
  //...
end;
Nun speichere ich die verschiendenen TBCEffect- Objekte in einer eigen gebauten HashMap im TBCEffectList.

Ich möchte nun über die Liste (TBCEffectList) ein TBCEffect- Objekt finden können. Und zwar nach einer seiner Eigenschaften(eid, name, ...).
Dies ist auch kein Problem. Doch muss ich die Prozeduren(getEffectByID, getEffectByName) in jeder Liste implementieren(gibt noch andere ausser TBCEffectList).

Mein Vorhaben ist es nun, diese Funktion in eine abstrakte Klasse zu extrahieren.
Doch habe ich nun das Problem, dass die Funktionen zum die ID zu holen, in jeder Klasse anders heissen (getEID, getDID, getBID, ...)

Kann ich nun von der Kinderklasse TBCEffectList zB. per String angeben, wie die benötigte Funktion heisst und diese, ohne case oder so, direkt aufrufen? (Ich kenne dieses Vorgehen aus Java, dort funktioniert dies)
Oder kann man dies irgentwie durch Pointer auf die Funktion lösen?

Gruss und Danke
Sämy
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
  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 00:42 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