Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Delphi (https://nowa.cc/forumdisplay.php?f=300)
-   -   Переключение по Tab (https://nowa.cc/showthread.php?t=146742)

Terio 19.02.2008 22:05

Переключение по Tab
 
Всем доброго времени суток!
Подскажите пожалуйста, как на форме с расставлеными кнопками и едитами организовать переключение по Tab.
Нигде не могу найти информацию.
Заранее спасибо!

Bjatta 19.02.2008 22:33

Ответ: Переключение по Tab
 
А чуть поподробнее, какой форум? Вот на нове проверила, работает всё, кажется я где-то в браузере видела что-то про навигацию клавишами на странице...

Terio 20.02.2008 10:50

Ответ: Переключение по Tab
 
Я имею ввиду форму в дельфи (TForm).
На ней размещаю несколько кнопок и едитов.
Компилирую проект, запускаю.
Пытаюсь кнопкой Tab переключать фокус (курсор) по этим кнопкам и едитам.
Переключение происходит в том порядке, в каком я создавал эти элементы.
А мне нужно изменить этот порядок. Как это сделать?

f0w14 20.02.2008 10:53

Ответ: Переключение по Tab
 
Цитата:

Сообщение от Terio (Сообщение 1476843)
Всем доброго времени суток!
Подскажите пожалуйста, как на форме с расставлеными кнопками и едитами организовать переключение по Tab.
Заранее спасибо!

Вы знаете, в правильно заданном вопросе содержится половина ответа. :)
В этом вопросе ответа примерно около 10%, поэтому попробую сыграть в угадайку :)

1. Изменение порядка переключения контролов: на форме щелкаем правой кнопкой и в меню выбираем пункт "Tab Order", упорядочиваем список элементов. Следует иметь в виду, что во всяких панелях и прочих GroupBox и TabSheet следует выполнять те же действия индивидуально.

2. Если требуется переход между контролами не по кнопке Tab, а, например, по Enter, нужно у формы поставить свойство KeyPreview = True, создать обработчик формы OnKeyPress, в котором написать примерно следующее:
Код:

  if Key = #13 then begin
    if ActiveControl = Edit1 then
      Memo1.Lines.Add('Ушли из Memo1');
    Key:= #0;
  end;

3. Кнопки Tab, Shifttab никто не отменял, если, конечно, специально они не блокируются программным кодом-перехватчиком :)

Удачи.

ksp404 20.02.2008 12:20

Ответ: Переключение по Tab
 
Код:

if Key = #13 then
 begin
  Key := #0;
  SelectNext(Sender as TWinControl, True, True);
 end;

Вот так тоже неплохо будет.

f0w14 20.02.2008 13:38

Ответ: Переключение по Tab
 
Цитата:

Сообщение от ksp404 (Сообщение 1478126)
Код:

if Key = #13 then
 begin
  Key := #0;
  SelectNext(Sender as TWinControl, True, True);
 end;

Вот так тоже неплохо будет.

Да, пардон. Самое главное (SelectNext) забыл.

Но нет предела совершенству! Вот более "усовершенствованный" метод :cool:
Код:

if Key = #13 then begin
  SelectNext(ActiveControl, True, True);
  Key:= #0;
end;



Текущее время: 19:45. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.02292 секунды с 9 запросами