Ich würde es so versuchen: eine eigene
Unit mit einer Cracker-Klasse erstellen.
Delphi-Quellcode:
unit StringlistCracker;
interface
uses System.Classes;
type
TStringList =
class(System.Classes.TStringList)
private
FID: integer;
procedure Log;
class var FInstanceCount: integer;
public
constructor Create;
destructor Destroy;
override;
property ID: integer
read FID;
end;
implementation
constructor TStringList.Create;
begin
inherited;
inc(FInstanceCount);
FID := FInstanceCount;
end;
destructor TStringList.Destroy;
begin
Log;
inherited;
end;
procedure TStringList.Log;
begin
// Hier jetzt den Logging-Code
end;
end.
Und diese
Unit überall dort, wo die Stringlisten benutzt werden, als letzte in der uses-Klausel des interface-Abschnitts einfügen. Ungetestet!