![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
"Задисейблить" системную кнопку закрытия формы [D5, 2003]
Smile © (2009-08-16 14:03:00)Уважаемые мастера, в некоторые моменты работы приложения (в частности открытые запросы или датасеты, ну и пр.) запрещаю его закрытие вот таким образом:
SysMenu := GetSystemMenu(Handle, False);
Windows.EnableMenuItem(SysMenu, SC_CLOSE, MF_DISABLED);
При компиляции под D5 все нормально, однако под D2009 системная кнопка закрытия не "дисейблится".
Подскажите, возможно ли каким либо другим способом, осуществить это под D2009?
Anatoly Podgoretsky (2009-08-19 20:42:00) [1]> MonoLife (19.08.2009 17:11:14) [74]
Выкоривать надо, отверткой.
Andy BitOff (2009-08-19 19:05:00) [2]> Kolan © (19.08.09 17:02) [73]
> с дисэйблением и хинтом
Не, кнопку я не отключал, иначе как я узнаю, что юзер по ней кликать пытается. Не пости же в реальном времени положение мыши ;) Куда проще взвести флаг в программе и при обработке выхода посмотреть взведен ли он и если да, то хинт и отказ от выхода.
MonoLife (2009-08-19 17:11:00) [3]
> пользователей не пользуются клавиатурой и им пофигу ухищрения
> с кнопками по умолчанию
это да, к сожалению...
от крестика надо как-то избавляться))
Kolan (2009-08-19 17:02:00) [4]Или на теме.
Я лично считаю, что решение Andy с дисэйблением и хинтом можно советовать автору, пока не сообщено подробностей конкретной задачи.
MonoLife (2009-08-19 16:58:00) [5]
> Лучше давайте про крестик
или крестик на теме))
Anatoly Podgoretsky (2009-08-19 16:54:00) [6]Запрет кнопки имеет право на существование, но пользователям это не указ.
Kolan (2009-08-19 16:54:00) [7]Что-то я не пойму о чем речь, если честно
Вряд ли я был бы против перехода по полям по энтеру, так как это может сэкономить несколько действий, но меня не спрашивали об этом. Лучше давайте про крестик, чтобы тема ветки не испортилась.
Leonid Troyanovsky (2009-08-19 16:52:00) [8]
> Anatoly Podgoretsky © (19.08.09 16:49) [67]
> Леонид я не шучу.
Это я сразу просек: в каждой шутке есть доля шутки.
Ну, и за меня не беспокойся :)
--
Regards, LVT.
Anatoly Podgoretsky (2009-08-19 16:51:00) [9]> Leonid Troyanovsky (19.08.2009 16:46:05) [65]
Кстати кнопка вредная и в некоторых компьютерах брендов ее нет, это они подчеркивают, что наши компьютеры настолько хороши, что им кнопка RESET не нужна. И это тоже не шутка.
Anatoly Podgoretsky (2009-08-19 16:49:00) [10]> Leonid Troyanovsky (19.08.2009 16:41:03) [63]
Леонид я не шучу.
Anatoly Podgoretsky (2009-08-19 16:48:00) [11]> Kolan (19.08.2009 16:34:00) [60]
Я вообще то за свое решение с одной кнопкой, поскольку большинство пользователей не пользуются клавиатурой и им пофигу ухищрения с кнопками по умолчанию, максимум что от них можно ожидатьтак это нажатие на крестик, а тут зловреды взяли и заблокировали священный крест.
Leonid Troyanovsky (2009-08-19 16:46:00) [12]
> Kolan © (19.08.09 16:36) [62]
> Где это я читал такие лекции? Особенно про точку зрения
> МС?
Крестик для закрытия (твое).
Ентер против таб (мое).
Доктор сказал: в морг, значит - в морг.
Ты, чего не в курсе, какие клавиши за что отвечают в приложениях by MS?
--
Regards, LVT.
MonoLife (2009-08-19 16:46:00) [13]
> Вы сделали хорошее наблюдение, но неправильный вывод. Люди
> так же быстро научаются жать Нет, Да, Закрыть или ЧтоУгодно,
> поэтому ваше решение не надёжное.
>
Я и не говорил что мое решение надёжное)) и пришел я к этим выводам не за год... У меня, просто, так сложилось, за 4 года круг моих подопечных пользователей различными приложениями особо не изменился, и наблюдения мои не голословные..
Опять же, зависит от цели...можно все равно подвести какой-то итог за многолетние пользование виндой.. Большинство программ, в диалоге которых предлагается выполнить какое-то необратимое действие, но требуемое пользователю (к примеру, удалить что-нить) "подставят под Enter", в первую очередь кнопку "Нет"... А кнопку Esc для "Отмена".. Что бы юзер "7 раз отмерил, прежде, чем что-то отрезать"..
Leonid Troyanovsky (2009-08-19 16:41:00) [14]
> MonoLife © (19.08.09 16:21) [57]
> 13:43) [34], но, прочитав > Leonid Troyanovsky © (19.08.
> 09 14:52) [43] задумался..
Классно, когда твои сообщения заставляют задуматься.
Я аж перечитал, чего такого умного сообщил :)
> предупредить о том, что процесс прерывать нельзя под страхом
> смерти и уже после убрать из поля видимости любимый ими
> крестик
Предупреждения к делу не пришьешь :)
Однако, тотальное логирование вызывает негатив.
Проще, если заинтересованные лица разберуться междусобойчиком.
> ну, и заблокировать что только можно, как > Anatoly
> Podgoretsky © (19.08.09 11:58) [31]
Это Анатолий шутит.
--
Regards, LVT.
Kolan (2009-08-19 16:36:00) [15]
> чего им
> твои лекции об оной неправильности с точки зрения MS
Где это я читал такие лекции? Особенно про точку зрения МС?
Kolan (2009-08-19 16:34:00) [16]
> И еще, обычные пользователи не любят читать, особенно, то,
> что им пишет система (или собственная программа, я познал
> это на своем опыте), они клацают Enter не читая. Поэтому
> везде, где "Да" - чревато, активной делаю кнопку "Нет":)
Хорошая программа вообще вредных действий по умолчанию не должна предлагать.
Вы сделали хорошее наблюдение, но неправильный вывод. Люди так же быстро научаются жать Нет, Да, Закрыть или ЧтоУгодно, поэтому ваше решение не надёжное.
Если изучить ошибки, которые допускают люди, а их несколько видов, то можно дать два совета:
1. Интерфейс должен своим видом, ограничениями и прочим минимизировать возможность ошибки.
2. Должна быть возможность легко исправить ошибку.
Anatoly Podgoretsky (2009-08-19 16:34:00) [17]> MonoLife (19.08.2009 16:21:57) [57]
Фи как ограничено, надо просто оставить только кнопку НЭТ
Leonid Troyanovsky (2009-08-19 16:32:00) [18]
> Kolan © (19.08.09 16:20) [56]
> много хуже варианта с хинтом, это дезинформация. Хотя смайлик
> всё объясняет.
Вовсе не смайлик, а то, что юзер находясь в здравом и т.д.
определяет свой выбор.
Вот, некоторые, например, предпочитают Enter vs Tab, чего им
твои лекции об оной неправильности с точки зрения MS.
--
Regards, LVT.
Anatoly Podgoretsky (2009-08-19 16:32:00) [19]> Leonid Troyanovsky (19.08.2009 15:41:52) [52]
Уже стали Махоткина забывать
MonoLife (2009-08-19 16:21:00) [20]Лично, мне не очень нравится, когда стандартный виндовый функционал переделывают на иной: раз "крестик" - значит "закрыть", а не "свернуть", "скрыть" и т.п....
Я бы полностью согласился с > Andy BitOff © (19.08.09 13:43) [34], но, прочитав > Leonid Troyanovsky © (19.08.09 14:52) [43]задумался..
Все же, надо исходить от важности задач... Если прерывание длительного процесса чревато, то лучше пользователя заранее предупредить о том, что процесс прерывать нельзя под страхом смерти и уже после убрать из поля видимости любимый ими крестик, ну, и заблокировать что только можно, как > Anatoly Podgoretsky © (19.08.09 11:58) [31]
И еще, обычные пользователи не любят читать, особенно, то, что им пишет система (или собственная программа, я познал это на своем опыте), они клацают Enter не читая. Поэтому везде, где "Да" - чревато, активной делаю кнопку "Нет":)