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

Вниз

"Задисейблить" системную кнопку закрытия формы   Найти похожие ветки 

 
Andy BitOff ©   (2009-08-19 14:18) [40]

Тогда он прервется по "Остановить процесс" и программа завершится. Но это уже не моя проблема. Необратимого в данном случае ничего нет, просто придется начинать с начала.


 
Andy BitOff ©   (2009-08-19 14:25) [41]

Я не могу обеспечить всем вселенское счастье, но могу оградить неумелого юзера, от опрометчивых поступков.


 
Kolan ©   (2009-08-19 14:36) [42]

Получается что дисэйбление кнопки закрытия виляет только на вероятность возникновения ошибки, причем неизвестно как. Видимо с БИОСом тоже самое примерно.

Я сильно не настаиваю, общего хорошего решения наверно не существует.

Просто часто ребята лепят формы типа «А вы уверены что хотите... ?» и не понимают, что это почти всегда плохо и что от формы можно избавится.


 
Leonid Troyanovsky ©   (2009-08-19 14:52) [43]


> Andy BitOff ©   (19.08.09 13:43) [34]

> У меня есть процесс, который длится очень долго, в зависимости
> от входных значений может длится до получаса (еще и от мощностей
> зависит), так вот я не даю закрыть программу юзеру, пока
> он не нажмет кнопку "Остановит процесс", о чем честно ему
> и сообщаю. Если он решил закончить, то пусть сознательно
> остановит процесс и потом не жалуется.

Не очень понятно, чем эти полчаса юзер занимается.
Могу предположить два варианта: вводит для оной программы
доп.данные или, ожидая результатов, режется в сапера.

В первом случае юзер, все равно, не простит автора, если его
кропотливая работа пропала даром (даже если э/п выключили).

Во втором случае дополнительная кнопка спасет, если по ней трудней
попасть мышью в азарте игры, но проблема остается - куча ресурсов
и времени потеряно. По уму, если юзеру нужны только результаты,
то лучше всего поручать такие задачи некому серверу, а юзеру
присылать квитанцию - готово, можно забирать.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2009-08-19 15:06) [44]

> Kolan  (19.08.2009 14:36:42)  [42]

> «А вы уверены что хотите... ?»

Поубивал бы


 
Kolan ©   (2009-08-19 15:11) [45]

Или, Леонид, например выполнять работу в фоне, свернувшись, прости Господи, в трей. Хорошо бы только на случай отрубания питания иметь кнопку «продолжить то, что делалось».


 
Andy BitOff ©   (2009-08-19 15:12) [46]


> Leonid Troyanovsky ©   (19.08.09 14:52) [43]

Именно второй случай. Он волен заниматься чем хочет.
Не совсем понял, что за дополнительная кнопка... Мы же, вроде, про отлючение возможности клиикнуть по крестику в углу формы. Если он попадет туда случайно, то ничего потеряно не будет.
В той задаче по уму надо было делать другое. Надо было делать другую структуру хранения входных данных. Но... Как всегда но. Данные есть, структура их самих (данных) ужастна, структура их хранения не оптимальна, но разрабатывалась еще в 94 году и с того времени пополнялась и поддерживалась. И т.д. и т.п.
В общем с чем дали с тем и работали.


 
Anatoly Podgoretsky ©   (2009-08-19 15:16) [47]

> Leonid Troyanovsky  (19.08.2009 14:52:43)  [43]

А чтобы не резался, запрещать клавиатуру и мышь.


 
Andy BitOff ©   (2009-08-19 15:21) [48]


> Kolan ©   (19.08.09 15:11) [45]

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

Вот вспомнил реальный случай. Пришел к юзеру. Давай, говорю, полную проверку включай, посмотрим. Запускает. Я говорю, ладно, покажи мне пока то-то и то-то... Перед ним окно с процессом проверки. Кликает крест. Хинт. Недоумение. Я говорю, не надо закрывать, сверни. Вот вам и реальная история.


 
Kolan ©   (2009-08-19 15:22) [49]


> В той задаче по уму надо было делать другое.

По другому наверно :)

Правильно ли я понял, что если вашу программу (данные, структуру, базу и пр.) переделать, то дисэбление крестика не понадобится?


 
Andy BitOff ©   (2009-08-19 15:29) [50]


> Kolan ©   (19.08.09 15:22) [49]
> Правильно ли я понял

Нет, не правилно. Полная проверка, которая занимает продолжительное время делается крайне, очень крайне редко, чаше проверка диапазона данных из всего объема, а это минута-две, но функционал предусматривает, значит надо принимать меры.


 
Leonid Troyanovsky ©   (2009-08-19 15:34) [51]


> Andy BitOff ©   (19.08.09 15:12) [46]

> Не совсем понял, что за дополнительная кнопка...

Которая "Убить процесс", она ж разрешает закрытие по крестику.

> Andy BitOff ©   (19.08.09 15:21) [48]

> говорю, не надо закрывать, сверни.

Ну сделай для таких настройку: крестиком - сворачивать (в трей :)

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2009-08-19 15:41) [52]


> Anatoly Podgoretsky ©   (19.08.09 15:16) [47]

> А чтобы не резался, запрещать клавиатуру и мышь.

Чего-то уж давненько не спрашивали про оное.

--
Regards, LVT.


 
Andy BitOff ©   (2009-08-19 15:42) [53]


> Leonid Troyanovsky ©   (19.08.09 15:34) [51]
>  Которая "Убить процесс", она ж разрешает закрытие по крестику.

В эту кнопку сложно попасть случайно ;)


> Ну сделай для таких настройку: крестиком - сворачивать (в трей :)

А вот это действительно интересно. Как-то не подумал. Но не в трей, а просто minimize. Но это опять же блокировка закрытия. То, о чем мы тут и говорим.


 
Leonid Troyanovsky ©   (2009-08-19 16:04) [54]


> Andy BitOff ©   (19.08.09 15:42) [53]

> не в трей, а просто minimize. Но это опять же блокировка
> закрытия.

Но, это уже осознанный выбор, особенно хорошо, если настраивать
будет админ, уже не отмажешься :)

Ну, и там тоже не просто minimize, надо еще корректно обработать
WM_QUERYENDSESSION.

--
Regards, LVT.


 
Andy BitOff ©   (2009-08-19 16:08) [55]


> Leonid Troyanovsky ©   (19.08.09 16:04) [54]
> надо еще корректно обработать WM_QUERYENDSESSION.

Ну, это само-собой ;)


 
Kolan ©   (2009-08-19 16:20) [56]

Не надо только делать сворачивание по кнопке закрыть. Это много хуже варианта с хинтом, это дезинформация. Хотя смайлик всё объясняет.


 
MonoLife ©   (2009-08-19 16:21) [57]

Лично, мне не очень нравится, когда стандартный виндовый функционал переделывают на иной: раз "крестик" - значит "закрыть", а не "свернуть", "скрыть" и т.п....
Я бы полностью согласился с > 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 не читая. Поэтому везде, где "Да" - чревато, активной делаю кнопку "Нет":)


 
Anatoly Podgoretsky ©   (2009-08-19 16:32) [58]

> Leonid Troyanovsky  (19.08.2009 15:41:52)  [52]

Уже стали Махоткина забывать


 
Leonid Troyanovsky ©   (2009-08-19 16:32) [59]


> Kolan ©   (19.08.09 16:20) [56]

> много хуже варианта с хинтом, это дезинформация. Хотя смайлик
> всё объясняет.

Вовсе не смайлик, а то, что юзер находясь в здравом и т.д.
определяет свой выбор.

Вот, некоторые, например, предпочитают Enter vs Tab, чего им
твои лекции об оной неправильности с точки зрения MS.

--
Regards, LVT.


 
Kolan ©   (2009-08-19 16:34) [60]


> И еще, обычные пользователи не любят читать, особенно, то,
>  что им пишет система (или собственная программа, я познал
> это на своем опыте), они клацают Enter не читая. Поэтому
> везде, где "Да" - чревато, активной делаю кнопку "Нет":)

Хорошая программа вообще вредных действий по умолчанию не должна предлагать.

Вы сделали хорошее наблюдение, но неправильный вывод. Люди так же быстро научаются жать Нет, Да, Закрыть или ЧтоУгодно, поэтому ваше решение не надёжное.

Если изучить ошибки, которые допускают люди, а их несколько видов, то можно дать два совета:

1. Интерфейс должен своим видом, ограничениями и прочим минимизировать возможность ошибки.
2. Должна быть возможность легко исправить ошибку.


 
Anatoly Podgoretsky ©   (2009-08-19 16:34) [61]

> MonoLife  (19.08.2009 16:21:57)  [57]

Фи как ограничено, надо просто оставить только кнопку НЭТ


 
Kolan ©   (2009-08-19 16:36) [62]


> чего им
> твои лекции об оной неправильности с точки зрения MS

Где это я читал такие лекции? Особенно про точку зрения МС?


 
Leonid Troyanovsky ©   (2009-08-19 16:41) [63]


> 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.


 
MonoLife ©   (2009-08-19 16:46) [64]


> Вы сделали хорошее наблюдение, но неправильный вывод. Люди
> так же быстро научаются жать Нет, Да, Закрыть или ЧтоУгодно,
>  поэтому ваше решение не надёжное.
>

Я и не говорил что мое решение надёжное)) и пришел я к этим выводам не за год... У меня, просто, так сложилось, за 4 года круг моих подопечных пользователей различными приложениями особо не изменился, и наблюдения мои не голословные..
Опять же, зависит от цели...можно все равно подвести какой-то итог за многолетние пользование виндой.. Большинство программ, в диалоге которых предлагается выполнить какое-то необратимое действие, но требуемое пользователю (к примеру, удалить что-нить) "подставят под Enter", в первую очередь кнопку "Нет"... А кнопку Esc для "Отмена".. Что бы юзер "7 раз отмерил, прежде, чем что-то отрезать"..


 
Leonid Troyanovsky ©   (2009-08-19 16:46) [65]


> Kolan ©   (19.08.09 16:36) [62]

> Где это я читал такие лекции? Особенно про точку зрения
> МС?

Крестик для закрытия (твое).
Ентер против таб (мое).

Доктор сказал:  в морг, значит - в морг.

Ты, чего не в курсе, какие клавиши за что отвечают в приложениях by MS?

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2009-08-19 16:48) [66]

> Kolan  (19.08.2009 16:34:00)  [60]

Я вообще то за свое решение с одной кнопкой, поскольку большинство пользователей не пользуются клавиатурой и им пофигу ухищрения с кнопками по умолчанию, максимум что от них можно ожидатьтак это нажатие на крестик, а тут зловреды взяли и заблокировали священный крест.


 
Anatoly Podgoretsky ©   (2009-08-19 16:49) [67]

> Leonid Troyanovsky  (19.08.2009 16:41:03)  [63]

Леонид я не шучу.


 
Anatoly Podgoretsky ©   (2009-08-19 16:51) [68]

> Leonid Troyanovsky  (19.08.2009 16:46:05)  [65]

Кстати кнопка вредная и в некоторых компьютерах брендов ее нет, это они подчеркивают, что наши компьютеры настолько хороши, что им кнопка RESET не нужна. И это тоже не шутка.


 
Leonid Troyanovsky ©   (2009-08-19 16:52) [69]


> Anatoly Podgoretsky ©   (19.08.09 16:49) [67]

> Леонид я не шучу.

Это я сразу просек: в каждой шутке есть доля шутки.
Ну, и за меня не беспокойся :)

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2009-08-19 16:54) [70]

Запрет кнопки имеет право на существование, но пользователям это не указ.


 
Kolan ©   (2009-08-19 16:54) [71]

Что-то я не пойму о чем речь, если честно

Вряд ли я был бы против перехода по полям по энтеру, так как это может сэкономить несколько действий, но меня не спрашивали об этом. Лучше давайте про крестик, чтобы тема ветки не испортилась.


 
MonoLife ©   (2009-08-19 16:58) [72]


> Лучше давайте про крестик

или крестик на теме))


 
Kolan ©   (2009-08-19 17:02) [73]

Или на теме.

Я лично считаю, что решение Andy с дисэйблением и хинтом можно советовать автору, пока не сообщено подробностей конкретной задачи.


 
MonoLife ©   (2009-08-19 17:11) [74]


> пользователей не пользуются клавиатурой и им пофигу ухищрения
> с кнопками по умолчанию

это да, к сожалению...
от крестика надо как-то избавляться))


 
Andy BitOff ©   (2009-08-19 19:05) [75]

> Kolan ©   (19.08.09 17:02) [73]
> с дисэйблением и хинтом

Не, кнопку я не отключал, иначе как я узнаю, что юзер по ней кликать пытается. Не пости же в реальном времени положение мыши ;) Куда проще взвести флаг в программе и при обработке выхода посмотреть взведен ли он и если да, то хинт и отказ от выхода.


 
Anatoly Podgoretsky ©   (2009-08-19 20:42) [76]

> MonoLife  (19.08.2009 17:11:14)  [74]

Выкоривать надо, отверткой.



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

Форум: "Начинающим";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.62 MB
Время: 0.082 c
2-1250251535
creep
2009-08-14 16:05
2009.10.18
Как работает ф-ция LoadMenu


2-1250417006
Smile
2009-08-16 14:03
2009.10.18
"Задисейблить" системную кнопку закрытия формы


2-1250078861
Lexus_samara
2009-08-12 16:07
2009.10.18
Как программно удалить одну строку из текстового файла(txt)?


15-1250499464
Kolan
2009-08-17 12:57
2009.10.18
Можно ли посмотреть описание события без исходного кода?


15-1250623324
{RASkov}
2009-08-18 23:22
2009.10.18
Песня про арбуз





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский