One thing you need to be wary of if you go about recreating the .dpr
is making sure that your units don't have any hidden interdependencies that will spring up and make your app misbehave in strange ways.
In fact, we ran into exactly this recently. Avoiding the backstory of why it was done, one of my coworkers created a new project and re-added all of a current (legacy) project's units. After rebuilding, the new executable threw access violations and then put a dialog prompt up on screen where he couldn't find the reason for its access.
It turns out there are quite a few dependencies between items (e.g. A form's OnCreate
calling methods in datamodules) that caused the AVs, and the wrong form was being created first, making it the app's main form. The original project source had all the items added in a particular order to ensure that. When he recreated the project, he added all the units from Explorer in their native order -- alphabetical.
Now, you could use this as an opportunity to refactor your application to ensure that these kinds of timing issues and dependencies aren't a problem and perhaps disable form-auto create so that the only forms that are active in your app are the ones you need at any given point in time. Or you could just carefully modify the options directly to match the new defaults, if they make more sense for your project than the old ones.