OK, I am sure I have missed something, so please help my thought process.
In the 'old days', programs were designed around the data (bases) - the Form was just a high level layer to display the data - but with Lazarus (Delphi) it seems that the program is designed around the Form and the database has become tightly interwoven with the Form itself.
As an example, I find that my Form.units are getting extremely large, as database navigation is basically restricted to the Form.unit itself, rather than in a lower level unit where i can have Procedures and Functions to, say, Get_Customer_Details, Get_invoice_items, etc.
I see 2 solutions:
1) Pass Connection, DataSource, Transaction, Query, etc as parameters to the lower level functions
or
2) Define the above components in the lower level Units (and miss out on the many automatic features of Lazarus - such as Data-Aware, auto Create - Free, etc).
So I am sure I am missing something - every time i have a question like this there always seems to be a simple solution - what am i missing this time?
Thanks in advance