powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по ЕRadioGrour
13 сообщений из 13, страница 1 из 1
Вопрос по ЕRadioGrour
    #32118872
vladuha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет многознающий олл!
Есть такой вопрос: на форме расположено несколько компонентов типа TRadioGroup. Юзер может спокойно тыкать каждый мышкой, но хочется для ускорения работы сделать возможность переходить между ними по нажатию Enter. И все бы было бы хорошо, только у TRadioGroup нет события OnKeyDown. Что можно сделать?
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32118873
Бессонница
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если он тыкает мышью, то какая разница - энтером или табом? или здесь принципиально?
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32118893
vladuha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
идея состоит в том, чтобы ускорить процесс тыканья. опыт показывает, что переход по Enter происходит быстрее, чем тыканье мышкой
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32118945
Бессонница
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поделись пожалуйста опытом: как соотносится время перехода по Enter и перехода по кнопочке Tab? кроме конечно того что некоторые юзеры долго ищут эту кнопочку
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119051
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отучите людей переходить по Enter - времена MS DOS давно прошли
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119180
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно попробовать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  Form.KeyPreview:=true;
  ...
procedure TMyForm.OnKeyPress();
begin
  if (Key=# 13 ) and (ActiveControl is TRadioGroup)
   then FindNextControl(ActiveControl,true,true,true).SetFocus;
end;
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119210
vladuha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 tygra: времена ДОСа конечно прошли, только люди остались, вот в чем проблема

2 Бессоница: представь, что ты работаешь неким оператором, который должен набирать некие цифры в некие поля. Первый вариант работы: набирать цифры на клавиатуре, которые расположены под функциональными клавишами и переходить к другим полям по табуляции. Второй вариант: набирать цифры на кнопках, которые расположены справа на клавиатуре и переход к другому полю делать по серому Enter. Угадай, что быстрее?
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119778
Фотография Natalka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я, конечно, не понимаю, но зачем переходить клавишей между TRadioGroup? в нем можно делать выбор вводом?
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119818
vladuha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Откуда проблема. Была старая (досовская) программа для голосования на собрании акционеров. Работало там так: набираешь лицевой номер акционера, энтер, появляется поле для ввода голосования по вопросу №1, набираешь 1 (означает ЗА), 2 - (ПРОТИВ) и т.д., энтер, появляется поле для ввода голосования по вопросу №2, опять набираешь 1,2 и т.д. Заявляю авторитено (сам работал с этой программой), что не смотря на анахронизм интерфейса, все работает очень быстро.

Теперь я эту прогу переделываю на Дельфи и SQL. От полей ввода отказался, перешел на TRadioGroup, но хочу чтобы все выглядело так: набираешь лицевой номер акционера, энтер, переход на TRadioGroup, в нем стрелками выбираешь вариант голосования, энтер, переход на второй TRadioGroup и т.д. Думаю, что так будет быстрее
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119852
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У радиогруппы нет события нажатия кнопки... Но есть у всех объектов в которые что-то можно вводить... Первая мысль повесить на них обработчик (например на поле ввода) По Enter переходить на радиокнопку например (фокус в смысле менять...).

А по поводу смсла, если человеку надо, наверное так и есть... Сталкивался с проблемой, когд идет ввод цифровых данных постоянно и действительно быстрее работаь на цифровой клавиатуре и соответственно давить на ентер вместо Tab
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119931
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый vladuha, пробовал ли ты предложенный мною способ?

У компонента TRadioGroup нет событий OnKeyPress и OnKeyDown, но зато они есть у формы и если у этой формы свойство KeyPreview=true, то они форма получает эти события какой бы компонент не был активным...

Я думаю, что удобно было бы сделать также реакцию на цифровые кнопки - то есть при нажатии на '1' выбирался первый вариант ответа, при '2' - второй и так далее, причём, можно сделать так, чтобы фокус СРАЗУ переходил на следующий TRadioGroup (или сделать, чтобы это можно было настроить), например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TMyForm.OnKeyPress(...);
begin
  if ActiveControl is TRadioGroup then begin
    if Key in ['1'..'9'] then begin
      (ActiveControl as TRadioGroup).ItemIndex:=StrToInt(Key)- 1 ;
      if true{передавать фокус сразу} then Key:=# 13 ;
    end;
    if Key=# 13  then FindNextControl(ActiveControl,true,true,true).SetFocus;
  end;
end;
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32119990
vladuha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 m_kus: пробовал, но к сожалени, не получилось...:((( Спасибо за идею, буду продолжать пробовать
...
Рейтинг: 0 / 0
Вопрос по ЕRadioGrour
    #32120001
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты так теперь будешь сто лет делать - пока последний пользователь программы не умрет?

представь, что ты работаешь неким оператором, который должен набирать некие цифры в некие поля. Первый вариант работы: набирать цифры на клавиатуре, которые расположены под функциональными клавишами и переходить к другим полям по табуляции. Второй вариант: набирать цифры на кнопках, которые расположены справа на клавиатуре и переход к другому полю делать по серому Enter. Угадай, что быстрее?

А у тебя пользователи то что, все однорукие работают? Левая рука то на что?
Объясню - для того, стобы на Tab нажимать. И уж так быстрее будет, чем одной и той-же рукой на все жать.

А пользователи тоже люди - через два дня привыкнут. Так что голову то не ломай из-за всякой ненужной мелочи
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по ЕRadioGrour
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]