Вход в личный кабинет:

Забыли пароль? | Регистрация

Адреса компании:

Санкт-Петербург

196158, Санкт-Петербург,
Пулковское шоссе, д. 30,
корп. 4, Лит. А, офис 203

Тел: +7 812 414 95 41

Москва

129085, г. Москва, проезд Ольминского, д. 3а, стр. 3, офис 706

Тел: +7 495 616 00 53

Блог

26.08.2015

Progress OpenEdge: промышленные средства репликации данных в Oracle и MS-SQL

Progress OpenEdge Pro2 Replication

Читать далее →




Десять причин перехода на новые версии OpenEdge (Progress)


Как убрать и показать курсор в CHUI программе

Вернуться к списку постов

12.07.2012

Очень часто приходиться сталкиваться с тем,
что во многих интерфейсах курсор появляется в местах,
где его никто не ожидает. Что с этим делать?

Дмитрий Кайдалов

В зависимости от того, в каком порядке будут на экран выводиться данные, скажем в одном фрейме, в CHUI программе (под CHUI подразумеваются программы, которые работают на серверах UNIX/Linux, и доступ к которым осуществляется с помощью эмулятора терминала PuTTY) курсор будет прыгать по нему (фрейму). Это некрасиво и путает пользователя. Появление курсора возле данных, которые можно поменять, для пользователя выглядит как приглашение к редактированию.

def var i as integer.
def var c as char.
def var d as decimal.
display i c d with frame test.
pause 5 no-message.
display c with frame test.
pause no-message.
update i with frame test.

Курсор сначала окажется после поля d, а потом перепрыгнет к полю с. А дальше к полю i. До недавнего времени курсор приходилось постоянно убирать в нижний правый угол экрана, чтобы не мешался (а в самый угол его положить нельзя – можно только с отступом в пару символов).

Данное поведение курсора является следствием неполной конфигурации PROTERMCAP.

За убирание и появление курсора вновь отвечают атрибуты CN и CF. К сожалению в стандартной конфигурации терминалов vt100 и xterm (либо их потомки), которые используются для большинства приложений, отсутствуют такие атрибуты.

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

  :CN=\E[?25h:\
  :CF=\E[?25l:\

После добавления таких строк оказывается, что курсор вообще должен показываться только при вводе каких либо данных. А в остальных случаях его вообще не должно быть.

Безусловно в ABL остаётся возможность манипулировать курсором с помощью операторов:

put cursor off.
put cursor row X column Y.

Именно такой функционал курсора и делает приложение более привлекательным, а пользователям не даёт делать лишних ошибок.

Автор: Дмитрий Кайдалов


Добавить свой комментарий

Ваше имя*:
Ваш E-mail*:
Ваш комментарий*:

Компьютерные системы для бизнеса
© 2010 - 2017 Все права на материалы, находящиеся на этом сайте, охраняются в соответствии с законодательством РФ, в том числе, об авторском праве и смежных правах. При любом использовании материалов сайта ссылка на источник обязательна.