Witam. Mam taki problem. Piszę aplikację MDI. Jednak nie mogę sobie poradzić z pewnym problemem. Pierwszą formą którą chce wyświetlać to okienko logowania, dopiero wtedy (jak będzie prawidłowe hasło i login) ma sie otworzyć główne MainForm. Zawsze wyznaje zasadę, że w pamięci nie powinny "wisieć" moduły z których się nie korzysta. Tak wiec chce aby najpierw był Create formy logowania, niszczenie a dopiero potem Create MainForm, lecz chyba tak się nie da :-| . Jeżeli w źródłach projektu, w begin... end. dam jako pierwsze Application.CreateForm formy logowania to staje się ona formą główną i podczas jej niszczenia przy pozytywnym zalogowaniu zamykana jest cała aplikacja. Natomiast jeżeli pierwszą będę tworzył MainForm to pojawia mi się ona przed zalogowaniem. Jedyne wyjście jakie widzę to ukrywać MainForm i pokazywać najpierw forme logowania, ale teoretycznie ktoś może inną aplikacją, korzystając z funkcji WinAPI, wyświetlić sobie MainForm bez podawania loginu i hasła. Co prawda i tak nie będzie miał dostępu do żadnego modułu, bo te prawa są przyznawane na etapie logowania, ale sam fakt. Wiem że to skrajnie pesymistyczny przypadek, ale chciałbym to zrobić nie o tyle bezpieczniej o ile bardziej kompetentnie z punktu widzenia programowania. Można jakoś w trakcie wykonywania programu zmienić mainform aplikacji? Kolejne rozwiązanie to nie tworzenie formy logowania przez Application.CreateForm tylko normalnie i pokazywać to okno jako modalne. Dzięki temu MainForm jest główną formą aplikacji ale pokazuje się dopiero po zamknięciu okna logowania (trzeba tylko uważać na exceptiony, na tym etapie nie ma chyba jeszcze obsługi kolejki komunikatów i aplikacja jest zabijana przy jakimkolwiek wyjątku):
begin
Application.Initialize;
with TLoginForm.Create(Application) do
Showmodal;
Application.CreateForm(TBaseMainForm, BaseMainForm);
Application.Run;
end.
Ale może ktoś ma inny pomysł?