Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Модальность на этапе проектирования / 9 сообщений из 9, страница 1 из 1
05.09.2003, 09:27
    #32256579
Ezhov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
Помогите начинающему разобраться в создании модальных форм.
Создаю по create экземпляр формы, он становится виден сразу, однако форма сия - немодальная. Вопросы:
1) Когда применить метод ShowModal?
2) А нету ли свойства, позволяющего на этапе проектирования определить форму как модальную?
...
Рейтинг: 0 / 0
05.09.2003, 10:30
    #32256653
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
Напиши, как и где создаёшь экземпляр формы...
1) Мне не понятен вопрос, как это когда? Когда тебе надо, тогда и применяй...
2) Вроде как нету такого свойства, однако, попробуй на этапе проектирования определить Visible=false, тогда она не будет появляться на экране при создании... И потом, когда захочешь сделаешь ShowModal.
...
Рейтинг: 0 / 0
05.09.2003, 10:44
    #32256670
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
Прежде всего свойство модальности формы определяется в момент ее открытия методом ShowModal. Но следует иметь ввиду, что в MDI приложениях дочерние формы не могут быть открыты модально, т.е. форма должна иметь свойство FormStyle:=fsNormal, чтобы вызвать ее модально. Помимо этого дочерние формы не могут быть невидимыми, поэтому при создании они автоматически получают свойство Visible:=True. Для того, чтобы избежать связанных с этим недобств следует создавать и уничтожать дочерние окна программно при необходимости.
...
Рейтинг: 0 / 0
05.09.2003, 11:15
    #32256705
Ezhov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
Подробнее:
желаю добавлять\изменять записи таблицы, видной в гриде в основной форме, в некоторой другой модальной форме (не MDI-связь), для чего по клику на кнопке из основной формы пишу
with TfrmMDIChild.Create(Application) do
begin
----опеределение заголовка и расположения
end
Вспомогательная форма рождается, ОТОБРАЖАЕТСЯ СРАЗУ, все добавляется и изменяется как надо, вот только немодальная она.
...
Рейтинг: 0 / 0
05.09.2003, 12:51
    #32256882
Андрей Бабенко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
У вас судя по всему св-во FormStyle:=fsMDIchild.
Что бы форма была модальна, вам ответил MaratIsk....

Замечу так же, что у меня замечается след. баг (в Delphi6) -
Если на этапе проектирования вы установили у какой-то формы св-во FormStyle:=fsMDIchild, компильнули, а потом установили FormStyle:=fsNormal,
то потом эта форма ведёт себя так будто св-во FormStyle осталось fsMDIchild...
...
Рейтинг: 0 / 0
05.09.2003, 12:56
    #32256888
Alex_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
2 Андрей Бабенко
Не только в Delphi 6. Это мне кажется во всех версях так.
...
Рейтинг: 0 / 0
05.09.2003, 15:19
    #32257165
Ezhov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
Прав оказался г-н m_kus, я выставил у дочерней формыVisible в ложь, а потом :
with TfrmMDIChild.Create(Application) do
begin
----опеределение заголовка и расположения
ShowModal
end
И все получилось!

P.S.Имя у формы такое MDI-шное, т.к. сначала была мысля соорудить именно
такое приложение. На самом же деле FormStyle:=fsNormal у дочерней формы.
...
Рейтинг: 0 / 0
05.09.2003, 16:03
    #32257221
Андрей Бабенко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
2 Ezhov:
То что у вас так получается - очевидно, следствие описаного выше бага.
В нормальном режиме никогда форма с fsNormal сама не отобразится без вызова ShowModal по такой описаной вами конструкции :

with TfrmMDIChild.Create(Application) do
begin
----опеределение заголовка и расположения
end
...
Рейтинг: 0 / 0
16.09.2003, 16:10
    #32266751
Andrewed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модальность на этапе проектирования
Если на этапе проектирования вы установили у какой-то формы св-во FormStyle:=fsMDIchild, компильнули, а потом установили FormStyle:=fsNormal,
то потом эта форма ведёт себя так будто св-во FormStyle осталось fsMDIchild...


Этот глюк связан с dfm-файлом. Точно не помню но при FormStyle:=fsMDIchild там для формы прописывается что-то типа Visible=true. Убить эту строку и все работает как надо.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Модальность на этапе проектирования / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]