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

Reply via email to