|
Как получить положение каретки в поле ввода | ☑ | ||
---|---|---|---|---|
0
MaxisUssr
17.07.13
✎
11:15
|
Как?
|
|||
1
Wobland
17.07.13
✎
11:17
|
на зачем?
|
|||
2
MaxisUssr
17.07.13
✎
11:20
|
(1)
Есть тут одна задача - поставить цифру в качестве горячих клавиш, из-за этого появляются проблемы с полями ввода... Если сильный гемор будет - придется задачу переформулировать |
|||
3
AdrianBerk
17.07.13
✎
11:25
|
то есть пользователь нажимает цифру 6 например, но она не должна вводиться в полле вода а должно отрабатываться какое либо событие??? может лучше огласить первоначальную задачу. Я думаю должен быть способ решить ее изящно =)
|
|||
4
Wobland
17.07.13
✎
11:26
|
а если юзер всё же сильно захочет ввести цифру 6, он может написать строкой "шесть"?
|
|||
5
AdrianBerk
17.07.13
✎
11:27
|
неужели юзеру трудно нажать вместе с цифрой шесть например alt или ctrl =)
|
|||
6
palpetrovich
17.07.13
✎
11:28
|
а что такое "положение каретки в поле ввода"?
активно-ли в данный момент поле ввода или в каком именно месте поля ввода находится курсор? |
|||
7
mzelensky
17.07.13
✎
11:28
|
(2) "поставить цифру в качестве горячих клавиш" - это как? Проста назначить горячую клавишу?
|
|||
8
AdrianBerk
17.07.13
✎
11:33
|
может это поможет....
Расширение поля формы для поля ввода (Form field extension for a text box) ПолучитьГраницыВыделения (GetTextSelectionBounds) Синтаксис: ПолучитьГраницыВыделения(<НачалоСтроки>, <НачалоКолонки>, <КонецСтроки>, <КонецКолонки>) Параметры: <НачалоСтроки> (обязательный) Тип: Число. Номер строки начала выделения. <НачалоКолонки> (обязательный) Тип: Число. Номер колонки начала выделения. <КонецСтроки> (обязательный) Тип: Число. Номер строки конца выделения. <КонецКолонки> (обязательный) Тип: Число. Номер колонки конца выделения. Возвращаемое значение: Возвращает позицию курсора. Описание: Получает границы выделенной области текста. |
|||
9
MaxisUssr
17.07.13
✎
11:34
|
Оглашу задачу:
есть панель телефонии, она работает. Идет много входящих звонков. При нажатии на цифру должна браться трубка с канала, указанного в цифре (1, 2) (8) Попробую щас, спасибо!! |
|||
10
AdrianBerk
17.07.13
✎
11:43
|
А вообще... нажимать на цифру чтобы поднять трубку.... при том что цифра еще и в поле ввода.... как то... или я не понял до конца... в моем понимании должен быть кнопочный графический интерфейс... просто кнопка с названием канала, а уж она отрабатывает событие... зачем усложнять...
|
|||
11
MaxisUssr
17.07.13
✎
11:44
|
(10)
Кнопка есть, но она мелкая - им не удобно на нее жать. Поле ввода в форме одно - поле ввода номера телефона - для него и ввожу исключение. |
|||
12
AdrianBerk
17.07.13
✎
11:48
|
Сделай отработку события по двойному щелчку по данному полю... а цифры анализируй сам программно, на какой канал там послать звонок... двойной клик же отличается от ввода и редактирования текста... и не будет заморочек... или им принципиально с клавиатуры нажимать?
|
|||
13
MaxisUssr
17.07.13
✎
11:51
|
(12)
Принципиально с клавиатуры, НЕ интерактивно |
|||
14
MaxisUssr
17.07.13
✎
12:03
|
В общем выкрутился так:
Процедура ГорячаяКлавиша(Кнопка) Цифра = Число(Прав(Кнопка.Имя, 1)); СтрокаНач=0; СтрокаКон=0; КолонкаНач=0; КолонкаКон=0; Если ТекущийЭлемент = ЭлементыФормы.НомерАбонента тогда ТекущийЭлемент.ПолучитьГраницыВыделения(СтрокаНач, СтрокаКон, КолонкаНач, КолонкаКон); ДоВыделения = Лев(ТекущийЭлемент.Значение , СтрокаКон - 1); ПослеВыделения = Прав(ТекущийЭлемент.Значение , СтрДлина(ТекущийЭлемент.Значение) - (СтрокаКон - 1)); НаВывод = ДоВыделения + Цифра + ПослеВыделения; ТекущийЭлемент.Значение = ""; ТекущийЭлемент.ВыделенныйТекст = НаВывод; //Цифра; //Строка(ТекущийЭлемент.Значение); Если СтрДлина(НаВывод) > СтрокаКон тогда ТекущийЭлемент.УстановитьГраницыВыделения(СтрокаКон + 1, СтрокаКон + 1); КонецЕсли; Возврат; КонецЕсли; Если Цифра > 0 тогда ПринятьЗвонок(Цифра); ИначеЕсли Цифра = 0 тогда КонецЕсли; КонецПроцедуры |
|||
15
palpetrovich
17.07.13
✎
12:11
|
хм, зачем все это:
... Возврат; КонецЕсли; ... ИначеЕсли Цифра = 0 тогда КонецЕсли; |
|||
16
AdrianBerk
17.07.13
✎
12:18
|
=) главное что работает, к большинству красота и правильность кода приходит с опытом, и лишь единицы рождаются уже зная весь синтаксис 1С =)
|
|||
17
MaxisUssr
17.07.13
✎
12:30
|
(15)
Это недописанные куски - там будет еще код, я показал лишь то, о чем спрашивал |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |