Страница 1 из 8

Вопрос про курсор

Добавлено: 17 Апрель 2023, 20:40
Игорь Столяров
Привет всем !

Подскажите пожалуйста, а кто-нибудь сейчас юзает в современных приложениях SetCursor(...) ?
Надо ли оно вообще в современных реалиях, особенно в мульти-птоковых приложениях ?

Копаю старое приложение - там переключение курсоров при каждом цикле обработки.
Поймал себя на мысли, что мы сейчас эту забаву с переключением курсоров вообще забросили.
Есть индикатор - в виде строки с указанием процента выполнения и/или PROGRESS и всё ...

Вопрос про курсор

Добавлено: 17 Апрель 2023, 22:10
finsoftrz
Вроде ничего не забыл.

1. Сплиттер при наведении и перетаскивании разделителя.
2. Панель переключения потоков.
3. Cursor:Wait в мелких обработках, когда прогрессор выводить нет смысла.
4. Cursor:cross в рисовалках (дизайнер бланков, карты) в режиме размещения нового элемента.

Вопрос про курсор

Добавлено: 17 Апрель 2023, 22:30
Игорь Столяров
finsoftrz писал(а): 17 Апрель 2023, 22:10 3. Cursor:Wait в мелких обработках, когда прогрессор выводить нет смысла
Да, конечно - вопрос про обработки CURSOR:WAIT. :)
Т.е. Вы показываете выполнение курсором ...

Просто в Multi-MDI установленный курсор действует везде.
Если в окне идёт расчёт, то при наведении на TOOLBAR APPFRAME курсор всё равно "часиками".
Хотя возможно, нужно как-то это отрабывать и переключать курсор ... но проще вообще не переключать. :)

Вопрос про курсор

Добавлено: 17 Апрель 2023, 23:16
finsoftrz
Когда курсор ожидания выводится, все послушно ждут. На то он и курсор такой. Это же на достаточно быстрых операциях. Если долго, то прогрессор. Просто курсором ожидания информируем, что программа что-то там делает. Для наглядности, можно, конечно, и без него.

Вопрос про курсор

Добавлено: 18 Апрель 2023, 11:15
SergioRaguzini
Игорь Столяров писал(а): 17 Апрель 2023, 20:40 кто-нибудь сейчас юзает в современных приложениях SetCursor(...)
Привет Всем!

Наверное, использование смены курсора при обработке, например,
SETCURSOR(CURSOR:Wait) ! turn on hourglass mouse cursor
и, в конце операции
SETCURSOR ! turn off hourglass
все же является "правилом хорошего тона" и как праивильно заметил выше Вячеслав, пусть пользователи ждут, не смотря на то что операция, вроде бы и доступна, но на Toolbar пользователь нверняка обратит внимание, что курсор в ожидании и м.б. воздержится от лишних кликов



! turn on hourglass mouse cursor

Вопрос про курсор

Добавлено: 18 Апрель 2023, 11:20
Игорь Столяров
SergioRaguzini писал(а): 18 Апрель 2023, 11:15 воздержится от лишних кликов
Вот это сейчас было про многопоточные приложения в 2023 г. или как ? ;)

Вопрос про курсор

Добавлено: 18 Апрель 2023, 11:26
finsoftrz
Стесняюсь спросить, в чем разница между многопоточными приложениями в 2023 и в 2003 годах?
Кстати, в кларионе многопоточность сама по себе весьма специфичная, не как в других системах.

Вопрос про курсор

Добавлено: 18 Апрель 2023, 11:34
Игорь Столяров
finsoftrz писал(а): 18 Апрель 2023, 11:26 в чем разница между многопоточными приложениями в 2023 и в 2003 годах
В MDI модели RunTime. Всё-таки для C50 (2003 г.) и C11 (2023 г.) - она разная.
Координальные изменения были в C55 и нормально всё уже работало в C63.
Ну и поддержка на стороне ABC шаблонов. :)

Вопрос про курсор

Добавлено: 18 Апрель 2023, 11:40
SergioRaguzini
Наверное, "многопоточность" при применении вида курсора все же отходит на второй план. Измененный внешний вид курсора, например, при Cursor:Wait должен сказать пользователю, что идет некий процесс обработки. Если мы не хотим информировать пользователя о работающем процессе, нам ведь не обязательно изменять курсор, разве не так?

Вопрос про курсор

Добавлено: 18 Апрель 2023, 11:46
Игорь Столяров
SergioRaguzini писал(а): 18 Апрель 2023, 11:40 должен сказать пользователю, что идет некий процесс обработки
Правильно.
У Вас когда загружается какой-нибудь файл, то ведь этот процесс идёт в конкретной программе или сразу во всём компьютере ?
Вы же можете переключится на другую программу и там нет загрузки файла. Так же и в MDI приложении с окнами (потоками).

Вопрос про курсор

Добавлено: 18 Апрель 2023, 12:05
finsoftrz
Игорь Столяров писал(а): 18 Апрель 2023, 11:34
finsoftrz писал(а): 18 Апрель 2023, 11:26 в чем разница между многопоточными приложениями в 2023 и в 2003 годах
В MDI модели RunTime. Всё-таки для C50 (2003 г.) и C11 (2023 г.) - она разная.
Координальные изменения были в C55 и нормально всё уже работало в C63.
Ну и поддержка на стороне ABC шаблонов. :)
Здрасьте. :-) С5 это 1999 год. 2003 уже релиз С6 вышел, хотя могу ошибаться немного. Изменение многопоточной модели произошли в С6, а в с55 была такая же, как в С5, только они начали ее коверкать для поддержки activeX, в результате чего напоролись на нестабильную работу и решили изменить модель. Можно переформулировать вопрос, в чем разница в между многопоточными приложениями в 2023 и в 2006 годы, чтобы точно попасть. :-)

Вопрос про курсор

Добавлено: 18 Апрель 2023, 12:58
Игорь Столяров
finsoftrz писал(а): 18 Апрель 2023, 12:05 а в с55 была такая же, как в С5
Давно дело было-то ! Был стабильный релиз C50, потом C55 в котором был глючный рантайн который работал только с SDI,
а c MDI падал непредсказуемо - я это всё прошёл на отчётах. И выход C60 был просто спасением.
Там тоже было всё турбулентно, но зато каждую неделю выходили патчи. Что-то такое вспоминается. :)
finsoftrz писал(а): 18 Апрель 2023, 12:05 в чем разница в между многопоточными приложениями в 2023 и в 2006 годы
В RunTime. В доведённых до рабочего состояния шаблонах и классах ABC. В современных в версиях Windows.
Ну конечно кроме мест, где всё сразу было хорошо и жись там на том и остановилась. :)

Вопрос про курсор

Добавлено: 18 Апрель 2023, 13:07
SergioRaguzini
Игорь Столяров писал(а): 18 Апрель 2023, 11:46
SergioRaguzini писал(а): 18 Апрель 2023, 11:40 должен сказать пользователю, что идет некий процесс обработки
Правильно. У Вас когда загружается какой-нибудь файл, то ведь этот процесс идёт в конкретной программе или сразу во всём компьютере ?
Вы же можете переключится на другую программу и там нет загрузки файла. Так же и в MDI приложении с окнами (потоками).
Если я правильно понял вас, вы хотите разный курсор в разных окнах... Но тогда отрабатывайте EVENT:GainFocus в каждом окне

Вопрос про курсор

Добавлено: 18 Апрель 2023, 13:09
SergioRaguzini
Игорь Столяров писал(а): 18 Апрель 2023, 11:46 Правильно. У Вас когда загружается какой-нибудь файл, то ведь этот процесс идёт в конкретной программе или сразу во всём компьютере ?
Вы же можете переключится на другую программу и там нет загрузки файла. Так же и в MDI приложении с окнами (потоками).
Если я правильно понял вас, вы хотите разный курсор в разных окнах... Но тогда отрабатывайте EVENT:GainFocus в каждом окне и там проверяйте установку нужного курсора

Вопрос про курсор

Добавлено: 18 Апрель 2023, 13:14
finsoftrz
Насколько я знаю, ничего в плане многопоточности с 2006 года в кларионе не поменялось.
На мой взгляд, взять в скобки SETCURSOR(CURSOR:Wait) и SETCURSOR непродолжительные операции, действительно, как правило хорошего тона. Почему бы не маякнуть пользователю, что мы что-то там делаем некоторое время. В чем проблема возникла на несколько секунд показать курсор ожидания?