![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Анти SetMethodProp [D7, Win2k, WinXP]
GrBob © (2006-10-17 10:10:00)В рантайме навешиваю на свои классы обработчики путем обычного SetMethodProp. Теперь возникла необходимость их снять. Как это правильно сделать? Достаточно ли просто повторить SetMethodProp, передав ему TMethod с указателем в nil? Или есть какая-нибудь спецмальная функция?
GrBob (2006-10-17 12:32:00) [1]Ок, спасибо.
jack128 (2006-10-17 12:01:00) [2]GrBob (17.10.06 11:54) [4]
Assigned
Assigned(MethodVar) идентично Assigned(MethodVar.Code). То есть проверка делается только для Code
GrBob (2006-10-17 11:54:00) [3]
> 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 11:10:00) [4]GrBob (17.10.06 10:25) [2]
не попробует ли он найти у существующего класса пустой метод?
кто такой "он", можно поинтересоваться??? если в классе сделана проверка if Assigned(FSameEvent) then , код пойдет своим чередом. В противном случае - AV неизбежен как победа мирового коммунизма ;-)
GrBob (2006-10-17 10:25:00) [5]Спасибо. И Data и Code необходимо установить в nil, или достоточно Code? И что в этом случае будет, не попробует ли он найти у существующего класса пустой метод?
Игорь Шевченко (2006-10-17 10:11:00) [6]
> Достаточно ли просто повторить SetMethodProp, передав ему
> TMethod с указателем в nil?
Достаточно