| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > "Перегрузка метода" |
| Автор: DarkProg 29.3.2012, 16:12 | ||||||
| Не могу понять как можно реализовать следующее. В общем для понимания напишу мини-класс коорый должен выполняться.
Т.е. есть нечто такое. В неком месте у этого компонета есть вот такое вот присвоение(в неком, потому что я так и не нашёл в каком, но оно есть и почему я так решил опишу далее)
С чего решил что есть, да очень просто, я пишу свой класс в котором мне тое нужно следить за изменением этого Strings и делаю это аналогичным образом
После такого присвоения отказываются работать некоторые вещи, которые работать должны, комментирую строчку опять работает. Вопрос как можно сделать свою процедуру на событие OnChange и при этом так чтобы та которая присвоена ранее работала или как вызывать ранее присвоенную? |
| Автор: MetalFan 29.3.2012, 16:18 |
| DarkProg, запомнить "старый" OnChange перед назначением своего, затем в своем вызывать "старый". Но это может быть чревато... |
| Автор: MetalFan 29.3.2012, 17:45 | ||
Показывай код. |
| Автор: DarkProg 29.3.2012, 18:56 | ||||
Запоминаю указатель на старый обработчик вот так
А вызвать пытаюсь вот так, что естественно неправильно, не могу понять как правильно
Пробовал использовать как TNotifyEvent, но что-то не работает... Я никак не могу разобраться как именно ссвязаны некоторые свойсва. |
| Автор: DarkProg 29.3.2012, 19:23 | ||||||
| Получилось... вот же намучался.... Рассказываю как делать, чтобы больше никто так не мучался.
Объявляем свой тип указателей на некоторую процедуру. Далее, я делал внутри своего класса, но в принципе параллельно где вы захотите объявить, объявляете переменную типа TChangeSQL. Далее надо же что-то записать.
Тем самым сохранил старый обработчик и присовил новый. А внутри нового обработчика пишу следующее
И счастье вот оно |
| Автор: MetalFan 29.3.2012, 21:27 | ||
Все должно было прекрасно заработать и с TNotifyEvent.
Зачем обнилять переменную? |
| Автор: DarkProg 29.3.2012, 23:08 |
Да честно говоря без надобности, просто у меня почему-то изначально указатель не был равен nil, хотя после выполнения присваивания уже до лампочки что там будет. Я там кажись кое что ещё пытался сделать вот и осталось. Понятия не имею чего оно не заработало, хотя щас есть одно мнение, пойду попробую... Добавлено через 3 минуты и 55 секунд Да, действительно работает и с TNotifyEvent. Всё дело в объявлении соответствующего типа указателя. С Pointer лучше не баловаться.... |
| Автор: northener 30.3.2012, 00:22 |
А мне показалось, что всё дело было в "собаке, которая залезла в чужой огород". |