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

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

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

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

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

Сообщение Джентельмен »

а вопрос такый...
есть Edit1, Edit2 я хочу писать в Edit1 что-то, потом нажать ентер и чтобы урсор сразу перескочил в Edit2
как это зделать?
cranium
постоялец
Сообщения: 143
Зарегистрирован: 08.05.2005 03:59:45
Откуда: Санкт-Петербург

Сообщение cranium »

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

PS Для Enter код (13 или VK_RETURN) остальные смотри в дельфийской справке:)
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

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

А вообще я бы использовал OnKeyPress (а не OnKeyUp) таким образом:

Код: Выделить всё

  if Key = #13 then
  begin
    Edit2.SetFocus;
    Key := #0;
  end;
Yogrik
постоялец
Сообщения: 116
Зарегистрирован: 22.03.2006 23:41:48

Сообщение Yogrik »

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

Как так нет?!!

Код: Выделить всё

$ find ./lazarus/ -type f -print0 | xargs -0 fgrep VK_RETURN | wc -l
106


Ну а если смотреть в суть, то...

Код: Выделить всё

./lazarus/lcl/lcltype.pp:  VK_RETURN     = 13;
Джентельмен
постоялец
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск
Контактная информация:

Сообщение Джентельмен »

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

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

Key := #0; - так и не понял нафик оно надо...
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

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

Не знаю как под Linux, а под Windows, если этого не делать, то на каждое нажатие Enter будет beep (в чем смысл этого beep, сам не пойму, вопросы к БГ)
Ответить