Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2011.07.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
Суслик_   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.003 c
2-1301675364
Gu
2011-04-01 20:29
2011.07.10
PhysicalDrive


2-1301910488
@!!ex
2011-04-04 13:48
2011.07.10
Проверка целостности и распаковка ZIP файла


15-1301334387
Pavia
2011-03-28 21:46
2011.07.10
Посоветуйте компонент


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


15-1301002199
Юрий
2011-03-25 00:29
2011.07.10
С днем рождения ! 25 марта 2011 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский