Zitat von
sakura:
Leider darf die Lösung nicht weitergegeben werden, da diese den auisdrücklich
Lizenzbesdingungen von Borland unterliegt. D.h., diese muss von jedem manuell eingearbeitet werden. Der Aufwand liegt bei ca. 10 Minuten, sollte aber gemacht werden.
Mit dieser Lizenzbedingung ist gemeint, dass man die Classes.pas nicht weitergeben darf. Man könnte aber ein Patch schreiben, der das Einarbeiten des verbesserten Codes ohne die 10 Minuten schafft.
Für die Programmierer, die den Classes.pas Quellcode nicht haben (Personal Edition) oder die die Datei nicht verändern wollen, habe ich eine
Unit geschrieben, die die Funktionen MakeObjectInstance und FreeObjectInstance hooked. Somit wird beim Aufruf von MakeObjectInstance automatisch die Funktion FixedMakeObjectInstance aufgerufen. Um dies zu ermöglichen, muss die
Unit als aller erste (ShareMem ausgeschlossen)
Unit im Projektquellcode eingebunden werden.
Da die beiden Funktionen bei Delphi 5 noch in der Forms.pas liegen wird ein Aufruf von MakeObjectInstance, der durch TApplication.Create ausgelöst wird, nicht von FixedMakeObjectInstance abgefangen. Weil aber Application bis zum Programmende besteht, und nur 1x erzeugt wird, ist das nicht weiter schlimm.
Zitat:
In Delphi 7 besteht der Fehler scheinbar noch immer
Sämtliche Änderungen durch die angegebene Quelle fehlen...
Meine
Unit dürfte auch unter Delphi 7 funktionieren.
Der Classes Patch wird so installiert:
Code:
patch Classes.pas Classes.pas.diff