Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.10;
Скачать: CL | DM;

Вниз

Как запретить обработку любых действий пользователя?   Найти похожие ветки 

 
Суслик_   (2009-11-12 15:00) [0]

Здравствуйте.

Как запретить обработку любых действий пользователя?
Под действиями понимается кликанье мышкой по кнопкам и горячие клавиши.

Задача в том, чтобы на время работы Application.ProcessMessages не дать пользователю ничего такого нажать - например, ту же alt+f4.


 
Сергей М. ©   (2009-11-12 15:02) [1]


> не дать пользователю ничего такого нажать


Чтобы он ничего не нажимал, надо отобрать у него все кнопки)


> на время работы Application.ProcessMessages


Можно подумать, что тебя кто-то заставляет вызывать этот метод..


 
Суслик_   (2009-11-12 15:05) [2]

Сергей, ну есть какая-то такая глобальная штука на все программу (это MDI с горой открытых окно, Action и в главной форме и в ребенке), чтобы так


DenyAllActions();
try
  ...
  Application.ProcessMessages();
  ...
finally
  AllowAllActions();
end;


?


 
Дмитрий Белькевич   (2009-11-12 15:41) [3]

Я у себя вывешиваю онтоповый сплэш - ждите...


 
Игорь Шевченко ©   (2009-11-12 16:13) [4]

DisableTaskWindows/EnableTaskWindows ?


 
Суслик_   (2009-11-12 18:47) [5]

Спасибо, Игорь. Обязательно почитаю, когда найду справку по этой функции.
У тебя, случаем, нет? Можешь кинешь копию из справки? В D2007 она не описана вообще )


 
Игорь Шевченко ©   (2009-11-12 20:40) [6]

Суслик_   (12.11.09 18:47) [5]

RTFS: Forms.pas


 
Юрий Зотов ©   (2009-11-13 09:15) [7]

> Суслик

Возможно, это:

function BlockInput(fBlockIt: BOOL): BOOL; stdcall; external user32 name "BlockInput";

procedure TForm1.Timer1Timer(Sender: TObject); // Interval = 5000
const
 Colors: array[boolean] of TColor = (clGreen, clRed);
begin
 FInputBlocked := not FInputBlocked; // Поле формы
 Color := Colors[FInputBlocked]; // Изначально Color = clGreen
 BlockInput(FInputBlocked) // Оп-ля!
end;


 
oxffff ©   (2009-11-13 09:37) [8]

Отрубить пользователю руки и ноги.


 
Суслик_   (2009-11-13 10:32) [9]

Спасибо, посмотрю.


 
Плохиш ©   (2009-11-13 13:21) [10]


> DisableTaskWindows/EnableTaskWindows ?

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Forms_DisableTaskWindows@HWnd.html

Description

This is function Forms.DisableTaskWindows.

Рыдал...


 
Anatoly Podgoretsky ©   (2009-11-13 20:35) [11]

> Плохиш  (13.11.2009 13:21:10)  [10]

Это еще ничего, хуже так
По данному вопросу справки нет, сходите на Вики за подробной справкой, а там По данному вопросу справки нет


 
oldman ©   (2009-11-14 00:12) [12]


> oxffff ©   (13.11.09 09:37) [8]
> Отрубить пользователю руки и ноги.
>  
> Суслик_   (13.11.09 10:32) [9]
> Спасибо, посмотрю


Может не надо?


 
MemoryLeak   (2009-11-14 01:11) [13]

Юрий Зотов, и часто вы это используете ? :)


 
Anatoly Podgoretsky ©   (2009-11-14 12:43) [14]

> MemoryLeak  (14.11.2009 01:11:13)  [13]

Вот настолько часто
http://www.podgoretsky.com/Redir.aspx?id=212&DownloadFile=~/ddp/chaos.aspx


 
Наиль ©   (2009-11-14 19:47) [15]

> [0] Суслик_   (12.11.09 15:00)
> Здравствуйте.
>
> Как запретить обработку любых действий пользователя?
> Под действиями понимается кликанье мышкой по кнопкам и горячие
> клавиши.
> Задача в том, чтобы на время работы Application.ProcessMessages

Простейшее решение:
Разместить на форме панель (alClient), а всё остальное на ней.
Перед началом цикла делаем панель.enabled:=false, а после наоборот.

> не дать пользователю ничего такого нажать - например, ту
> же alt+f4.

OnCloseQuery?


 
имя   (2009-11-15 02:58) [16]

Удалено модератором


 
TDelphi ©   (2009-11-16 06:57) [17]

Зачем, что-либо размещать? Просто MainForm.Enabled := False;


 
brother ©   (2009-11-16 07:43) [18]

согласен с [3] ибо блокировать ВСЕ - это паранойя
как вариант: твоя прога все заболкировала... и умерла, угадай, о чем думает пользователь? ;)


 
Дмитрий Белькевич   (2009-11-16 11:30) [19]

Я думаю, что если программа умерла, то уже пофиг - заблокирована она или нет.


 
brother ©   (2009-11-16 12:07) [20]

> заблокирована она или нет.

не она - все заблокировано... только RESET )


 
Дмитрий Белькевич   (2009-11-16 14:01) [21]


> не она - все заблокировано... только RESET )


Почему? Достаточно её снять.


 
Дмитрий Белькевич   (2009-11-16 14:02) [22]


> блокировать ВСЕ - это паранойя


Блокировать всё - имеется в виду, всё своё, конечно же.


 
Дмитрий Белькевич   (2009-11-16 14:05) [23]


> DisableTaskWindows/EnableTaskWindows ?


Это, насколько я помню, не блокирует всю винду, хотя, возможно, ошибаюсь. Но были какие-то сложности с этим, не помню за давностью. Сплэш оказался идеальным решением на то время, когда я его использовал. В следующей версии код был переписан под использование треда и необходимость в сплэше отпала. Но как быстрое, временное, решение - сгодилось.


 
ВадимММ   (2009-11-16 20:37) [24]

10 трейдов с кодом

label f;

begin
f:
sleep(10);
goto f;
end;


 
Leonid Troyanovsky ©   (2009-11-16 22:38) [25]


> ВадимММ   (16.11.09 20:37) [24]

> 10 трейдов с кодом

Почему 10?
А если один, с сотней?

--
Regards, LVT.


 
Дмитрий Белькевич   (2009-11-16 22:47) [26]


>  и необходимость в сплэше отпала.


Уточняю. Необходимость в блокировке отпала.


 
Igor2010   (2009-11-23 21:13) [27]


> Anatoly Podgoretsky ©   (14.11.09 12:43) [14]
>
>
> Вот настолько часто
> http://www.podgoretsky.com/Redir.aspx?id=212&DownloadFile=~/ddp/chaos.
> aspx


бред.......такую ерунду ток под травой можно сочинить


 
Anatoly Podgoretsky ©   (2009-11-23 21:44) [28]

> Igor2010  (23.11.2009 21:13:27)  [27]

Ты Махоткина не знаешь.


 
Leonid Troyanovsky ©   (2009-11-23 23:01) [29]


> Igor2010   (23.11.09 21:13) [27]

>> http://www.podgoretsky.com/Redir.aspx?id=212&DownloadFile=~/ddp/chaos. aspx

> бред.......такую ерунду ток под травой можно сочинить

Далек ты от понимания Истинного Пyти.

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2011.07.10;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.013 c
2-1301853911
Basilisk
2011-04-03 22:05
2011.07.10
Программное создание элементов


15-1296216163
12
2011-01-28 15:02
2011.07.10
посоветуйте идею визуального редактора условий в запросе


8-1213456540
cavalera
2008-06-14 19:15
2011.07.10
Как отобразить текст в Delphi & DX8


15-1301355051
KilkennyCat
2011-03-29 03:30
2011.07.10
как-то мы о много-мониторности говорили...


2-1301523077
Gu
2011-03-31 02:11
2011.07.10
Реестр Win7