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

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

обработчик событий [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, пусть подскажет кто-небудь другой, а если разберёшся сам, то напиши.


Наверх

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