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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2010, 11:10   #1
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию Нажатие Enter

На форме есть два текстовых поля Edit1 и Edit2, необходимые для поиска по разным параметра в таблице базы данных. Для каждого поля есть отдельная кнопка поиска Button1 и Button2, которые ищут данные в базе по тексту из текстовых полей. Нужно сделать: если в поле Edit1 имеется текст, то при нажатии на Enter происходил поиск для кнопки Button1. Если же данные есть в поле Edit2, то, соответственно, выполнялось действие из кнопки Button2. Если же в обоих полях есть записи, то их очищать.
Для теста нажатия на кнопку сделала процедуру:
Код:
procedure TAbonentsForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
ShowMessage('111');
end;
Но не работает. Что я делаю не так?

Последний раз редактировалось Alana; 27.10.2010 в 11:12.
Alana вне форума Ответить с цитированием
Старый 27.10.2010, 11:14   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Нужно обрабатывать KeyDown Edit-ов
Код:
procedure TfrmMain.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = 13 then Button1.Click;
//Edit2.clear; ?????
end;
P.S. или один код на оба Edit-a
Код:
if key = 13 then
begin
if (Sender as TEdit).Name = 'Edit1' then Button1.Click;
if (Sender as TEdit).Name = 'Edit2' then Button2.Click;
end;

Последний раз редактировалось _SERGEYX_; 27.10.2010 в 11:19.
_SERGEYX_ вне форума Ответить с цитированием
Старый 27.10.2010, 11:15   #3
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Код:
if key = #13 then ShowMessage('111');
#13 - это Enter
new player вне форума Ответить с цитированием
Старый 27.10.2010, 11:45   #4
Alana
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 27
По умолчанию

Всё получилось
Всем спасибо
Alana вне форума Ответить с цитированием
Старый 27.10.2010, 14:31   #5
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Если обрабатывать для каждого едита, то условие
Цитата:
Если же в обоих полях есть записи, то их очищать
теряет смысл. Если надо чтобы поиск происходил вне зависимости от того какой контрол имеет фокус, то можно выставить свойство формы KeyPreview в True и обрабатывать нажатие клавиш в событии формы (как в 1 сообщении ТС).
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие на Enter без перевода на новую строку notbugme Общие вопросы C/C++ 12 19.09.2010 20:39
Двойное нажатие клавиши Enter Nezaam Помощь студентам 4 18.08.2010 17:00
Как среагировать на нажатие Enter на форме Electron Общие вопросы C/C++ 4 24.06.2010 12:49
Нажатие Enter Screame Microsoft Office Excel 1 01.11.2009 17:02
отловить нажатие клавиши в ячейке (до нажатия enter) loginrl103 Microsoft Office Excel 3 07.08.2009 15:10