[Lazarus] Object free itself?
Lee Jenkins
lee at datatrakpos.com
Fri May 16 01:57:33 CEST 2008
Mattias Gaertner wrote:
> On Thu, 15 May 2008 16:41:00 -0400
> Lee Jenkins <lee at datatrakpos.com> wrote:
>
>> Mattias Gaertner wrote:
>>> On Thu, 15 May 2008 21:25:38 +0200
>>> Mattias Gaertner <nc-gaertnma at netcologne.de> wrote:
>>>
>>>> [...]
>>>>> When the form is closed, the controller is notified and need to 1)
>>>>> free the form 2) free the model/object and 3) free itself.
>>> Ehm. Please explain 'when the form is closed'.
>>>
>>> A lcl form is not a single object.
>>>
>> Granted. What I'm trying to do is control the creation of the form
>> and the object that the form is a view of from within the controller.
>>
>> 1. Controller is created.
>> 2. Controller create the object/model.
>> 3. When the form is closed the controller destroys the form and the
>> model and then frees itself.
>>
>> Currently, I'm hooking into the form's Onclose event with a method in
>> the controller with the same signature. When the method is fired,
>> the controller frees the form and the model/object then frees itself.
>>
>> I guess I could create the controller from within the form/view, but
>> that seems to defeat the idea of MVC.
>
> Please keep in mind, that you can not free a control, during an event
> for this control. (Some events on some widgetsets allow this, but this
> can change in future so I won't count on it). But you can free it later,
> using Application.ReleaseComponent(AControl).
>
> For example:
>
> Form1.Close;
> Application.ReleaseComponent(Form1);
> Form1:=nil;
>
> The Form1 will continue existing and will be freed on next idle.
>
Neat. I'll see if I can work that in somehow.
Thanks Mattias.
--
Warm Regards,
Lee
"When my company started out, we were really, really, really, really small.
Now...we're just really small."
More information about the Lazarus
mailing list