initialization begin ShowMessage('Inside [Unit Name Here]'); end;Adding this code to each and every unit was a pain in the butt. And it still didn't help me track down where the file was getting deleted. There had to be an easier way to figure out the order in which each unit was being created.
I turned to the SO community asking for an easy way to generate a list of forms/units in the order they are created. I received the simplest and most elegant solution from Uwe Rabbe. He recommended looking at the C=ICODE segments of the map file.
My first two questions were, "What's a map file? And how do you create one?"
Information on what a *.map file is can be found here.
http://docwiki.embarcadero.com/RADStudio/Rio/en/API_%28%2A.map%29
To create a .map file from inside the IDE click Project > Options > Delphi Compiler > Linking
Set Map file := Detailed
Click Save
Then build your project and you will have a *.map file.
The reason I was having such a hard time tracking down where the file deletion was happening was because it took place within a "dll" file.
Line 47 of the map file shows the first unit of my project is Zglobals (yes the dreaded global unit). Lines 58-60 show the next three units from my project.
Line 59 StdDlls is a precompiled dll unit that I am unable to modify the source code for because it uses "Quick Reports". I do not have Quick Reports installed on my new dev computer. Therefore I cannot actually modify the source code for this unit.
It turns out that the file delete was happening inside the dll.
I just thought that Uwe Rabbe's solution to creating an ordered list of form/units was so simple and elegant I needed to share it with you in case you ever need a quick and easy way to see the order in which each Delphi unit gets created inside one of your projects.
Cheers!
Semper Fi,
Gunny Mike