Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Внизобработка по нажатии 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.057 c