Добрый день.
Помогите пожалуйста в решении такой задачи:
На событии OnKeyUp проверяется некое условие, если оно верно, то в поле нужно вставить строку и продолжыть ввод текста с клавиатуры. Но при вставке строки, курсор оказывается в начале строки, а нужно чтобы он был в конце. Можно ли это реализовать? Можно ли вызвать событие то же событие, что выполняется при нажатии на кнопку END?
Terrasoft 3.4.0.130

Нравится

3 комментария

Здравствуйте, Юрий!

Для решения проблемы рекомендую Вам обновиться до последней версии 3.4.1.

Для того, чтобы получить файлы обновления на эту версию, обратитесь, пожалуйста, в службу поддержки Terrasoft - напишите электронное письмо на адрес: support@terrasoft.ru.

И как мне это поможет?

Здравствуйте, Юрий!

Я предположила, что в последней версии 3.4.1, данное событие отрабатывает иначе, чем в 3.4.0.130, но, к сожалению, в этой версии поведение курсора аналогичное.

Решить данную задачу можно таким образом.

Вместо контрола Edit используйте MemoControl. В обработчике OnKeyUp пропишите такой код:

function edtMemoControl1OnKeyUp(Control, Key, Shift) {
var saveValue = Control.Value;
Control.Value = "";
Control.SelectedText = "@" + saveValue;
}

Для того, чтобы в MemoControl не срабатывал переход на новую строку в свойстве WordWrap установить значение False и в обработчике события OnKeyPress написать код:

function edtMemoControl1OnKeyPress(Control, Char) {
if (Char.Value == 13) {
Char.Value = 0;
}
}

Показать все комментарии