Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переход с одного компонета edit на другой, но только не с помощи клавиши TAB... 
:(
    Опции темы
Гость_Николай
Дата 19.10.2005, 19:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а с помощью клавиши ENTER. Как это сделать подскажите плиз?
  Вверх
Albinos_x
Дата 19.10.2005, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



обрабатываешь событие компанента OnKeyPress -
если Key:=#13 то перейти к другому элементу...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Гость_Николай
Дата 19.10.2005, 19:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

procedure Edit1.KeyDown(...);
begin
If key=VK_RETURN then Edit2.SetFocus;
end;

Так то можно для 2х компонентов, а если их 30 штук?
  Вверх
Самурай
Дата 19.10.2005, 19:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Организуем TabOrder для всех нужных нам Edit'ов следующим образом:
Edit1.TabOrder = 0
Edit2.TabOrder = 1
...

Теперь со спокойной душой мы можем применять следующий код для всех Edit'ов, за исключением последнего (с него мы никуда не переходим)...

Код

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
 buf: TComponent;
begin
 if key=#13
  then
   begin
    buf:=FindComponent('Edit' + IntToStr((Sender AS TEdit).TabOrder + 2));
    if buf <> nil
     then
      (buf AS TEdit).SetFocus
   end
end;


Конечно мы можем применять не только TabOrder, но и Name компонента, но это будет дольше работать (т. е. тут дополнительные преобразования со строкой и числом)... smile
  Вверх
Гость_Николай
Дата 19.10.2005, 20:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Самурай
Спасибо! Но я разобрался вот так:
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
KeyPreview:=True;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=VK_RETURN then
SelectNext(ActiveControl,TRUE,TRUE);
end;

end.

  Вверх
Самурай
Дата 19.10.2005, 20:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
SelectNext

А я и не занал про эту вещь. smile Спасибо, буду знать, т. к. сам часто организую подобный переход и всегда свои методом, который больше места занимает и дольше работает чем предложенный.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1350 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.