I guess I have to explain it a bit more, I thought when I say header everyone understands what I mean
Ok for example in my game engine I have many classes which I don't want to have in one file like TMesh, TScene or TLight and a lot more.
I have a namespace graphics and several subunits:
unit graphics.mesh;
interface
type
TMesh = class
....
unit graphics.light;
interface
type
TLight = class
....
and in graphics.pas I do this:
unit graphics;
interface
uses
graphics.light,
graphics.mesh;
type
TLight = graphics.light.TLight;
TMesh = graphics.light.TMesh;
....
And if I want to use the game engine in a project I would simply do this:
unit SomeGameUnit;
interface
uses
audio,
graphics,
input;
....
implementation
var
Light: TLight;
...
This should work perfectly unless I want to define a function/procedure in one unit (not a method).
unit graphics.core;
interface
procedure ClearScreen( ClearColor: TColor4 );
...
If I include this unit in graphics I can use the ClearScreen function there. But if I want to use this procedure in "SomeGameUnit.pas", the only way I can think of is putting my function into includes instead of separate units. At the moment I'm using includes for all my subsystems because I don't want to have one large file. This however can be a annoying in the IDE because for example whenever I use code completion for a new type it would append it to the wrong includes and so on and units look cleaner somehow.