Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2008, 23:55   #1
terminadoor
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 86
По умолчанию Событие

Как сделать так, чтоб при вводе текста в поле типа Tedit при нажатии клавиши Enter переходилось на другое поле Tedit ?
TerMinAdoOR
terminadoor вне форума Ответить с цитированием
Старый 08.07.2008, 00:03   #2
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

в событии OnKeyPress:
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
  begin
    edit2.SetFocus;
  end;
end;
а вообще чем таб плох?

Последний раз редактировалось Stilet; 08.07.2008 в 08:03.
Роман Радер вне форума Ответить с цитированием
Старый 08.07.2008, 00:07   #3
terminadoor
Пользователь
 
Регистрация: 26.06.2008
Сообщений: 86
По умолчанию

Цитата:
Сообщение от Роман Радер Посмотреть сообщение
а вообще чем таб плох?
Tab ничем не плох. НО у меня в программе полей - 43. И столько раз табом переходить - плохая идея.
TerMinAdoOR

Последний раз редактировалось terminadoor; 08.07.2008 в 11:09.
terminadoor вне форума Ответить с цитированием
Старый 08.07.2008, 02:58   #4
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

чтоб не писать для каждого едита отдельный
Код:
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);  
begin  
  if Key=#13 then  
  begin  
    edit2.SetFocus;  
  end;  
end;
лутче пронумеруй у них таги по порядку и назначь всем общий обработчик OnKeyPress
Код:
procedure TForm1.AllEditKeyPress(Sender: TObject; var Key: Char);
var i, d : integer;
begin
  d := (Sender as TEdit).Tag;

  if Key = Char(VK_RETURN) then
    for i := 0 to ComponentCount - 1 do
      if Components[i] is TEdit then
        if (Components[i] as TEdit).Tag = d + 1 then begin
          (Components[i] as TEdit).SetFocus;
          Break;
        end;
end;
так будет комфортнее если у тебя их 43 =)

Последний раз редактировалось Ring0Sn; 08.07.2008 в 03:01.
Ring0Sn вне форума Ответить с цитированием
Старый 08.07.2008, 08:05   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
НО у меня в программн полей 43
А СтрингГрид прикрутить уже не модно? Или ты свои эдиты распанахал по форме с размахом фокусника?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2008, 10:21   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (key=VK_RETURN)then
FindNextControl(Sender as TWinControl,true,true,false).SetFocus;
end;
SERG1980 вне форума Ответить с цитированием
Старый 08.07.2008, 11:01   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

есть очень удобные списки параметров в стандартных компонентах Delphi...
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 08.07.2008, 12:38   #8
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Цитата:
есть очень удобные списки параметров в стандартных компонентах Delphi...
в каком смысле списки параметров?
Роман Радер вне форума Ответить с цитированием
Старый 08.07.2008, 12:51   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Квэнди наверное имеет ввиду ValueListEditor
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.07.2008, 11:26   #10
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию

Использовал
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;  
Shift: TShiftState);  
begin  
if (key=VK_RETURN)then  
FindNextControl(Sender as TWinControl,true,true,false).SetFocus;  
end;
все работает, но при нажатии клавиши Enter, раздается звук, а как от него избавиться?
MasterofCDM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проипсать событие? Sanek777 Общие вопросы Delphi 3 10.08.2008 14:48
Событие maha Общие вопросы Delphi 6 18.06.2008 18:53
Событие один раз Михаил Юрьевич Общие вопросы Delphi 4 01.04.2008 20:40
событие BeforePost azat БД в Delphi 2 17.12.2007 15:34
Как поймать событие в COM? den303 Общие вопросы Delphi 0 13.09.2007 12:06