Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];
ВнизКак изменить какие-нить свойства компонентов на модальной форме Найти похожие ветки
← →
Артем К. (2004-10-10 10:01) [0]из главной формы, когда модальная форма модальна :)
← →
Mim1 © (2004-10-10 11:13) [1]Как обычно.
← →
Артем К. (2004-10-10 12:26) [2]мне необходимо сделать следующее:
1.в главной форме выполняется цикл расчета некоторых параметров
2.перед выполнением этого цикла необходимо показать форму с прогресс-баром (по сути она должна быть модальной)
3.процесс выполнения расчетов показыват прогресс-бар на этой модальной форме
4.если я делаю для этой формы Show, то все тип-топ, но при этом доступна гавная форма, т.е. я могу выбирать э-ты мню, нажимать кнопки и т.д. (у меня этого не должно быть)
5.если делаю для формы ShowModal, то цикл начнет выполняться только после закрытия этой формы.
Воощем, как быть?
← →
KSergey © (2004-10-10 12:49) [3]1. Выносить расчеты отдельнй поток
2. См. как устроена ShowModal. Лень опять писать, если что - есть модуль именно такой "модальной" формы. Сделан исключительно по мотивам и copy/paste кусков из ShowModal. Надо - пишите почтой или обратно выкладу здесь.
← →
Sergey_Masloff (2004-10-10 12:53) [4]Артем К. (10.10.04 12:26) [2]
Модальность тут на фиг не нужна. По определению модальная форма останавливает выполнение основной до своего закрытия. Менять это ее подразумеваемое поведение - изврат.
Для подобных целей используются формы имеющие стиль fsStayOnTop
← →
KSergey © (2004-10-10 13:03) [5]> [4] Sergey_Masloff (10.10.04 12:53)
> Для подобных целей используются формы имеющие стиль fsStayOnTop
Нет. Эти формы (в смысле при немодальном их отображении) не запрещают реакцию других форм приложения на действия пользователя.
PS
Ох уж мне эти пользователи...
← →
dim- © (2004-10-10 13:32) [6]Для отображения "прогресс-бара" открываешь форму с ним не модально, Show, а если тебе охота чтобы он имитировал модальность (делал недоступной главную форму) можно сделать так:
MainForm.Enabled:=false;
FormProgress.Show;
....
FormProgress.Progress.Position:=i;
FormProgress.Update;
....
FormProgress.Close;
MainForm.Enabled:=True;
← →
SergP. (2004-10-10 16:12) [7]
> 1.в главной форме выполняется цикл расчета некоторых параметров
> 2.перед выполнением этого цикла необходимо показать форму
> с прогресс-баром (по сути она должна быть модальной)
Перенеси свой цикл из главной формы в ту, которая должна становиться модальной.
← →
KSergey © (2004-10-10 16:22) [8]> [7] SergP. (10.10.04 16:12)
> Перенеси свой цикл из главной формы в ту, которая должна
> становиться модальной.
Вариант хорош (почти), если это одно такое действие. А если универсальной формы хочется? Передавать адрес реально выполняемой процедуры?
Почти - в смысле некоторых проблем доступом к членам класса, откуда все эот вызвано. Хотя и это, конечно, разрулить можно.
← →
Sergey_Masloff (2004-10-10 16:39) [9]KSergey © (10.10.04 13:03) [5]
А, я не понял. Я думал пользователю НУЖНО жать кнопки пока форма показана ;-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c