Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Überladene, generische Methode aufrufen

  Alt 2. Dez 2010, 23:07
Delphi-Version: 2010
Hallo zusammen,

ich schreibe mir gerade ein paar Klassen, mit denen ich so ziemlich alles animieren lassen will. Zunächst war meine Idee lediglich ein Overlay-Form einfaden zu lassen, allerdings ist mir das im Moment zu spezifisch. Bin im Moment dabei mich mal wieder mit Generics zu befassen und habe folgenden Code:
Delphi-Quellcode:
procedure TAnimator.Add<T>(ATarget: TObject; APropertyName: String; AToValue: T);
begin
  Add<T>(ATarget, [APropertyName], [AToValue]); // Das hier ist Zeile 184
end;

procedure TAnimator.Add<T>(ATarget: TObject; APropertyName: array of String; AToValue: array of T);
begin

  // Do something...

end;
Ohne Generics funktioniert und compiliert das ganze wunderbar. Aber hier erscheint dann diese tolle Fehlermeldung:
Zitat:
[DCC Fehler] ApAnimations.pas(184): E2506 Im interface-Abschnitt deklarierte Methode des parametrisierten Typs darf kein lokales Symbol ':6' verwenden
Gerate wurde ich sagen, dass ich das nicht machen darf, da der Compiler einfach nicht damit klar kommt. Kennt hierfür aber evtl. jemand eine Lösung bzw. Workaround?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat