![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
обработчик событий [D3, Win2k]
lekseich © (2002-02-22 13:11:00)Я в DELPHI новичок. Помогите, пожалуйста , разобраться.
Требуется сделать так , чтобы двойной щелчок мышью и клавиши
ALT-X закрывли форму. Как заставить программу реагировать на эти
события .
Заранее благодарен.
pasha676 (2002-02-26 11:44:00) [1]Вообще-то если ты посмотришь на object inspector и на его закладку events то там есть события FormDblClick (ответ ice)и
событие OnKeyDown. По нему определяешь кнопки нажатые. Логические переменные позволят запросто реализовать алгоритм "и" этих событий.
использование OnKeyDown
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssAlt in Shift) and (Key=<тут код клавиши>) then
begin
<тут что надо>
end;
end;
ice (2002-02-25 08:20:00) [2]Вот на двойной клик по форме:
procedure TForm1.FormDblClick(Sender: TObject);
begin
form1.Close;
end;
А как хоткей оформлять я не помню.
lekseich (2002-02-24 08:42:00) [3]спасибо за помощь.премного благодарен.
Val (2002-02-22 14:09:00) [4]как-то хитро придумано..
попробуйте выставлять флаг после даблклика и проверять его потом в OnKeyDown
lekseich (2002-02-22 13:54:00) [5]Прошу прошения. Может я опять не правильно понял.
В задачке написано :"Двойной щелчок и ALT-X закрывают форму".
Эти два события следуют друг за другом. При выполнении этих действий по отдельности форма закрываться не должна.
[NIKEL] (2002-02-22 13:39:00) [6]>>VictorT
if ((Key == "X") && Shift.Contains(ssAlt))
...
VictorT (2002-02-22 13:29:00) [7]Извиняюсь, забылся, я вообще-то на Билдере пишу, но думаю ты понял.
VictorT (2002-02-22 13:27:00) [8]void __fastcall TForm1::FormDblClick(TObject *Sender)
{
Close();
}
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (нажато ALT+X)
Close()
}
P.S. Как узнать, что нажато ALT+X, пусть подскажет кто-небудь другой, а если разберёшся сам, то напиши.