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

Вниз

Анти SetMethodProp   Найти похожие ветки 

 
GrBob   (2006-10-17 10:10) [0]

В рантайме навешиваю на свои классы обработчики путем обычного SetMethodProp. Теперь возникла необходимость их снять. Как это правильно сделать? Достаточно ли просто повторить SetMethodProp, передав ему TMethod с указателем в nil? Или есть какая-нибудь спецмальная функция?


 
Игорь Шевченко ©   (2006-10-17 10:11) [1]


> Достаточно ли просто повторить SetMethodProp, передав ему
> TMethod с указателем в nil?


Достаточно


 
GrBob   (2006-10-17 10:25) [2]

Спасибо. И Data и Code необходимо установить в nil, или достоточно Code? И что в этом случае будет, не попробует ли он найти у существующего класса пустой метод?


 
jack128 ©   (2006-10-17 11:10) [3]

GrBob   (17.10.06 10:25) [2]
не попробует ли он найти у существующего класса пустой метод?

кто такой "он", можно поинтересоваться???  если в классе сделана проверка if Assigned(FSameEvent) then , код пойдет своим чередом.  В противном случае - AV неизбежен как победа мирового коммунизма ;-)


 
GrBob   (2006-10-17 11:54) [4]


> jack128 ©   (17.10.06 11:10) [3]


> если в классе сделана проверка if Assigned(FSameEvent) then
> , код пойдет своим чередом.  В противном случае - AV неизбежен
> как победа мирового коммунизма ;-)

В этом то и вопрос. Предположим в методе формы создается TMethod.
Data = Self (то бишь свою процедуру прикручиваем), Code = nil (то бишь откручиваем обработчик). И потом все это передаем третьим параметром в SetMethodProp. Assigned в этом случае что скажет? И что он скажет если и Data и Code = nil. Хотя я вроде сам уже разобрался, просто проверить под рукой ничего нет, хотел уточнить.


 
jack128 ©   (2006-10-17 12:01) [5]

GrBob   (17.10.06 11:54) [4]
Assigned

Assigned(MethodVar) идентично Assigned(MethodVar.Code). То есть проверка делается только для Code


 
GrBob   (2006-10-17 12:32) [6]

Ок, спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.049 c
4-1150551148
PRT
2006-06-17 17:32
2006.11.26
спрятать чужое приложение


2-1162908866
m-kirill-2003
2006-11-07 17:14
2006.11.26
Форма и консольное приложение


3-1158737435
svt
2006-09-20 11:30
2006.11.26
Люди, помогите, где можно найти информацию


5-1144392060
Bryak
2006-04-07 10:41
2006.11.26
progressBar!


2-1162921686
EkZot
2006-11-07 20:48
2006.11.26
Существует ли папка.