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

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

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

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


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


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