Das mit dem RegisterClass ist seltsam. Wie hast du deine Methode denn getestet wenn das Formular gar nicht registriert ist?
Aber mach mal im OnClose von deiner
BPL Form
Action := caFree;
rein. Dann wird das Form beim Schließen freigegeben und das mit dem Leak sollte sich erledigt haben.
Naja, ich kann natürlich die Form nur anzeigen lassen, wenn sie auch registriert ist. Ansonsten
wird ja hier
Delphi-Quellcode:
Form := Loadform(Application, 'Testform', True);
If Form <> Nil Then
With Form Do
Begin
Showmodal; // Leaks 176 bytes
Free;
End;
auch an entsprechender Stelle abgebrochen.
Da es sich bei einer Testform um ein komplett leeres (neu erstelltes) Formular ohne jeglichen code handelt, das nichts ausführt und keine komponenten hat, außer der Form selbst, dachte ich dass es nur an der Registierung hängen kann...Denkfehler?
Anmerkungen:
- Auch wenn ich bei bestehender Registrierung den gesamten Teil (..Loadform...) auslasse (i.e check ob loadform NIL ergibt) und die Form nicht lade, gibts ein Leck.
- Wenn die Form mehrmals nacheinander aufgerufen und wieder geschlossen wird, bleibt die Leckgröße konstant
Die Action:=cafree festzulegen, hat leider keinen Effekt gezeigt.