Урок 26 Создание нескольких форм в приложении. No title

May 5, 2006
в колонках играет Bon Jovi - Bad Medicine


Сегодня мы узнаем как можно сделать несколько форм в нашей программе.Создайте новый проект и сохраните его в отдельную папку.
Киньте на форму Label и Button.

На кнопке напишите "Изменить надпись на Labele"
Теперь нажмите на кнопку, выделенную красным цветом на рисунке(New Form) , либо нажмите File-New-Form
Должна появиться новая форма.Киньте на неё Edit и Button и уменьшите её размеры.Нажмите File-Save All и Enter/ Вторая форма сохраниться как unit2.cpp

Теперь в файле unit2.cpp в начале допишите строку #include "unit1.cpp"
Должно получиться примерно так:


Теперь в событии onClick кнопки на второй форме напишите:
Form1->Label1->Caption=Edit1->Text;
Form2->Close();

Со второй формой покончено, вернёмся к первой.Для этого нажмите на значок, выделенный красным цветом и выберите первую форму(Form1).


В начале файла unit1.cpp допишите строку #include "unit2.cpp" аналогично тому, как мы делали ранее.
Теперь дважды кликните по кнопке и напишите следующий код.

Form2 - new TForm2(Application);
Form2->ShowModal();
delete Form2;

Этот код при помощи оператора new выделяет память на Form2 и показывает её модально.После закрытия формы, память освобождается посредством оператора delete.

Вы так же можете не выделять каждый раз память на создание формы, а хранить её в памяти постоянно.Для этого зайдите в Project-Options-Forms
Там есть две колонки.В первой указаны формы, которые автоматически создаются при запуске программы, но отображается как правило первая форма в списке (Form1).

Если форма находиться в первой колонке, то для её показа можно просто написать Form2->Show(); или Form2->Visible=true; вместо кода указанного выше.Надо сказать, что все изменения в текстовых полях, переменных и прочие остануться, если несколько раз показать и закрыть форму.

Если форма находиться во второй колонке то придётся использовать оператор new (смотри выше) . После закрытия формы, память освобождается и любые изменения на форме при повторной инициализации не сохраняются.Этот способ предпочтительнее, потому что если у вас много форм, то это позволяет не загаживать память и ускоряет работу программы на тормозных компутерах.


Author of article - MA F*CKA CREW 2006
www.builderhelper.3dn.ru
builder.helper@rambler.ru