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

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

Как убить событие OnClick и OnDblClick?


NeyroSpace ©   (2002-10-31 17:15:00) 

Я так понимаю сначала Click обрабатывается в
procedure TForm.Tree1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
А потом уже OnClick и OnDblClick.

Кликаю с нажатым CTRL, и обрабатываю его в MouseDown, дальнейшую обработку клика (OnClick и OnDblClick), надо убить. Как?


Zemal   (2002-10-31 18:15:00) [1]

>> NeyroSpace
TBasicAction - это базовый класс экшенов, используемый в TApplicationEvents, потомка от TApplication, и который работает с событиями приложения... можно добавлять события свои и генерировать их в "ручную", так сказать... вот TBasicAction это и есть это событие... короче в двух словах необъяснишь... лучше в книге почитай :).


Zemal   (2002-10-31 18:10:00) [2]

>> NeyroSpace
type TNotifyEvent = procedure(Sender: TObject) of object;
т.е. это класс процедур-обработчиков событий... и как интересно ты его использовать собираешься? уж не переписать-ли? :) гы-гы


Zemal   (2002-10-31 18:06:00) [3]

>> pusrg
Спасибо! А я думал что он туда это и поставил :),а он в MouseDown оказывается Abort зафигачил... а я голову ломаю, почему неработает :(. Спасибо!


NeyroSpace   (2002-10-31 17:59:00) [4]

А что такое TBasicAction, TNotifyEvent ?
И нельзя ли решить при помощи их эту проблему?


pusrg   (2002-10-31 17:57:00) [5]

BeginDrag нужно вызывать в MouseDown.
Далее нужно ставить Abort не в MouseDown, а в OnClick и в MouseUp


Zemal   (2002-10-31 17:56:00) [6]

Тогда перепиши компонент и перекрой события, которые тебе надо одноимёнными методами и поставь "...; message WM_USER;"... или это тебе сложно будет реализовать?
Кстати, как-то можно перехватывать это сообщение и останавливать генерацию события компонента... щас гляну, может что накопаю :).


NeyroSpace   (2002-10-31 17:40:00) [7]

что-то не выходит...
Короче при нажатии на CTRL вызывается BeginDrag, а за ним Abort.
И по идее OnClick не должен дальше вызыватся, но выходит по-другому сначала срабатывает OnClick, а потом начинается BeginDrag.


Zemal   (2002-10-31 17:25:00) [8]

Поставь в событиях, которые надо убить "Abort;" и всё... на этом вся обработка события далее прекратиться :).


NeyroSpace   (2002-10-31 17:21:00) [9]

а без глобальных переменных нельзя?


MBo   (2002-10-31 17:17:00) [10]

не убивай, а выставь флаг, который снимешь в последнем событии


Наверх

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