Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как изменить какие-нить свойства компонентов на модальной форме [D7, WinXP]


Артем К. ©   (2004-10-10 10:01:00) 

из главной формы, когда модальная форма модальна :)


Sergey_Masloff   (2004-10-10 16:39:00) [1]

KSergey ©   (10.10.04 13:03) [5]
А, я не понял. Я думал пользователю НУЖНО жать кнопки пока форма показана ;-)


KSergey   (2004-10-10 16:22:00) [2]

> [7] SergP.   (10.10.04 16:12)
> Перенеси свой цикл из главной формы в ту, которая должна
> становиться модальной.

Вариант хорош (почти), если это одно такое действие. А если универсальной формы хочется? Передавать адрес реально выполняемой процедуры?
Почти - в смысле некоторых проблем доступом к членам класса, откуда все эот вызвано. Хотя и это, конечно, разрулить можно.


SergP.   (2004-10-10 16:12:00) [3]


> 1.в главной форме выполняется цикл расчета некоторых параметров
> 2.перед выполнением этого цикла необходимо показать форму
> с прогресс-баром (по сути она должна быть модальной)


Перенеси свой цикл из главной формы в ту, которая должна становиться модальной.


dim-   (2004-10-10 13:32:00) [4]

Для отображения "прогресс-бара" открываешь форму с ним не модально, Show, а если тебе охота чтобы он имитировал модальность (делал недоступной главную форму) можно сделать так:
MainForm.Enabled:=false;
FormProgress.Show;
....
FormProgress.Progress.Position:=i;
FormProgress.Update;
....
FormProgress.Close;
MainForm.Enabled:=True;


KSergey   (2004-10-10 13:03:00) [5]

> [4] Sergey_Masloff   (10.10.04 12:53)
>  Для подобных целей используются формы имеющие стиль fsStayOnTop

Нет. Эти формы (в смысле при немодальном их отображении) не запрещают реакцию других форм приложения на действия пользователя.

PS
Ох уж мне эти пользователи...


Sergey_Masloff   (2004-10-10 12:53:00) [6]

Артем К.   (10.10.04 12:26) [2]
Модальность тут на фиг не нужна. По определению модальная форма останавливает выполнение основной до своего закрытия. Менять это ее подразумеваемое поведение - изврат.
 Для подобных целей используются формы имеющие стиль fsStayOnTop


KSergey   (2004-10-10 12:49:00) [7]

1. Выносить расчеты  отдельнй поток
2. См. как устроена ShowModal. Лень опять писать, если что - есть модуль именно такой "модальной" формы. Сделан исключительно по мотивам и copy/paste кусков из ShowModal. Надо - пишите почтой или обратно выкладу здесь.


Артем К.   (2004-10-10 12:26:00) [8]

мне необходимо сделать следующее:
1.в главной форме выполняется цикл расчета некоторых параметров
2.перед выполнением этого цикла необходимо показать форму с прогресс-баром (по сути она должна быть модальной)
3.процесс выполнения расчетов показыват прогресс-бар на этой модальной форме
4.если я делаю для этой формы Show, то все тип-топ, но при этом доступна гавная форма, т.е. я могу выбирать э-ты мню, нажимать кнопки и т.д. (у меня этого не должно быть)
5.если делаю для формы ShowModal, то цикл начнет выполняться только после закрытия этой формы.

Воощем, как быть?


Mim1   (2004-10-10 11:13:00) [9]

Как обычно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо