Früher nannte man das Copy-Buffer Programmierung, aber generics klingt besser...
Beispiel: Du hast einen Quicksort-Routine, die ein array aus Integer sortieren kann.
Wenn Du jetzt Strings sortieren willst oder Records mit irgendwelchen Daten, kopierst Du die Quicksort-Routine
und schreibst überall wo Integer steht String oder TMyRecord...
Mitte : Integer => Mitte : String;
Jetzt kommen die Generics ins Spielt: Hier steht dann Mitte : T wobei es nicht T heißen muss. T ist hier nur ein Platzhalten. Es könnte auch
Mitte : TKopierterTyp heißen - ist das gleiche... Class<TKopierterTyp>
Bei mehrerer Parametern, sieht man das schon mal : TConverter<TSource,TDest> = Class
Was wan man früher mit Copy-Buffer gemacht hat - also die Routine komplett kopiert und den Typen geändert. Macht heute der Compile mit Compiler-Magic...
Somit kannst Du allgemeine Routinen schreiben die dann "beliebige" Typen verwenden können. Damit der Compiler auf gewisse Typenbezogene Methoden zugreifen kann,
kann man <T:TFrame> eingrenzen. T muss dann mindestens vom Type TFrame beziehungsweise eine Ableitung von TFrame sein...
Mavarik