Delphi: Inicialização de aplicativos - melhores práticas / abordagem

Eu me deparo com isso regularmente e só estou procurando as melhores práticas / abordagens. Eu tenho um aplicativo que contém banco de dados / módulo de dados e quero iniciar o banco de dados / conjuntos de dados na inicialização sem ter "ativo em tempo de execução" definido como verdadeiro no tempo de design (o local do banco de dados varia). Também execute uma rotina de "verificação de atualizações" na web quando o aplicativo for iniciado.

Dadas as sequências de eventos TForm e os resultados de várias tentativas e erros, atualmente estou usando esta abordagem:

Eu uso um registro "Globals" configurado no formulário principal para armazenar todos os vars globais, ter um elemento chamado Globals.AppInitialized (boolean) e defini-lo como False na seção Inicialização do formulário principal.

No evento OnShow do formulário principal (todos os formulários são criados até então), testo Globals.AppInitialized; se for falso, executo minhas coisas de "Inicialização" e finalizo definindo Globals.AppInitialized: = True.

Isso parece funcionar muito bem, mas é a melhor abordagem? Procurando informações sobre a experiência, idéias e opiniões dos outros. TIA ..

questionAnswers(7)

yourAnswerToTheQuestion