Главная страница
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.084 c
8-1140424615
barakuda
2006-02-20 11:36
2006.08.20
освобождение памяти после просмотра большого JPEG


2-1154591813
TRyaSS
2006-08-03 11:56
2006.08.20
Почему FindFirstFile ищет только в текущем каталоге


1-1152093007
oleggar
2006-07-05 13:50
2006.08.20
глюк ричедит ?


1-1152270701
Dok
2006-07-07 15:11
2006.08.20
Как вернуть вариантный массив?


15-1153766168
Степан
2006-07-24 22:36
2006.08.20
RLINK32: Error opening file "Unit_MainForm.dpr" ?!?!?!