[Lazarus] Is it meaningful or possible to change the visibility or the properties and events in a form or datamodule, ie make the private or protected?
Frank Church
vfclists at gmail.com
Fri Mar 23 15:33:22 CET 2012
On 23 March 2012 14:15, <michael.vancanneyt at wisa.be> wrote:
>
>
> On Fri, 23 Mar 2012, Michael Fuchs wrote:
>
>> Am 23.03.2012 14:55, schrieb Frank Church:
>>>
>>> [...] I'd prefer to look only at the public section and say, Oh,
>>> this is what it does for the program's other modules. Whatever isn't
>>> there is not relevant to the rest of the application.
>>>
>>> I understand that it comes from a Delphi legacy as RAD tool dating
>>> from a time when the principles underlying object orientation had not
>>> properly sunk in. [...]
>>
>>
>> You can already do this by changing the way you are programming. Just
>> write a class which only publish the needed methods and properties to the
>> outside.
>> Don't let the Application create and control your forms, move this to your
>> class. So, your class hides the forms, datampdules and other stuff.
>
>
> That's what I do too.
>
> unit appforms;
>
> type
> TBaseMyForm = Class(TForm)
> // Define public interface
> end;
> TBaseMyFormClass = Class of TBaseMyForm;
>
> Var
> MyFormClass : TBaseMyFormClass = Nil
>
> And then somewhere:
>
>
>
> Type
> TForm = TBaseMyForm;
>
> TMyForm = Class(TForm);
> // Regular lazarus definition of form
> end;
>
> initialization
> MyFormClass = TMyForm; end;
>
> And then, whenever I need an instance of TBaseMyForm:
>
> F:=MyFormClass.Create(Self);
>
> You could even substitute the complete TMyForm form with another one,
> depending on
> configuration options.
>
> Michael.
>
>
Do you have a good working sample of this approach?
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
Frank Church
=======================
http://devblog.brahmancreations.com
More information about the Lazarus
mailing list