Урок 26 Создание нескольких форм в приложении.
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