On 23 March 2012 14:15, <[email protected]> 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 > [email protected] > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus -- Frank Church ======================= http://devblog.brahmancreations.com -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
