Имя: Пароль:
1C
1C 7.7
v7: Как определить позицию курсора в текстовом поле?
0 deputat
 
18.11.17
11:34
сабж.

Что-то ничего не могу найти подходящего.
1 Злопчинский
 
18.11.17
14:13
Нету штатно такого
2 Злопчинский
 
18.11.17
14:15
Только ручками отлавливать нажатия клавиш
Да и сомневаюсь я что надо это

Смысл задачи?
3 deputat
 
18.11.17
14:30
(2) есть реквизит типа строка.
введены слова через пробел. Хотят: на то слово на какое слово поставили курсор - перенести его влево или вправо. Если определить где стоит курсор проблемы бы не было.
4 Злопчинский
 
18.11.17
16:30
(3) поменяй принцип ввода чтобы слово сразу было на нужном месте
5 Злопчинский
 
18.11.17
16:30
Есть решение
6 deputat
 
18.11.17
22:20
(4) в принципе так и вводят, но просят такую фишку сделать.
(5) это очень интересно.
7 Злопчинский
 
18.11.17
22:56
(6) форма для ввода
Одно поле для ввода
Активный элемент всегда известен
В поле ввода ловишь формексом нажатие пробела, по этому факту создаешь формексом ещё одно поле и пощиционируешь в него курсор. Итд.
То есть в поле вводится неразрывное слово всегда. После завершения редактирования поля   по пробела автосозданип очередного поля для ввода очередного слова. А дальше как поменять при необходимости слова между полями - простор для творчества.
Мастера может более простой способ подскажут
Но имхо плохое решение у автора.
Похоже на попытку автоматизации бардака типа мы не знаем что вводим , когда введем тогда посмотрим и решим что делать
8 Злопчинский
 
18.11.17
22:57
Вариантов решения я предложил бы два в соответствии со здравым смыслом, ореиентировпнным на то, что единовременно надо делать одну щадачу
9 Злопчинский
 
18.11.17
23:00
Первый вариант
Формализовать процесс составления вводимой строки и обеспечить разумную невозможность ввода кривых значений которые требуют последующей обработки.
Как именно организовать правильный ввод - зависит от специфики.
10 Злопчинский
 
18.11.17
23:03
Второй вариант
Если у людей в голове тараканы и они не могут внятно сформулировать что и как и почему им надо - чтобы можно было формализовать задачу тогда делаем просто
Пусть люди выпустят своих тараканов на волю
11 Злопчинский
 
18.11.17
23:03
То бишь бьют в поле вввода мутную не формализованных хрень
12 Злопчинский
 
18.11.17
23:06
По завершению ввода в поле - парсишь введенную строку по пробелами
Получаешь список слов
И из слов юзверь уже собирает нужную конструкцию.
Довольство пользователей здесь обеспечивается удобством инструментария конструирования нужного порядка слов
13 Злопчинский
 
18.11.17
23:11
Я полагаю что по первому варианту вряд ли выйдет ввиду того что никто не сможет внятно сформулировать правила шаблонировпния ввода
Поэтому второй вариант
Может спецы предложат другой вариант
Возможны промежуточные варианты
Например отлавливать ввод букв в поле и введенные слова отображать текстом вверху
А по нажатию клавиш менять порядок слов в показываемой строке не меняя ничего в поле ваодп
14 deputat
 
20.11.17
09:18
(12) вопрос не в завершении ввода... А поставил курсор туда куда надо, взял позицию курсора и по кнопке сделал что нужно.
15 Ёпрст
 
20.11.17
09:22
(0) помести активикс на форму. Там всё есть.
16 deputat
 
20.11.17
09:37
(15) в formex такого нет. А как для 7 активих поместить?
17 Ёпрст
 
20.11.17
09:37
хотя бы Forms.TextBox.1
ну или любой другой, который работает с текстом.
18 Ёпрст
 
20.11.17
09:38
(16)

Процедура ПослеОткрытия()
    АтрФормы = СоздатьОбъект("АктивИкс");
    АтрФормы.УстановитьАтрибут(Форма, "тТекст");
    тТекст=АтрФормы.СоздатьЭУ("Forms.TextBox.1");
    тТекст.Text="Вася лошпед";
КонецПроцедуры
19 trdm
 
20.11.17
09:51
Заявка - явный перебор.
Научи их старому кунг-фу с ctrl+shift+(end|home|left arrow|right arrow) и все.
20 trdm
 
20.11.17
09:52
Если еще кунфу без шифта: ctrl+(end|home|left arrow|right arrow).
21 Злопчинский
 
20.11.17
15:23
(14) тут как раз вопрос в позиции курсора в поле
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн