вот есть два едита...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

вот есть два едита...

Сообщение Джентельмен » 17.02.2007 21:35:06

а вопрос такый...
есть Edit1, Edit2 я хочу писать в Edit1 что-то, потом нажать ентер и чтобы урсор сразу перескочил в Edit2
как это зделать?
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение cranium » 17.02.2007 22:44:06

Например так...
У TEdit есть событие OnKeyUp, у процедуры вызываемой на это событие есть параметр Key в котором передается код клавиши, если это Enter то фокус ввода передаешь на нужный тебе контрол....

PS Для Enter код (13 или VK_RETURN) остальные смотри в дельфийской справке:)
cranium
постоялец
 
Сообщения: 143
Зарегистрирован: 08.05.2005 03:59:45
Откуда: Санкт-Петербург

Сообщение shade » 17.02.2007 23:08:00

А фокус передаться методом SetFocus, того контрола, которому нужно передать фокус.
Только вот в lazarus нет константы VK_RETURN (есть ли аналоги?)

А вообще я бы использовал OnKeyPress (а не OnKeyUp) таким образом:
Код: Выделить всё
  if Key = #13 then
  begin
    Edit2.SetFocus;
    Key := #0;
  end;
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Yogrik » 18.02.2007 23:46:44

Только вот в lazarus нет константы VK_RETURN (есть ли аналоги?)

Как так нет?!!
Код: Выделить всё
$ find ./lazarus/ -type f -print0 | xargs -0 fgrep VK_RETURN | wc -l
106


Ну а если смотреть в суть, то...
Код: Выделить всё
./lazarus/lcl/lcltype.pp:  VK_RETURN     = 13;
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Сообщение Джентельмен » 19.02.2007 16:12:18

ухты блин дискусия...
разобрался...
отак зделал...

if Key = #13 then
begin
Edit2.SetFocus;
end;

Key := #0; - так и не понял нафик оно надо...
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение shade » 19.02.2007 16:20:14

Джентельмен писал(а):Key := #0; - так и не понял нафик оно надо...

Не знаю как под Linux, а под Windows, если этого не делать, то на каждое нажатие Enter будет beep (в чем смысл этого beep, сам не пойму, вопросы к БГ)
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 29

Рейтинг@Mail.ru