Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 21
1

Не работает setfocus на Labelededit

19.04.2016, 20:16. Показов 2947. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я сейчас в своей курсовой работе наткнулся на проблем. Хотел сделать переход по строкам labelededit на интер, но при нажатии на него он прожимает кнопку которая размещена на форме. Подскажите как пофиксить это.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm2.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
LabeledEdit2.SetFocus;
end;
end;
procedure TForm2.LabeledEdit2KeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then begin
LabeledEdit3.SetFocus;
end;
 end;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2016, 20:16
Ответы с готовыми решениями:

SetFocus.Пишу Ok(0).SetFocus. Выдаёт ошибку 5. Почему?
Пишу Ok(0).SetFocus. Выдаёт ошибку 5. Почему?

Почему не работает функция SetFocus?
Здравствуйте. У меня есть вопрос. Почему не работает функция SetFocus? Заранее спасибо за ответ.

Не работает SetFocus после MessageBox
Пишу на C++ Builder 2010. Проблема в том, что после вызова функции MessageBox, курсор должен...

Нелогично работает SetFocus для TextBox в приложенном примере
Всем доброго времени суток. На форме есть три TextBox-а: в первых 2-х вводятся числа, а в 3-м...

12
Модератор
9457 / 6210 / 2420
Регистрация: 21.01.2014
Сообщений: 26,468
Записей в блоге: 3
19.04.2016, 20:22 2
Свойство Default своей кнопки установи в false
0
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 21
19.04.2016, 20:26  [ТС] 3
теперь просто не работает setfocus
0
Модератор
3491 / 2614 / 741
Регистрация: 19.09.2012
Сообщений: 7,976
19.04.2016, 20:50 4
Лучший ответ Сообщение было отмечено Bloodev как решение

Решение

Один из вариантов:
Расставить TabOrder в нужном порядке всем контролам и назначить им обработчик:
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    Perform(WM_NEXTDLGCTL, 0, 0);
  end;
end;
1
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 21
19.04.2016, 21:46  [ТС] 5
Цитата Сообщение от FIL Посмотреть сообщение
Один из вариантов:
Расставить TabOrder в нужном порядке всем контролам и назначить им обработчик:
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    Perform(WM_NEXTDLGCTL, 0, 0);
  end;
end;
переключает только на таб
0
Модератор
9457 / 6210 / 2420
Регистрация: 21.01.2014
Сообщений: 26,468
Записей в блоге: 3
20.04.2016, 06:10 6
Цитата Сообщение от FIL Посмотреть сообщение
Один из вариантов:
Только еще надо свойство KeyPreview самой формы выставить в true
0
Модератор
3491 / 2614 / 741
Регистрация: 19.09.2012
Сообщений: 7,976
20.04.2016, 08:51 7
Цитата Сообщение от D1973 Посмотреть сообщение
надо свойство KeyPreview самой формы выставить в true
Зачем? Ведь в момент нажатия Ентера LabeledEdit активен.
0
Модератор
9457 / 6210 / 2420
Регистрация: 21.01.2014
Сообщений: 26,468
Записей в блоге: 3
21.04.2016, 16:16 8
FIL, я могу ошибаться, но, как мне кажется, вот это вот конструкция
Delphi
1
Perform(WM_NEXTDLGCTL, 0, 0);
относится к форме, а не к конкретному контролу... Или нет? Delphi нет под рукой, чтобы проверить...
0
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
21.04.2016, 16:24 9
У меня Делфи7, всё работает с кодом из #1, если выполняется совет в #2.

Добавлено через 1 минуту
А кстати почему не KeyDown?
0
Модератор
3491 / 2614 / 741
Регистрация: 19.09.2012
Сообщений: 7,976
21.04.2016, 16:32 10
Цитата Сообщение от D1973 Посмотреть сообщение
конструкция относится к форме
Да, к форме. Дает команду сделать активным следующий контрол.
0
Модератор
9457 / 6210 / 2420
Регистрация: 21.01.2014
Сообщений: 26,468
Записей в блоге: 3
21.04.2016, 16:44 11
Цитата Сообщение от FIL Посмотреть сообщение
Зачем? Ведь в момент нажатия Ентера LabeledEdit активен
Ну вот затем и выставляется... Компонент активен, нажали Enter - перешли на следующий компонент. Если это свойство не выставлено, то ничего и не произойдет, насколько я помню...
0
Модератор
3491 / 2614 / 741
Регистрация: 19.09.2012
Сообщений: 7,976
21.04.2016, 18:11 12
Цитата Сообщение от D1973 Посмотреть сообщение
Если это свойство не выставлено, то ничего и не произойдет
У меня все происходит и без него.
Возможно оно понадобится, если обработчик назначать форме, а не контролам.
0
Модератор
9457 / 6210 / 2420
Регистрация: 21.01.2014
Сообщений: 26,468
Записей в блоге: 3
21.04.2016, 18:41 13
Ну, дык, это, в пинципе, и требовалось... Назначить форме этот обработчик - и гуляй энтером по контролам...
0
21.04.2016, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2016, 18:41
Помогаю со студенческими работами здесь

PopupMenu и LabeledEdit
Доброго времени суток ребзи. Задался вопросом, как сделать следующую вещь. Имеется несколько...

Ошибка с LabeledEdit
Когда нажимаю на кнопку,то в labelededit должна отобразиться информация,но выдает ошибку. Когда...

Размещение надписи в LabeledEdit
Как сделать чтобы размещение надписи в LabeledEdit находилось справа от поля ввода??? в Builder ...

компонент LabeledEdit и Excell
Всем привет! Вообщем вопрос следующий. Хочу сделать в Delphi программулину по работе. Смысл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru