Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: CL | DM;

Вниз

Как убить событие OnClick и OnDblClick?   Найти похожие ветки 

 
NeyroSpace ©   (2002-10-31 17:15) [0]

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

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


 
MBo ©   (2002-10-31 17:17) [1]

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


 
NeyroSpace ©   (2002-10-31 17:21) [2]

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


 
Zemal ©   (2002-10-31 17:25) [3]

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


 
NeyroSpace ©   (2002-10-31 17:40) [4]

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


 
Zemal ©   (2002-10-31 17:56) [5]

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


 
pusrg ©   (2002-10-31 17:57) [6]

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


 
NeyroSpace ©   (2002-10-31 17:59) [7]

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


 
Zemal ©   (2002-10-31 18:06) [8]

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


 
Zemal ©   (2002-10-31 18:10) [9]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-33976
Kurt
2002-10-31 15:57
2002.11.11
Как корректно Application.OnIdle сохранить, присвоить, и затем об


1-34059
Эндрю2
2002-10-17 22:31
2002.11.11
Поиск по Doc файлам


4-34300
grifon
2002-10-01 15:36
2002.11.11
Получение хандла текстового поля


1-34080
Anonimus
2002-10-30 14:18
2002.11.11
Как узнать в какой кодировке находиться файл....


1-34040
asdfghqwert
2002-10-30 16:09
2002.11.11
CheckListBox - есть вопросы