** 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.
|
|