Hum, indeed dynedit.face is not removed and if you free face at destroy,
there is a error:
procedure tmainfo.mainformdestroy(const sender: TObject);
begin
dynedit.face.free; // crash
dynedit.free;
end;
What is strange is that with frame only all is or and removed correctly at
destroy.
procedure tmainfo.mainformcreated(const sender: TObject);
begin
dynedit := tedit.Create(self);
dynedit.bounds_cx := 100;
dynedit.bounds_cy := 21;
{.$define use_existing_frame}
{$IFDEF use_existing_frame}
dynedit.frame := tedit1.frame;
{$ELSE}
dynedit.frame := tcaptionframe.create(iscrollframe(self));
dynedit.frame.caption := 'Hello';
// no face created = no memory leak
{$ENDIF}
insertwidget(dynedit, makepoint(8, 48));
dynedit.show;
end;
procedure tmainfo.mainformdestroy(const sender: TObject);
begin
dynedit.free;
end;
________________________
Heap dump by heaptrc unit of /home/fred/memoryleak/dynedit
979 memory blocks allocated : 171948/174248
979 memory blocks freed : 171948/174248
0 unfreed memory blocks : 0
True heap size : 131072
True free heap : 131072
_________________________
So the problem is with TFace.
At the moment I dont see something, maybe it will appear.
Fre;D
--
Sent from: http://mseide-msegui-talk.13964.n8.nabble.com/
_______________________________________________
mseide-msegui-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk