From Lazarus wiki

The startup of an application is the point after the initialization of the run-time library where the user program has any necessary variables assigned, any needed files to be opened, any window handles allocated (on windowing systems), and other resources needed for the program to operate. If there is startup code necessary to be executed in any unit which is called by the primary application, the main procedure of each unit is called in the order it is declared in the program.

After startup occurs, the main procedure of the main program then begins execution.