MOJA PASJA - PROGRAMOWANIE
   Dzisiaj jest Czwartek, 25 maja, 2017r. Ostatnia aktualzacja miała miejsce: 10 grudnia 2006r. Homepage

Programowanie: Artykuły * FAQ * Download * Komponenty * Książki WWW: Artykuły * Narzędzia * Kursy * Darmowe * FAQ * Skrypty * Ksiązki Off-Topic: Aforyzmy * Humor Inne: Forum * Wiki * Liczniki * Linki * Chat * Grafika * Video * Inne



Jak dynamicznie obsłużyć dodatkowe formy w aplikacji ?
   W czasie tworzenia bardziej rozbudowanych aplikacji, prędzej czy później dochodzisz do momentu kiedy stwierdzasz że przydałyby się jakieś dodatkowe formy. Ale jak się do tego zabrać ? Wbrew pozorom nie jest to takie trudne. Co więcej, aby Twoja aplikacja była bardziej wydajna, formy będziemy tworzyć dynamicznie (po co mają cały czas zajmować miejsce w pamięci). A więc do dzieła !

   Pierwszą czynnością będzie dodanie samego formularza do projektu. File->New Form. No i już mamy nową formę. Proste nie ? ;). No dobra, bez żartów, pracujemy dalej. Teraz musimy dać BCB do zrozumienia, że sami chcemy ją tworzyć (dynamicznie). W menu wybieramy Project->Options... i na zakładce Forms przenosimy naszą nową formę (przypuśćmy że nazywa się ona Form2) z Auto-Create forms do Avalible forms.

   Teraz należy tą formę wywołać. Możemy to zrobić chociażby buttonikiem. Dla przykładowej formy Form2, odpowiedni kod ją tworzący wygląda tak:

   Unit1.cpp

  Application->CreateForm(__classid(TForm2),&Form2);
  Form1->Enabled = 0; // *
  Form2->Show();





   * - Tą linijkę umieszczamy tylko wtedy kiedy zachodzi taka potrzeba, tzn. chcemy aby podczas pokazywania się Form2, Form1 była nieaktywna.

   Teraz musimy jeszcze poprawić #include. Dlaczego ? Odpowiadam szczerze - nie wiem, ale tak trzeba żeby działało :). Tak więc linijkę o treści:

   #include "Unit2.cpp"

   Zamieniamy na:

   #include "Unit2.h"

   Pozostaje jeszcze kwestia poprawnego zamknięcia formy czyli zwolnienia pamięci. Tak więc musimy napisać obsługę dla zdarzenia OnClose dla formy Form2. Przyjmie taką oto postać:

   Unit2.cpp

  Form1->Enabled = 1; // *
  Action = caFree;





   * - jeżeli chcemy spowrotem uaktywnić Formę pierwszą należy na początku pliku dodać jeszcze linijkę #include "Unit1.h"

   To wszystko. Tak samo posępujemy z każdą kolejną formą którą dodajemy do programu.




Stronę przygotował: Kacper Cieśla (comboy). Wszelkie prawa zastrzeżone.
Reklama * Zgłoś błąd * Kontakt * Hosting * O stronie * Sponsoring
Czas generowania strony: 0.001s