|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
Доброго времени суток. Столкнулся с задачей - заблокировать возможность вставки в конкретное поле на форме. Ввод должен осуществляться исключительно вручную. Первое, что мне захотелось сделать - поймать нажатие кнопок Ctrl (или комбинации Ctrl+V) и Shift (соответствующая комбинация: Shift+Insert). Подскажите как это можно сделать или предложите другой вариант решения проблемы. Заранее спасибо. Используемая среда: Oracle Forms 6i. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 06:48 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
Триггера на отлов нажатия любых клавиш у Forms нет. Можно сделать Java Bean или PJC. Но само желание довольно странное - не user friendly. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 08:54 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
Как вариант - чистить буфер обмена, но это тоже не тривиально - вроде команды clear_region нет, но есть копирования в буфер ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 09:01 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
Алымов АнатолийКак вариант - чистить буфер обмена, но это тоже не тривиально - вроде команды clear_region нет, но есть копирования в буфер Из простого: В триггере WHEN-NEW-ITEM-INSTANCE нужного элемента сделать: Код: plsql 1. 2. 3.
Это очистит буфер обмена, но и значение самого элемента. Можно это реализовать на каком-нибудь другом элементе ввода и сделать go_item на нужный ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 09:07 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
enerty, если нет желания делать PJC, который игнорирует Ctrl+V, то как вариант можно: не помню как в 6i, вроде там тоже есть fmrpcweb.res и fmrpcweb_utf8.res, прописать там комбинацию Ctrl+V и повесить триггер на айтем внутри которого null; эта идея похожа на рабочую... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 09:23 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
Алымов Анатолий, я тоже об этом сначала подумал, но там можно в 2 окна работать. При входе буфер почистится, а вот при смене окна уже нет. Так что не вариант. Все равно спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 10:46 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
OldBoyOdeSu, Можно по-подробнее? Я недавно начал осваивать Oracle Forms. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 10:48 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
enertyАлымов Анатолий, я тоже об этом сначала подумал, но там можно в 2 окна работать. При входе буфер почистится, а вот при смене окна уже нет. Так что не вариант. Все равно спасибо. Можно и по таймеру очищать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 10:56 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
Алымов АнатолийenertyАлымов Анатолий, я тоже об этом сначала подумал, но там можно в 2 окна работать. При входе буфер почистится, а вот при смене окна уже нет. Так что не вариант. Все равно спасибо. Можно и по таймеру очищать. Или по WHEN-WINDOW-ACTIVATED ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 10:58 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
WHEN-NEW-ITEM-INSTANCE не панацея; 1)Item получил фокус, сработал WHEN-NEW-ITEM-INSTANCE; 2)Юзер открыл блокнот, скопировал оттуда текст; 3)Юзер свернул блокнот; 4)Юзер нажал Ctrl-V и текст успешно вставится, триггер WHEN-NEW-ITEM-INSTANCE не срабатывает; самое грамотное написать PJC, расширяющий базовый тип oracle.forms.ui.VTextField, там работы то на пару минут. Если нет желания (или возможности) связываться с Java, то как вариант прописать эту комбинацию для формсов, чтоб при нажатии на неё форм вызывал триггер который ничего не делает, глянь http://gskaushik.blogspot.ru/2009/05/oracle-terminal-reference-forms-6i.html так же попробуй вбить в гугл oracle forms 6i key mapping, у меня 11 формс, с 6 не работал ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 12:27 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
PJC работает только в клиент-серверной архитектуре. Не знаю как у автора используются формы, под application-сервером или локально. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 13:25 |
|
Отслеживание нажатой клавиши
|
|||
---|---|---|---|
#18+
OldBoyOdeSuWHEN-NEW-ITEM-INSTANCE не панацея; 4)Юзер нажал Ctrl-V и текст успешно вставится, триггер WHEN-NEW-ITEM-INSTANCE не срабатывает; На этот случай я и написал, про WHEN-WINDOW-ACTIVATED. А менять назначения клавиш для всех форм слишком уж ради одного поля - в других формах наоборот может активно использоваться вставка из буфера. Необходимо также учесть, что сочетаний несколько. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2013, 13:31 |
|
|
start [/forum/topic.php?fid=51&msg=38360396&tid=1878294]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
127ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 233ms |
total: | 455ms |
0 / 0 |