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

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

обработка по нажатии ENTER в LabeledEdit [D4, D5, D6, D7, D2005]


Arsenija ©   (2006-08-02 10:58:00) 

Вопрос именно в этом. Есть поле ввода LabeledEdit. После ввода строки по нажатии клавиши ENTER надо запустить процедуру. Как это сделать?


Arsenija   (2006-08-02 15:37:00) [1]

Спасибо в квадрате.


Zeqfreed   (2006-08-02 15:03:00) [2]

> Или я не прав?

Shift является множеством. Оператором =можно сравнивать два множества на идентичность, выявить же принадлежность элемента множеству можно оператором in.


Arsenija   (2006-08-02 14:15:00) [3]

Всем спасибо. Это то, что и искал (аналог ReadKey в Pascal).

P.S.

>Zeqfreed

> procedure TForm1.LabeledEdit1KeyDown(Sender: TObject; var
> Key: Word;
>  Shift: TShiftState);
> begin
>  if ((Key = Ord('Q')) and ( ssShift in Shift)) then SomeProc;
> end;

Я думал, честно говоря, что в этом случае:

procedure TForm1.LabeledEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
 if ((Key = Ord('Q')) and ( Shift=ssShift)) then SomeProc;
end;

Или я не прав?


Zeqfreed   (2006-08-02 12:42:00) [4]

> [2] Vlad ©   (02.08.06 11:07)

«Я знаю, что Земля не круглая» © Юрий Зотов

> Спасибо, а если это не ENTER , а символ на клаве (например
> Q)?

procedure TForm1.LabeledEdit1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (Key = Ord('Q')) then SomeProc;
end;


Хотя предположу, что ещё надо с шифтом? Тогда:

procedure TForm1.LabeledEdit1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if ((Key = Ord('Q')) and (ssShift in Shift)) then SomeProc;
end;


Id   (2006-08-02 12:32:00) [5]


> Arsenija ©   (02.08.06 10:58)

Я просто делаю, вот так например

procedure TForm3.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key =#13 then  Button1Click(Sender);//Enter
 if key =#27 then  Button2Click(Sender);// Esc
end;


clickmaker   (2006-08-02 12:29:00) [6]


> что делает процедура TForm1.LabeledEdit1Enter(Sender: TObject)

это не обработчик нажатия Enter. Она вызывается при получении LabelEdit фокуса. При уходе фокуса - OnExit


Arsenija   (2006-08-02 11:21:00) [7]

Спасибо, а если это не ENTER , а символ на клаве (например Q)?
P.S. И что делает процедура TForm1.LabeledEdit1Enter(Sender: TObject) ?


Vlad   (2006-08-02 11:07:00) [8]


> Zeqfreed ©   (02.08.06 11:00) [1]


Просили по нажатию клавиши, а не по отпусканию. Соотв. OnKeyDown


Zeqfreed   (2006-08-02 11:00:00) [9]

procedure TForm1.LabeledEdit1KeyUp(Sender: TObject; var Key: Word;  Shift: TShiftState);
begin
 if (Key = VK_RETURN) then SomeProc;
end;


Наверх

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