Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

обработка по нажатии ENTER в LabeledEdit   Найти похожие ветки 

 
Arsenija ©   (2006-08-02 10:58) [0]

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


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

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


 
Vlad ©   (2006-08-02 11:07) [2]


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


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


 
Arsenija ©   (2006-08-02 11:21) [3]

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


 
clickmaker ©   (2006-08-02 12:29) [4]


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

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


 
Id   (2006-08-02 12:32) [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;


 
Zeqfreed ©   (2006-08-02 12:42) [6]

> [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;


 
Arsenija ©   (2006-08-02 14:15) [7]

Всем спасибо. Это то, что и искал (аналог 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 15:03) [8]

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

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


 
Arsenija ©   (2006-08-02 15:37) [9]

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



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
1-1152013774
Искандер В.
2006-07-04 15:49
2006.08.20
Нестандартные шрифты


15-1153750108
Zilog_
2006-07-24 18:08
2006.08.20
Ребята помогите разобраться с переводом с С++ в Делфи


15-1153770062
ronyn
2006-07-24 23:41
2006.08.20
Как установить компонент без файла пакета?


15-1153778649
Footballer
2006-07-25 02:04
2006.08.20
В трее... :)))


15-1153773781
Axis_of_Evil
2006-07-25 00:43
2006.08.20
ПО для КПК