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.
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus