![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
...запретить обращение к управляющим элементам на форме... [D5, Win2k, WinXP]
Zilog © (2004-09-16 17:01:00)Такая проблема. На форме лежат куча визульных компонентов слоями - панелей, и др. В программе в определенный момент отдельным потоком выполняется обработка данных.
Хочу запретить в это время обращение к управляющим элементам на главной форме, и сделать курсор "часиками".
неподскажете ли как?
Amoeba (2004-09-17 12:30:00) [1]
> KSergey © (17.09.04 12:04) [5]
Если показывать модальную форму чтобы основная была недоступна во время выполнения вычислений, то без доп. потока не обойтись - пока модальная форма не будет закрыта, вычисления в основном потоке выполняться не будут (правда, есть вариант и без потока - с таймером на модальной форме - в OnTimer таймер останавливается и далее выполняется наша длинная процедура - в свое время использовал на Delphi1, где никаких потоков, естественно еще не было). Иначе - дисейблить главную форму на время выполнения процедуры.
KSergey (2004-09-17 12:04:00) [2]А зачем тогда поток было делать??? Для модности??
А вообще - модальная форма и все дела.
Amoeba (2004-09-17 11:01:00) [3]Мыло ушло.
Amoeba (2004-09-16 17:25:00) [4]Кстати, у меня дома должна лежать демка. Могу завтра намылить.
Amoeba (2004-09-16 17:22:00) [5]Нет необходимости прошвыриваться по всем контролам. Достаточно сделать Form.Enabled := False;
Есть и менее примитивное решение. Показать в начале обработки данных доп. модальную форму (св-во BorderIcons = []) и закрыть ее по окончании этой обработки. На нее можно даже выводить ход этой обработки данных. Главная форма все это время будет недоступна.
ChainikDenis (2004-09-16 17:06:00) [6]Прошвырнуться по всем контролам и сделать им enable := false и сменить форму курсора у главной формы. Затем наоборот.
Тока это примитивно как-то....