ďťż

Ładny brzuch

Witam

Mam pytanie odnośnie teorii w bcb6

Mianowicie mam dwa formularze i wewnątrz obydwóch jakiś kod, kiedy włanczam aplikacje oba kody są wykonywane jednocześnie, chodź widoczny jest tylko 1 formularz. W jaki sposób zrobić by kod z 2 formularza był dopiero uruchomiany gdy zostanie wywołane jego okno ?



Domyślnie w Builderze wszystkie formy tworzone są podczas uruchamianie programu. Jeśli chcesz aby kod wykonywał się podczas pojawienia którejś formy, to wpisz go w zdarzeniu onactivate, a nie OnCreate.

Jest jeszcze inne sposób. W opcjach projektu (Project --> Options) na zakładce Forms możesz ustawić które formy mają byc tworzone automatycznie. Przenosząc je do kolumny Available Forms, formy nie będą tworzone automatycznie. Pamiętaj tylko, że główna forma musi być zawsze tworzona automatycznie (najczęsciej Form1, ale można to zmienić).

Aby pokazać formę która nie jest tworzona automatycznie, nie możesz napisać Form2->Show, tylko musisz ją utworzyć. Nie napisze Ci jak, bo nie mam czasu. Może puźniej :P

Dzięki


Aby pokazać formę która nie jest tworzona automatycznie, nie możesz napisać Form2->Show, tylko musisz ją utworzyć. Nie napisze Ci jak, bo nie mam czasu. Może puźniej :P

Tak jak byś dynamicznie twotzył kazdy inny komponent :P Poszukaj :)




Ktoś inny wie jak ?
Metoda Create formy.

Oki, więc inaczej. Jeśli nie chcesz aby kody przypisane innym formą nie wykonywały się jednocaeśnie zrób tak:
Z meny Project --> Options --> Forms, Form2 przesuń do kolumny Available Forms.

Następnie aby pokazać drugą formę napisz kod: TForm2 *Form2 = new TForm2(this); Form2->Show(); Pamiętaj aby zaincludować plik Formy drugiej w pliku Unit1.cpp: #include "Unit2.h"

I po problemie. Teraz kod drugiej formy zostanie wykonany, gdy forma druga zostanie utworzona, tak jak napisałem to wyżej.
PAmiętaj aby puźniej zwolnić pamięc: Form2->Free();

Obydwa sposoby działają. Tak więc dzięki wielkie jeszcze raz wszystkim :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •