I hope my English is good enough to be understood. I'm making a program for myself, for fun and as a learning experience. Is a front-end for a dedicated retro-gaming machine (mame, nes, genesis and so). I made a similar program in practically every language i learn in the past (Turbo Pascal 7, Visual Basic 3/5, Delphi 3/7) and now I'm starting to use Lazarus and wanted to try the separation of GUI, business and data layer but I'm not sure how to do it. Right now i have a TFrontEndLayout class that knows where and how draw everything (the game list, the name of the system, the screenshot, etc) a TFrontEndState class that let me access the list of systems, games, emulators and execute the programs accordingly. I also made a TSuperList class (i don't want to mess around with "serious" databases for such a simple application) that uses TAB delimited text files to hold the information and finally the user input (keyboard or gamepad) is managed directly in the Form with a TJoystic class to help.
How much does a class has to know about the others? Should i create an aditional class to manage the data stored in the TSuperList instead of managing it directly from within the TFrontEndState?
But that additional class must have a lot of information belong to the business class or I'm wrong?
I hope this is clear and not a mess.
Thanks in advance for any help the forum people can give me.
Fernando