Witajcie !
Ostatnio zacząłem zastanawiać się nad kilkoma kwestiami i pomyślałem, że dobrze będzie jeśli ktoś rozwieje moje wątpliwości.
Powiedzmy, że projekt składa się z kilku form, z których forma pierwsza jest formą główną. Kiedy w Delphi dodajemy do projektu nowe formy automatycznie nadawany jest om status auto-create, co możemy zobaczyć w oknie Project->Options->Forms, no i oczywiście w źródle samego projektu.
Oznacza to, że w raz z uruchamianiem się programu zostanie przeprowadzone tworzenie wszystkich form. Zastanawia mnie dlaczego w ten właśnie sposób dodawane są przez Delphi nowe formy do projektu. Jest to raczej niekorzystnie i wedle mojego rozumowania opóźnia czas uruchamiania się aplikacji. Szczególnie jeśli form mamy dość sporo. Oczywiście mówię tu o formach, które po uruchomieniu się aplikacji nie muszą być widoczne.
Oczywiście nic nie stoi na przeszkodzie, żeby wszystkie dodatkowe formy poprzenosić sobie w opcjach projektu do panelu Available Forms i a w Auto-Create Forms pozostawić jedynie formę główną.
W takim wypadku, jeśli przycisk umieszczony na formie głównej miałby odpowiadać za pojawienie się powiedzmy formy 2, to dla zdarzenia OnClick przycisku należałoby przypisać kod:
Form2:=TForm2.Create(Application);
Form2.Show;
Wtedy forma 2 zostanie utworzona i wyświetlona.
Powiedzmy teraz, że zwyczajnie zamykamy formę 2. Została ona zamknięta (nie zwolniona).
Znowu klikamy na przycisk formy 1. Co się wtedy dzieje ?
Czy zgodnie z powyższym kodem forma 2 jest ponownie tworzona ?
Czy zatem mamy utworzone dwie formy 2 skoro wcześniej zamykając formę 2 nie nastąpiła jej destrukcja tylko zwyczajne zamknięcie ?
Jeśli tak, to każde kliknięcie przycisku będzie tworzyć nowe formy 2 ?
Jeśli tak, to rozumiem, że pod zdarzenie OnClose formy 2 należałoby przypisać kod:
Action:=caFree;
Form2:=nil;
żeby podczas zamykania następowała automatyczna destrukcja tej formy.
Z góry dziękuję za głosy w dyskusji !
Pozdrawiam wszystkich !