Auch wenn ich weiß, dass nicht alle Anforderungen erfüllt sind, will ich doch einen ersten Versuch posten.
Dein Ansatz hat aber ein paar klitzekleine Denkfehler:
Logo, so wirklich gelöst ist das natürlich nicht.
Am einfachsten würde ich das so lösen: Die Systems.Generics.Collections.TDictionary-Klasse nehmen, kopieren und alles Generische entfernen, damit es mit Delphi 7 kompilierbar wird.
An den Stellen (z. B. Add), wo auf den FGrowThreshold geprüft wird, zusätzlich die MaxSize mit ins Spiel bringen.
Fragen:
Was soll passieren, wenn die MaxSize erreicht wird und man weitere Elemente hinzufügt? Solls eine
Exception geben?
Was soll passieren, wenn ich das selbe (!) Objekt unter verschiedenen Schlüsseln hinzufüge?
Welches Element soll eigentlich zurückgeben werden, wenn ich hinter einen Schlüssel 2..N Elemente gespeichert habe?
Ich verlange auch einen Testfall!