Добрый день.
Помогите пожалуйста в решении такой задачи:
На событии OnKeyUp проверяется некое условие, если оно верно, то в поле нужно вставить строку и продолжыть ввод текста с клавиатуры. Но при вставке строки, курсор оказывается в начале строки, а нужно чтобы он был в конце. Можно ли это реализовать? Можно ли вызвать событие то же событие, что выполняется при нажатии на кнопку END?
Terrasoft 3.4.0.130
Нравится
Здравствуйте, Юрий!
Для решения проблемы рекомендую Вам обновиться до последней версии 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;
}
}