Как запретить выбор из Combo?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 5161
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как запретить выбор из Combo?
Есть контрол Combo. Надо запретить редактирование. Выставил на него ReadOnly, Drop выставил в нуль. Но при селекте на него отрабатываются клавиши "вверх", "вниз". Можно ещё и это запретить? Дизейблить контрол не хотелось бы.
We are hard at work… for you. 

-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
Как запретить выбор из Combo?
может так, в NewSelection или (TakeNewSelection) в зависимости от версии клариона
1. подстановка в момент выбора
2. выставлять значение при выходе из комбо
1. подстановка в момент выбора

Код: Выделить всё
IF Read
?MyPictField{PROP:ScreenText} = CLIP(MyPictField)
FDCB4.TakeNewSelection(?MyPictField)
END
Код: Выделить всё
IF Read
MyFieldDrop = MyField
IF Access:MyFileDrop.TryFetch(MyKeyDrop) = Level:Benign
?MyPictField{PROP:ScreenText} = CLIP(MyPictField)
FDCB4.TakeNewSelection(?MyPictField)
POST(EVENT:Accepted, ?MyPictField)
END
END
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Как запретить выбор из Combo?
В событии EVENT:PreAlertKey что нибудь типа
Код: Выделить всё
CASE KEYCODE()
OF UpKey
OROF DownKey
SETKEYCODE(0)
CYCLE ! не уверен что нужно...
END
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
-
- ✯ Ветеран ✯
- Сообщения: 5161
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как запретить выбор из Combo?
Cycle нужен обязательно. Но всё равно SETKEYCODE(0) не помогает, всё равно отрабатываются эти клавиши. Буфер не очищается при этом, что-ли.
В принципе выкрутиться не проблема, но сам факт, казалось бы элементарная вещь, но по-простому не получается.
В принципе выкрутиться не проблема, но сам факт, казалось бы элементарная вещь, но по-простому не получается.
We are hard at work… for you. 

Как запретить выбор из Combo?
А вставка до Parent call или после? Или это вообще на TakeEvent?
-------------------------------
В истинном золоте блеска нет...
В истинном золоте блеска нет...
-
- ✯ Ветеран ✯
- Сообщения: 5161
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как запретить выбор из Combo?
До Parent Call в EVENT:PreAlertKey. Честно говоря логика здесь есть - перебить нажатие. Но что-то не идёт. Повторюсь, костыли подставляются всё равно. Мне удивительно, что свойство ReadOnly не логично работает в данном случае.
We are hard at work… for you. 

Как запретить выбор из Combo?
Если из combo надо сделать чёрт-те что, так надо это чёрт-те что расположить под этим комбо и скрывать (?{prop:hide}=1) и показывать (?{prop:hide}=0), когда это нужно. Без остальных извратов.
-
- ✯ Ветеран ✯
- Сообщения: 5161
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как запретить выбор из Combo?
Не чёрт-те что, а просто не дать пользователю выбор из комбо в некоторых случаях. Есть, например, ещё режим View для формы, там тоже этот параметр настраиваемый, но там закрываем глаза на это, просто дизейблим кнопку OK. В моём случае так не получается.
We are hard at work… for you. 

- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Как запретить выбор из Combo?
А что нибудь типа ?Combo{PROP:Use} = "" не прокатит ?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Как запретить выбор из Combo?
Вариант с hide/unhide "для некоторых случаев" мне кажется простым и негромоздким.
Оба контрола в этом случае, разумеется, имеют USE() на одну и ту же переменную.
Оба контрола в этом случае, разумеется, имеют USE() на одну и ту же переменную.
-
- ✯ Ветеран ✯
- Сообщения: 5161
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как запретить выбор из Combo?
Значение должно быть, его менять нельзя.Admin писал(а):А что нибудь типа ?Combo{PROP:Use} = "" не прокатит ?
Вариант с hide/unhide "для некоторых случаев" мне кажется простым и негромоздким.
Да, ещё лучше Enable/Disable. Мне просто показалось, что эстетически нехорошо. По-научному - юзабилити хромает. Пользователь не должен задаваться вопросом - почему комбо вдруг стало не подсвеченным, к примеру, хотя он ничего не делал вроде бы, он прошёл этот комбо и пошёл дальше. А вот, если он решит возвратиться, тогда и будет задавать вопросы, но этот случай редкий совсем, представляется пока.
We are hard at work… for you. 

-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Как запретить выбор из Combo?
Добрый день!
Иногда hide/unhide и т д не катит.
Так как пользователь должен видеть конкретное значение в комбо,
но его менять не может.
Я в таком случае делаю disable, немного не эстетично, но работает)
Можно еще на это место положить строковую переменную, значение которой будет видно
на месте комбо (а он hide и не забыть его еще и disable)
Алексей
Иногда hide/unhide и т д не катит.
Так как пользователь должен видеть конкретное значение в комбо,
но его менять не может.
Я в таком случае делаю disable, немного не эстетично, но работает)
Можно еще на это место положить строковую переменную, значение которой будет видно
на месте комбо (а он hide и не забыть его еще и disable)
Алексей
Как запретить выбор из Combo?
Помнится, по Event:Selected подменял список Prop:From на пустой или на строку, содержащую ровно одно текущее значение комбы.
А заблокировать обновление в текстовом поле не проблема...
А заблокировать обновление в текстовом поле не проблема...
Как запретить выбор из Combo?
Ещё вроде бы Prop:Drop можно обнулить, после чего COMBO превращается в более-менее обычное Entry-поле . Но деталей, увы, не помню...
-
- ✯ Ветеран ✯
- Сообщения: 5161
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Как запретить выбор из Combo?
Я примерно так и сделал пока. По Event:Selected перестраивается Комбо-очередь и в ней остаётся одна запись, текущая (либо не одна, если другое условие).Yufil писал(а):Помнится, по Event:Selected подменял список Prop:From на пустой или на строку, содержащую ровно одно текущее значение комбы.
А заблокировать обновление в текстовом поле не проблема...
prop:Drop обнулил, комбо срабатывает на клавиши вверх-вниз, с чего началась тема.Yufil писал(а):щё вроде бы Prop:Drop можно обнулить, после чего COMBO превращается в более-менее обычное Entry-поле . Но деталей, увы, не помню...
We are hard at work… for you. 
