![]() |
|
![]() ![]() ![]() |
|
count |
|
||||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Собственно вопрос:
хочется в рантайм создать обработчик события (ну например AfterEdit) и присвоить его соответсвующему event'y датасета. соответственно - написал процедуру вида
и пытаюсь ее присвоить :
и это не работает... наверное я сильно не прав с синтаксисом, но где именно? заранее благодарен за помощь. |
||||
|
|||||
БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: нет Всего: 17 |
Обратите внимание на of object Ваш обработчик должен быть не отдельной процедурой, а методом какого-либо класса. Смотрите ссылки: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=68289 http://www.delphikingdom.com/asp/answer.asp?IDAnswer=50218 |
|||
|
||||
БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: нет Всего: 17 |
Ещё пару слов...
Указатель на метод на самом деле содержит два отдельных указателя: на собственно функцию и на объект (TDataSetNotifyEvent, кстати, имеет sizeof не 4, а 8). Обычно этот момент упускается из вида, т.к. в большинстве случаев обработчик является либо методом класса формы, на которой расположен элемент управления, которому назначается событие, либо методом дата-модуля, на котором находися датасет. В этом случае всё происходит просто и естественно за счёт неявного Self, не вызывая дополнительных вопросов. Если же обработчик является методом постороннего класса, то появляются дополнительные тонкие моменты. По этому поводу можете посмотреть ещё ссылки: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=72459 http://www.delphikingdom.com/asp/answer.asp?IDAnswer=55213 |
|||
|
||||
count |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
в общем собаку я забыл....
|
|||
|
||||
БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: нет Всего: 17 |
||||
|
||||
count |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
да, там на основании датасета идут проверки и некоторые дополнительные действия.
(а чем неудачное то?) |
|||
|
||||
БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: нет Всего: 17 |
Смотрите ссылки в двух первых ответах. Там много и подробно. Если кратко, то в приведённом вами виде (не метод, а отдельная процедура) в процедуре вы получите вместо ссылки на датасет мусорную ссылку на Self, а ссылка на датасет будет идти вторым параметром, который вы не используете... Это сообщение отредактировал(а) БелАмор - 17.8.2010, 12:45 |
|||
|
||||
count |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Да, точно. так и будет. эта процедура реально объявлена в датамодуле, поэтому проблемы в приложении не возникнет. За ссылки - спасибо.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |