incremental locator

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Ольга

incremental locator

Сообщение Ольга »

Возникла некая проблемка - есть бровз с ключом по 4-м полям.
Первое поле range limit по single value, по второму полю сделан инкрементальный локатор (числовое поле). На бровз повешен alert key (enterKey, SpaceKey, MouseLeft2), по алерту происходит переход на другой контрол, где и производится обработка выбранной записи.
Когда локатор находит введенное значение, нажатие любого из этих alertKey выполняет нужные действия, и полоса подсветки остается на найденной записи. Это прекрасно. Но - если я после нахождения локатором записи - вручную выберу другую запись (поле локатора неуникально определяет нужную запись) и нажму любой alertKey, то переход на другой контрол произойдет, но полоса подсветки сбросится на первую запись в бровзе, что меня совершенно не устраивает - теряется выбранная запись.
Не могу никак побороть это. Только двойной клик на записи, выбранной вручную, не сбрасывает подсвеченную запись, но это неудобно, нужно клавой выполнять переход.
СЕЕ 6.3, АВС
В чем тут дело? Помогите плиз...

С Уважением Ольга
Аватара пользователя
Tolusha
Активист
Сообщения: 123
Зарегистрирован: 11 Январь 2006, 16:50
Откуда: Украина, г. Черкассы
Контактная информация:

Сообщение Tolusha »

Можно попробовать так:
перед обработкой AlertKey выполнить команду изменения значения локатора на значение поля из ListBox.

Код: Выделить всё

Change(BRW1::Sort0:Locator.Control, MyFile:MyField2)
Анатолий.
Ольга

Сообщение Ольга »

т.е. это совершенно нормальное поведение бровза? Спасибо, буду пробовать...

Спасибо, Ольга
Ольга

Сообщение Ольга »

оказалось, достаточно перенести переход на другой контрол в prealertkey и перед ним добавить Change(?locator, нужное_значение).

Спасибо, огромное!
Ольга

Сообщение Ольга »

Оказалось недостаточно :( - неправильно обрабатывалась ситуация, когда найденных значений было больше 1, тогда нажатие alert key устанавливало подсветку на первую найденную запись и соответственно сбивало выбор.
Решилось вставкой нужного перехода в brw6.takekey до родительского метода и возвратом из метода TRUE.

С уважением Ольга
Ответить