Главная страница
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.156 c
15-1163011947
AntiUser
2006-11-08 21:52
2006.11.26
Самые опасные порты?


15-1162916261
*Стажер*
2006-11-07 19:17
2006.11.26
Компьютер программиста, какой он?


15-1162998173
well
2006-11-08 18:02
2006.11.26
BDS и Database Desktop


2-1163014596
Greenchel
2006-11-08 22:36
2006.11.26
Пробелы в TEdit


2-1162887021
V.I.P
2006-11-07 11:10
2006.11.26
работа с двумя таблицами выручайте