![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как убить событие 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]не убивай, а выставь флаг, который снимешь в последнем событии