Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сымитировать нажатие клавиши?


Ell ©   (2006-01-15 15:29:00) 

Например, хочу, чтобы нажатие ENTER было эквивалентно нажатию TAB. Тогда в свойствах формы выставляю KeyPreview = true, перехватываю событие OnKeyPress, пишу if Ord(Key)=13 then...
А дальше? Как "нажать" табуляцию?

Небольшое пояснение: мне нужно, чтобы при заполнении полей TEdit по нажатии ENTER был переход на следующее поле так же как при табуляции.

Заранее спасибо.


Ell   (2006-01-15 16:29:00) [1]

Спасибо. Всё получилось.


VirEx   (2006-01-15 16:23:00) [2]

Установите свойство KeyPreview формы в True и используйте следующий обработчик события OnKeyPress.

procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin
Key := #0;
PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
end;
end;


ASoft   (2006-01-15 16:23:00) [3]

Переход по Enter между компонентами формы.

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) then begin
 Key:=#0;
 Perform(WM_NEXTDLGCTL,0,0);
end;
end;


Ell   (2006-01-15 15:53:00) [4]

Кефир87, компилятор Key := #9 принял, но эффекта нет - при нажатии раздаётся только бип...


Кефир87   (2006-01-15 15:36:00) [5]

Key := #9??


Наверх

Титульная страница Поиск, карта сайта Написать письмо