Op dit moment ben ik een programma aan het bouwen, waarvan de complexiteit behoorlijk begint toe te nemen. Als er bijvoorbeeld op een Save-button gedrukt wordt, moeten de geopende tabellen worden opgeslagen in een XML-document, moet de interne documentnaam worden aangepast van Unnamed naar de naam die de gebruiker heeft getypt, moet de tekst op de statusbalk worden aangepast, moet de interne variabele Modified worden veranderd in False, enzovoort.
Daarbij zijn alle units in het project betrokken en tot dusverre riepen ze elkaar allemaal aan, waardoor ik het overzicht begon te verliezen. Daarom heb ik de toegang tot objecten drastisch beperkt. Er zijn nu nog maar twee objecten die vanuit alle units mogen worden benaderd: GUI en Data (zie het schema). Alle andere objecten (in het schema alleen MainForm) kunnen alleen nog maar worden benaderd door GUI. Dat gebeurt via interfaces. Zo kent GUI wel de declaratie van de interface IMain, maar niet de declaratie van het object TMain. Dat verhindert dat GUI de statusbalk in TMain direct kan benaderen, maar staat wel toe dat GUI de informatie op de statusbalk kan updaten via de interface method IMain.UpdateStatusbar().

Inmiddels heb ik het overzicht over mijn code weer terug en ik denk dat ik op de ingeslagen weg verder ga, maar toch vraag ik mij af hoe anderen dat doen. Daarom: wat doen jullie om in Delphi het overzicht te behouden als allerlei objecten elkaar aanroepen?
Daarbij zijn alle units in het project betrokken en tot dusverre riepen ze elkaar allemaal aan, waardoor ik het overzicht begon te verliezen. Daarom heb ik de toegang tot objecten drastisch beperkt. Er zijn nu nog maar twee objecten die vanuit alle units mogen worden benaderd: GUI en Data (zie het schema). Alle andere objecten (in het schema alleen MainForm) kunnen alleen nog maar worden benaderd door GUI. Dat gebeurt via interfaces. Zo kent GUI wel de declaratie van de interface IMain, maar niet de declaratie van het object TMain. Dat verhindert dat GUI de statusbalk in TMain direct kan benaderen, maar staat wel toe dat GUI de informatie op de statusbalk kan updaten via de interface method IMain.UpdateStatusbar().

Inmiddels heb ik het overzicht over mijn code weer terug en ik denk dat ik op de ingeslagen weg verder ga, maar toch vraag ik mij af hoe anderen dat doen. Daarom: wat doen jullie om in Delphi het overzicht te behouden als allerlei objecten elkaar aanroepen?
Een goede grap mag vrienden kosten.