C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вызов фрейма из формы, Как можно вызвать из главной формы фрейм
** Dima
Отправлено: 11.01.2005, 12:39


Не зарегистрирован








Как можно вызвать из главной формы фрейм (событие, например по
нажатию клавиши)?

Bond
Отправлено: 11.01.2005, 13:18


Станционный диспетчер

Группа: Участник
Сообщений: 142



Работать с фреймами можно только на этапе разработки.
Variant A.
1. Сначала нужно создать фрейм: File->New->Frame
2. Пишешь обработчики всех событий элементов фрейма (логику работы фрейма)
3. Пихаешь фрейм на главную форму
4. Создаешь новую форму (TNewForm) и ложишь на нее фрейм
5. Убираешь форму NewForm из списка автоматически создаваемых (Project->Options->Forms->Auto-creates forms)
6. В обработчике события клика на кнопке вставляешь следующее:
CODE

Application->CreateForm(__classid(TNewForm), &NewForm);
NewForm->ShowModal();
NewForm->Free();


Variant B.
1. Если хочешь просто спрятать фрейм — изменяй его свойство Visible
** Dima
Отправлено: 11.01.2005, 13:31


Не зарегистрирован







Спасибо, Bond! Не сочти за наглость, а как к примеру предать из
этого нового фрейма переменную главной форме ?

Например вызываю фрейм , а в нем ввожу в Edit ->Text . И этот текст
мне нужно параллельно выводить на главной форме на Лейбле1:

Label1->Caption=Frame1->Edit->Text; Так ? Или перед этим
где-то нужно Text об'явить?
Bond
Отправлено: 11.01.2005, 13:43


Станционный диспетчер

Группа: Участник
Сообщений: 142



Допустим у тебя есть главная форма MainForm, динамическая форма DynamicForm и фрейм TMyFrame. Когда ты ложишь фрейм на MainForm, то в создается экземпляр класса TFrame, который является данными формы. Также и при создания фрейма для DynamicForm.

Они уже готовые вместе со всеми своими свойствами: один для главной формы, другой для динамической.

Другой вопрос — общие данные. Для этого необходимо объявлять статические поля в классе TMyFrame.

Вернуться в Вопросы программирования в C++Builder