title: Where should I put code to execute once after my Delphi app has finished initialising?
body: <p>I have functions I want to perform after my app has finished initialising and the main form has been created.  I did have the code (call it ProcedureX) in the forms OnShow event, but I have just noticed that it is being called twice, because OnShow is firing twice.  It fires when the main program DPR calls:</p>
  
  <pre><code>Application.CreateForm(TMainForm, MainForm) ;  
  </code></pre>
  
  <p>as I would expect.  But after that, when I read stuff from an INI file that includes the forms on-screen position, I have a call:</p>
  
  <pre><code>MainForm.position := poScreenCenter ;
  </code></pre>
  
  <p>This, it would appear fires the OnShow event again.</p>
  
  <p>Where can I put my call to ProcedureX, which must only be called once, and which needs the main form to be created before it can execute?</p>