Einzelnen Beitrag anzeigen

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