Задачка про фокус ввода

Форум 1С: Одинэс.Ру

Найти!

Задачка про фокус ввода

Чучундер
05.03.2009 - 05:15
итак, имеется следующая задачка:
- Обработка внешняя, модальная,
- на форме ТЗ и две кнопки для листания ТЗ вверх и вниз
- поле ввода, по энтеру на котором отрабатывает некая процедура.
..
требуется: фокус ввода постонно держать в поле ввода.
решил через ложное закрытие которое отрабатывает при перерисовке экрана
- все хорошо, только не ловит когда фокус уходит из поля ввода Tab'ом на другой элемент (на кнопку, например).. как забороть?
К списку тем 1 2 > К списку форумов

Интересные темы

odines.ru
25.10.2020 - 21:47
Смотри также:
Как же так базу скопировать?
Проблема с уникальностью номеров документов
Добавление реквизитов в счет

Re: Задачка про фокус ввода

nordbox
1 - 05.03.2009 - 05:30
Дык при обработки всех процедур в конце процедур напиши Форма.Активизировать(Реквизит);
Фчем проблема то?

Re: Задачка про фокус ввода

vip
2 - 05.03.2009 - 05:40
(0) Я тебе уже отвечал на мисте.
А для перехвата Tab используй FormEx ПриНажатииКнопкиКлавиатуры()

Re: Задачка про фокус ввода

nordbox
3 - 05.03.2009 - 05:59
Без формекса легко решается
я такое делал, немного рихтовал Штрих-М кассир
задача была такая
Нужно было прикрутиь в режиме регистрации продаж кнопку на форму
но что бы после нажатия кнопки фокус передвался куда надо.
Я прикрутил кнопку, после чего пришпадорил в конец процедуры
форма.Активизировать...
Все работает и хлопают в ладоши

Re: Задачка про фокус ввода

Чучундер
4 - 05.03.2009 - 06:08
(3) хитрый какой!!!
а как обойти ошибку типа "активизировать() не может быть вызвана в данном контексте"???

Re: Задачка про фокус ввода

nordbox
5 - 05.03.2009 - 06:13
Это почему такая ошибка вылетает?
Теперь говори подробнее
что да как
Мне уже самому интересно потому что у меня такой ошибки нет.
я расскажу как шел к своему решения, у меня ушло 5 минут на решение.

Интересные темы

odines.ru
25.10.2020 - 21:47
Смотри также:
Присвоить перечисление :(
Алкоголь....
ПУБ: есть ли правила для ввода сивола слэш?

Re: Задачка про фокус ввода

vip
6 - 05.03.2009 - 06:15
(3) И с Tab'ом легко решается?
(4) При твоей вводной такой ошибки не будет.

Re: Задачка про фокус ввода

Чучундер
7 - 05.03.2009 - 06:26
сейчас смастрячу демку и выложу - на ней можно тренироваться будет

Re: Задачка про фокус ввода

nordbox
8 - 05.03.2009 - 06:34
(6) Тут у меня немного обратная функция была
Суть: монитор "пальцодав" (не важно какой, непомню)
Нужно было на форме разместить кнопку что бы при нажатии на монитор
генерилось нажатие комбинации кнопок
тут без формекса конечно не обошлось но он нужен был чтобы генерить нажатие
а не для фокуса.
Я прикрутил кнопку, в процедуре нажатия прописал формексовскую процедурку
а после выполнения Форма.активизировать.....
Так как Штрих своей обработкой обрабатывает нажатие Enter на форме что бы пробивался чек то соответственно нужно вернуть на место фокус
я приделал еще одну кнопку, сделал ее невидимой прописал пустую процедуру
И теперь после нажатия пальцем по экрану происходит выполнения процедуры поКнопке после чего фокус возвращается на пустую (невидимую кнопку) и соответственно не мешает нажатия Enter Штриху

Re: Задачка про фокус ввода

vip
9 - 05.03.2009 - 06:36
(8) Ты про Tab ответь.

Re: Задачка про фокус ввода

Чучундер
10 - 05.03.2009 - 07:00
http://slil.ru/27023553
запускаем обработку - надо чтобы при энтере (после энтера) и других управляющих клавиш bn тыканий мышой __фокус ВСЕГДА должен быть в поле ввода__ - т.е. когда я жму энтер - из поля ввода должны приниматься данные
..
сейчас табом можно уйти из поля ввода и энтер придется не в поле ввода, также можно установить курсор-фокус на ТЗ - и энтер придется не в поле ввода.
..
желательно без изаращений. формекс, в принципе, допустим

Re: Задачка про фокус ввода

nordbox
11 - 05.03.2009 - 07:08
(8) Про Таб идругие управляющие не скажу, задачи такой небыло
поупражняюсь тогда отвечу.
(10) Кинь на мыло а то у меня админы на slil закрыли:))

Re: Задачка про фокус ввода

Ёпрст
12 - 05.03.2009 - 07:20
(0) Тупо повесь хот-кей от Tab на кнопку и привет...

Re: Задачка про фокус ввода

Чучундер
13 - 05.03.2009 - 07:20
(11) блин, глаза как утюги и уже отконнектился от сырцов... после обеда или вечером

Re: Задачка про фокус ввода

nordbox
14 - 05.03.2009 - 07:21
(10) Можно по упражнятся с формексом C:
Процедура ПриНажатииКнопкиКлавиатуры(<?>,,,,,,)
КонецПроцедуры
Синтаксис:
Процедура ПриНажатииКнопкиКлавиатуры(<Контекст>,<КодКлавиши>,<Alt>,<Shift>,<Ctrl>,<Символ>,<ФСО>)
КонецПроцедуры
И ПОТОМ
Доступность
Синтаксис:
Доступность
Назначение:
Доступ к значению доступности атрибута формы. Атрибут для чтения/записи.
Пример:
ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.УстановитьФорму(Форма);
Для Х = 0 По ФормаРасш.КоличествоАтрибутов() - 1 Цикл
  ФормаРасш.ПолучитьАтрибут(Х).Доступность = 0;
КонецЦикла;
 

Re: Задачка про фокус ввода

nordbox
15 - 05.03.2009 - 07:24
(12)Дык ему надо что бы после любой управляющей попадало на поле ввода.

Re: Задачка про фокус ввода

vip
16 - 05.03.2009 - 07:27
(10) Чучундер не читатель, Чучундер писатель?
//перехват Tab
Процедура ПриНажатииКнопкиКлавиатуры(КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
Если КодКлавиши=9 Тогда
    ФСО=0;
КонецЕсли;
КонецПроцедуры
//перехват мыши на ТЗ
Процедура ПриНажатииЛевойКнопки(Сост,X,Y,ФСО)
Атр=ФормаР.ПолучитьАтрибутПоКоординатам(X,Y);
Если ПустоеЗначение(Атр)=1 Тогда
    Возврат;
КонецЕсли;
Если Атр.Идентификатор="ТЗ" Тогда
    ФСО=0;
КонецЕсли;
КонецПроцедуры

Re: Задачка про фокус ввода

nordbox
17 - 05.03.2009 - 07:37
(16) тогда уж и про остальное надо не забыть
Процедура ПриНажатииПравойКнопки(<?>,,,,)
КонецПроцедуры
Процедура ПриДвойномНажатииПравойКнопки(<?>,,,,)
КонецПроцедуры
Процедура ПриДвойномНажатииЛевойКнопки(<?>,,,,)
КонецПроцедуры
И т.д.

Re: Задачка про фокус ввода

vip
18 - 05.03.2009 - 07:46
(17) В данном конкретном примере это лишнее.

Re: Задачка про фокус ввода

Мухрю
19 - 05.03.2009 - 08:02
В выложенной обработке достаточно добавить одну строку, чтобы заработало как хочется.

Re: Задачка про фокус ввода

vip
20 - 05.03.2009 - 08:09
(19) Поделись.

Re: Задачка про фокус ввода

Мухрю
21 - 05.03.2009 - 08:15
http://zalil.ru/upload/27023778

Re: Задачка про фокус ввода

Reaper
22 - 05.03.2009 - 08:24
Мужики, напомните - в св-вах эл-тов диалога на вкладке "дополнительно" галка  "пропускать при вводе" что делает?

Re: Задачка про фокус ввода

Ёпрст
23 - 05.03.2009 - 08:27
(20)
 
Функция фФокусШК()
Форма.Обновить(0); // вот она родимая
 
ЗЫ: Но проц это будет вешать, мама-не горюй...

Re: Задачка про фокус ввода

vip
24 - 05.03.2009 - 08:30
(21)(23) А теперь все вместе подвигаем курсор на ТЗ кнопами с тругольничками.
И доложим результат.

Re: Задачка про фокус ввода

Ёпрст
25 - 05.03.2009 - 08:40
(24) даже лень смотреть, если честно...
Автор по-ходу для кпк пишет софт, да его еще и продаст потом, пусть  сам морочится :)

Re: Задачка про фокус ввода

vip
26 - 05.03.2009 - 08:50
(25) Ну... Я тебя не узнаю.:))
Ладно, скажу - результат хреновый.

Re: Задачка про фокус ввода

Duke1C
27 - 05.03.2009 - 08:53
(22) Пропускает элемент, если переход выполняется клавишей Enter

Re: Задачка про фокус ввода

Duke1C
28 - 05.03.2009 - 09:15
Чучундер, а ежели не секрет, просвяти, что за объект такой глГенераторСобытий?

Re: Задачка про фокус ввода

Чучундер
29 - 05.03.2009 - 12:28
(25) вам не продам! вы со снеговиком чтоб мучались! ;-)
(28) ааааа... это есть такая фича... пока в тестировании..
самое интересное, что мне не удалось запустить обработкуОжидания - при ложном закрытии она "обрубается" почему-то...
...
(16) надо попробовать...

Re: Задачка про фокус ввода

Чучундер
30 - 05.03.2009 - 12:37
а в формекск реакция на мышу будет отлавливать тыканье пальцем в сенсорный экран?

Re: Задачка про фокус ввода

Duke1C
31 - 05.03.2009 - 12:45
(29) Что такая секретная фича?
(30) "Ну и запросы у вас" - сказала база данных и зависла...
У каждого же здесь сидящего есть минимум по одному сенсорному экрану, как раз для тестов :-)
P.S. Не забудь отписаться про результаты

Re: Задачка про фокус ввода

nordbox
32 - 05.03.2009 - 13:02
Процедура ПриДвиженииМыши(<?>,,,,)
КонецПроцедуры
Синтаксис:
Процедура ПриДвиженииМыши(<Контекст>,<Состояние>,<КоординатаПоГоризонтали>,<КоординатаПоВертикали>,<ФСО>)
КонецПроцедуры
Назначение:
Предопределенная процедура движения мыши поверх формы.

Re: Задачка про фокус ввода

vip
33 - 05.03.2009 - 13:02
(29) Кули там пробовать, трясти надо.
(30) Не тыкал. Тыкай сам, обленился совсем. Но может там не мышиное событие, а клавиатурное.

Re: Задачка про фокус ввода

vip
34 - 05.03.2009 - 13:04
(32) И шо?
Весь als вывалишь постепенно?

Re: Задачка про фокус ввода

nordbox
35 - 05.03.2009 - 13:40
(34)
:)))))
Ну так наверное у Чучундрер'а нету поэтому и спрашивает

Re: Задачка про фокус ввода

nordbox
36 - 05.03.2009 - 13:42
+35
ему скачать наверное лень
проще спросить
если бы он дал мыл на худой конец я бы выслал

Re: Задачка про фокус ввода

nordbox
37 - 05.03.2009 - 14:04
Чучундер, формексу глубоко пох.. каким образом указатель попадет в нужную точку хоть ты кнопками будешь указатель мыши двигать хоть по экрану лупить кулаком.
Делаешь слежение за мышкой, потом как только мышка появится в нужной точке запускаешь процедуру эмуляции клавиатуры(какой нибудь хот кей)
и наслаждаешься полетом.
ЭмулироватьКлавиатуру(<?>,,)
Синтаксис:
ЭмулироватьКлавиатуру(<Строка>,<Ждать>,<Раскладка>)
Назначение:
Метод предназначен для программной эмуляции нажатий кнопок на клавиатуре.
Параметры:
<Строка> - строка для отсылки в буфер клавиатуры (подробнее см. документацию по методу SendKeys из WSH);
<Ждать> - необязательный флаг: 1 - продолжать программу только после обработки сообщения клавиатуры Windows; 0 - продолжить выполнение, не дожидаясь обработки сообщения (по умолчанию).
<Раскладка> - необязательный параметр. Строка с наименованием раскладки или число, соответствующее следующим раскладкам:
1 - "English (United States)" (по умолчанию);
2 - "Russian";
3 - "Ukrainian";
4 - "Belarusian";
5 - "German (Germany)";
6 - "French (France)".
Пример:
Процедура МаксимизироватьОкно()
   Сервис = СоздатьОбъект("Сервис");
   Сервис.SendKeys("%");
   Сервис.SendKeys("{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
КонецПроцедуры

Re: Задачка про фокус ввода

nordbox
38 - 05.03.2009 - 14:50
В общем извращаться можно как угодно дерзай
как победишь все расскажи хоть что сотворил:)

Re: Задачка про фокус ввода

vip
39 - 05.03.2009 - 14:59
(38) Хотя я с Чу и цапаюсь иногда, но, поверь, знаний и умений у него достаточно. И als'ы он читать тоже умеет.
Просто его бывает слегка заносит на поворотах.

Re: Задачка про фокус ввода

nordbox
40 - 05.03.2009 - 15:03
(39) я в этом и несомневаюсь даже

Re: Задачка про фокус ввода

Чучундер
41 - 05.03.2009 - 22:07
(39) спсб. у меня просто масса большая,Ю потому и заносит! ;-)
спасибо всем, буду пробовать/думать, результаты выложу в виде статьи на ИС

Re: Задачка про фокус ввода

Чучундер
42 - 06.03.2009 - 16:29
(16) вроде все заборол как надо. Спсб.
остался вопрос: как запретить движение мыши по ТЗ, но разрешить на бегунке ТЗ?

Re: Задачка про фокус ввода

Чучундер
43 - 06.03.2009 - 16:58
(42) вопрос чисто теоретический!

Re: Задачка про фокус ввода

Buhta
44 - 06.03.2009 - 18:46
(53) ОФФ: Ты почему "недоступен"?

Re: Задачка про фокус ввода

VZ
45 - 06.03.2009 - 19:11
Лена заблудилась... Что праздники делают...

Re: Задачка про фокус ввода

Buhta
46 - 06.03.2009 - 20:05
(45) Да вроде не заблуждалась:) Просто хотела Чучундера завтра на шашлыки пригласить, а у него телефон не в сети

Re: Задачка про фокус ввода

VZ
47 - 06.03.2009 - 20:35
Хорошо ему... А я вообще никак конфигуратор открыть себя заставить не могу :(
Позавчера у одной тетки по памяти без раздумываний и поисков сделал "НДФЛ 2009", обрадовался... Даже в цену не включил.
А на следующий день опять руки не поднимаются. О как...

Re: Задачка про фокус ввода

Buhta
48 - 06.03.2009 - 20:45
(47) Тогда приезжай на шашлыки:)

Re: Задачка про фокус ввода

Чучундер
49 - 07.03.2009 - 00:01
(48) мобила села, а зарядка - хз...

Re: Задачка про фокус ввода

vip
50 - 07.03.2009 - 07:46
(42) Наконец-то дождался спсб ;)
Пжлст.
Про бегунок не понял. Зачем тогда кнопки с тругольничками прилепил?
К списку тем 1 2 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« про пропатчивание файла BkEnd.dll........ Темринальный сервер 7.7-8 под win 2003 »
© 2009 Форум 1С: Одинэс.Ру