Форум: "Базы";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];
ВнизОпять про Mdi формы, теперь проблема с открытием Найти похожие ветки
← →
maxim2 (2002-06-07 13:30) [0]Привет опять!
Благодаря человеку с ником Kaif разобрался как закрывать MdiChild. Но у меня до этого было всего две формы одна MDIForm а другая MdiChild и вызывалась только она а теперь у меня их несколько и как вызвать нужную я непонял.
Помогите кто еще не устал.
← →
Fiend (2002-06-07 13:41) [1]шо значит вызвать нужную?
У тя теперь Несколько классов MDI окон?
TMDIForm1=class .....
TMDIForm2=class .....
TMDIForm3=class .....
по нажатии батона делается
TMDIForm1.Create(Application)
или TMDIForm2.Create(Application)
а какое окно создавать, я думаю ты сам решиш?!
← →
kaif (2002-06-07 13:42) [2]Любая форма в приложении может быть fsMDIChild. Для этого нужно только вписать обработчик OnClose, как уже говорилось и установить свойство этой формы FormStyle = fsMDIChild. Желательно еще убрать ее из списка AutoCreated Forms проекта, чтобы это окно не появлялось сразу внутри главного при запуске программы.
Чтобы потом его создать RunTime я лично использую такой подход. Добавляю в главное меню пункт и в его обработчик вписываю:
if Application.FindComponent("MyForm") <> nil then
MyForm.Show
else
MyForm := TMyForm.Create(Application);
Тогда, если это окно уже существует, то оно выйдет на передний план, а если его нет - то будет создано.
Если же нужно штамповать одинаковые окна одного типа, например, TMyForm, то нужно придумать, как их отличать друг от друга. Можно после создания каждого в процессе работы программы назначать ему какое-то имя (Name) и потом искать точно так же с помощью Application.FindComponent(<имя>). А можно перебирать список MDIChildren[i] главного окна и, приводя элементы к классу формы TMyForm, анализировать их свойства, хотя бы то же Name.
← →
maxim2 (2002-06-07 13:50) [3]Не у меня готовые формы на них всякие DbGrid и т.д их не нужно создавать программно их просто нужно показать а типа Form2.show не работает выдает ошибку.
← →
kaif (2002-06-07 14:14) [4]Показывать формы в MDI это и есть создавать их экземпляры. Пока не создашь - не покажутся. В случае обычного (не MDI) проекта, окно может быть невидимым, хотя и созданным при запуске проекта. Тогда его показывают методом Show. А в MDI если окно не видно - значит его экземляра вообще не существует, так как MDIChild окно невозможно скрыть. Посмотри сам файл .dpr через Project|View Source. Это сама программа как таковая. Если там окна не создаются, то их нужно создавать руками с помощью методов Create.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c