| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Чт 22 Май, 2008 6:38:58 Заголовок сообщения: Экран RSView32 и нажатие Enter |
|
|
| Добрый день. Есть проект, в котором есть экран. На этом экране находится порядка 100 стандартных кнопок. Ни одна из них не выделенна. Нажимаем курсором мыши на любом пустом месте экрана. После этого нажимаем Enter - и одна из кнопок срабатывает. Что для нас не есть хорошо. В чем может быть проблема? Вроде бы все перерыли в проекте - нигде ничего подобного не прописано. |
|
| Вернуться к началу |
|
 |
Kondratiev Постоянный участник


Зарегистрирован: Dec 04, 2005 Сообщения: 79 Рейтинг: +1/-0 Откуда: Мариуполь, Киев
|
Добавлено: Чт 22 Май, 2008 7:43:54 Заголовок сообщения: Re: Экран RSView32 и нажатие Enter |
|
|
| kempo писал(а): | | Добрый день. Есть проект, в котором есть экран. На этом экране находится порядка 100 стандартных кнопок. Ни одна из них не выделенна. Нажимаем курсором мыши на любом пустом месте экрана. После этого нажимаем Enter - и одна из кнопок срабатывает. Что для нас не есть хорошо. В чем может быть проблема? Вроде бы все перерыли в проекте - нигде ничего подобного не прописано. |
а срабатывает одна и та же??? может просто в свойствах экрана цвет рамки на выделенной кнопке с фоном совпадает???
( уж простите за такое предположение )
а если нажимаете ДО нажатия мышью- че случается?? |
|
| Вернуться к началу |
|
 |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Чт 22 Май, 2008 7:50:00 Заголовок сообщения: Re: Экран RSView32 и нажатие Enter |
|
|
| Kondratiev писал(а): |
а срабатывает одна и та же??? может просто в свойствах экрана цвет рамки на выделенной кнопке с фоном совпадает???
( уж простите за такое предположение )
а если нажимаете ДО нажатия мышью- че случается?? |
Срабатывает одна и та же. На кнопке сверху есть нарисованная галочка. Если бит стоит в 1 - то значение Visible у галочки становиться равным 1 и она появляется. Поэтому и узнаем что сработала именно эта кнопка. Так что думаю цвет фона тут не причем.
Если нажать кнопку ДО нажатия мышью - то происходит все то же самое. Просто я написал насчет нажатия мышью что бы было понятно - фокус курсора находиться не на данной кнопке а на фоне экрана. |
|
| Вернуться к началу |
|
 |
maxim Эксперт


Зарегистрирован: Feb 16, 2007 Сообщения: 123 Рейтинг: +7/-0 Откуда: Енакиево
|
Добавлено: Чт 22 Май, 2008 8:11:24 Заголовок сообщения: Re: Экран RSView32 и нажатие Enter |
|
|
| kempo писал(а): | | Добрый день. Есть проект, в котором есть экран. На этом экране находится порядка 100 стандартных кнопок. Ни одна из них не выделенна. Нажимаем курсором мыши на любом пустом месте экрана. После этого нажимаем Enter - и одна из кнопок срабатывает. Что для нас не есть хорошо. В чем может быть проблема? Вроде бы все перерыли в проекте - нигде ничего подобного не прописано. |
Если я правильно Вас понял, ответ такой: менять активные кнопки можно "TAB", а после нажав "Enter" выполняется команда, и кнопка "срабатывает". |
|
| Вернуться к началу |
|
 |
maxim Эксперт


Зарегистрирован: Feb 16, 2007 Сообщения: 123 Рейтинг: +7/-0 Откуда: Енакиево
|
Добавлено: Чт 22 Май, 2008 8:20:31 Заголовок сообщения: |
|
|
Добавлю: а по умолчанию фокус на той кнопке, которая была первая создана на этом дисплее. Только что у себя проверил  |
|
| Вернуться к началу |
|
 |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Чт 22 Май, 2008 8:48:40 Заголовок сообщения: |
|
|
| maxim писал(а): | Добавлю: а по умолчанию фокус на той кнопке, которая была первая создана на этом дисплее. Только что у себя проверил  |
1) Данная кнопка была создана не первой - у нее имя Button22. Есть еще и Button11 - так что точно не первая
2) Насколько я понимаю при нажатии мышью на пустом месте экрана фокус должен уйти с кнопки. Если это так - то почему при нажатии Enter кнопка все равно срабатывает?
3) Предположим что то что Вы написали реально происходит. Можно как то от этого избавиться? |
|
| Вернуться к началу |
|
 |
maxim Эксперт


Зарегистрирован: Feb 16, 2007 Сообщения: 123 Рейтинг: +7/-0 Откуда: Енакиево
|
Добавлено: Чт 22 Май, 2008 9:36:13 Заголовок сообщения: |
|
|
П.1 в свойствах кнопки смотрите index: при вызове дисплея фокус будет на кнопке с index 1, а Button11 или Button22 можно менять в Object Name
П.2 При клике мышью по экрану фокус на самом деле с кнопки на экран не уходит, а остается на прежнем месте.
П.3 Можно даже не предпологать, передо мной проект открыт и у меня это реально происходит  |
|
| Вернуться к началу |
|
 |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Чт 22 Май, 2008 9:46:32 Заголовок сообщения: |
|
|
| maxim писал(а): | П.1 в свойствах кнопки смотрите index: при вызове дисплея фокус будет на кнопке с index 1, а Button11 или Button22 можно менять в Object Name
П.2 При клике мышью по экрану фокус на самом деле с кнопки на экран не уходит, а остается на прежнем месте.
П.3 Можно даже не предпологать, передо мной проект открыт и у меня это реально происходит  |
спасибо за ответы. Проверю.
Но есть один мааааленький секрет. Несколько раз было что по Enter срабатывала другая кнопка, если не ошибаюсь Button 49 При закрытии экрана и вновь его открытии - начинала срабатывать многострадальная Button22 |
|
| Вернуться к началу |
|
 |
Dvoeglazov Эксперт


Зарегистрирован: Mar 06, 2006 Сообщения: 278 Рейтинг: +1/-0 Откуда: г.Киров-Чепецк
|
Добавлено: Чт 22 Май, 2008 11:53:08 Заголовок сообщения: |
|
|
У каждой кнопки есть свой уникальный (если конечно вы руками не поправили) индекс. При открытии (именно открытии, т.к. окно может быть кешировано или просто находиться на заднем плане) управление перемещается на кнопку с меньшим индексом. Если я ничего не путаю, то при открытии окна можно задать индекс объекта, на который будет перемещено управление (фокус).
Есть правило хорошего тона:
любое действие оператора, приводящее к изменению состояния технологического оборудования, должно подтверждаться. А в окне подтверждения активная по умолчанию кнопка должна быть кнопка ОТМЕНА.
Что-бы окон подтверждения не рисовать много рисуют одно и используют параметры или теги #1. |
|
| Вернуться к началу |
|
 |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Чт 22 Май, 2008 11:57:07 Заголовок сообщения: |
|
|
| Dvoeglazov писал(а): |
Есть правило хорошего тона:
любое действие оператора, приводящее к изменению состояния технологического оборудования, должно подтверждаться. А в окне подтверждения активная по умолчанию кнопка должна быть кнопка ОТМЕНА. |
У нас именно так и сделано. Вначале набирается матрица и только в самом конце она подтверждается.
Спасибо большое за советы - будем разбираться. |
|
| Вернуться к началу |
|
 |
dv_ Эксперт


Зарегистрирован: Sep 14, 2006 Сообщения: 776 Рейтинг: +41/-1 Откуда: Донецк
|
Добавлено: Сб 24 Май, 2008 11:33:07 Заголовок сообщения: |
|
|
| KEMPO, в свойствах экрана включи (сними "галочку") для "Disable Highligth When Object has Focus" и тогда будешь видеть какой объект сработает по нажатию ENTER. |
|
| Вернуться к началу |
|
 |
DIMIOKS Эксперт


Зарегистрирован: May 14, 2005 Сообщения: 290 Рейтинг: +9/-0 Откуда: г.Самара
|
Добавлено: Вс 25 Май, 2008 0:23:54 Заголовок сообщения: |
|
|
Привет всем!
Все это делается очень просто: в DisplayKeys на клавищу Enter по событию PressAction вешается команда Position с указанием индекса ненужной кнопки. Тогда на этом дисплее нажатие клавиши Enter уведет фокус по индексу. Проверено. Только вот кнопка эта ненужная должна быть видимой Хотя никто не запрещает сделать ее очень маленькой и по цвету экрана. Так-же можно в этом качестве использовать любой компонент, принимающий фокус. |
|
| Вернуться к началу |
|
 |
kempo Эксперт


Зарегистрирован: Jul 10, 2006 Сообщения: 150 Рейтинг: +6/-0 Откуда: Украина, Алчевск
|
Добавлено: Пн 26 Май, 2008 5:39:09 Заголовок сообщения: |
|
|
| Всем большое спасибо за советы. Кнопка которая срабатывала действительно имела ID=1. Поменяли ей идентификатор на другой, а на кнопку перехода на другой экран повесили ID=1. Все прекрасно работает. Всем большое спасибо |
|
| Вернуться к началу |
|
 |
|