![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Народ, что я тут не так делаю?
После вызова SomeCell:= AddCell(SomeMethod); SomeCell.OnValueChanged == nil!!!! Что тут не так? -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| dm9 |
|
||||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
ИМХО, это их области ошибки в 17-й строке... Но у меня вот так всё работает.
Пришлось, правда, protected заменить на public. Хотя, может, я что-то недопонял? |
||||
|
|||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
у того метода действительно модификатор protected т.к. его там хватает(его вызывает наследник). Просто там цирк твориться. Насколько я знаю это событие передаётся по ссылке. т.е. есть переменная которой уже присвоен метод. для всех cell присваивается эта переменная, но в одних cell она правильна, а в других nil. Они ж как бы должны все быть одинаковыми? я ж правильно понимаю?
-------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Не совсем понял, честно говоря. Ты хочешь сказать, что для всех переменных типа TCell должен ставиться одинаковый обработчик? Если ты в ф-ции AddCell указываешь одинаковый обработчик, так и будет... По крайней мере, должно быть так. Но это гадание. Я ж говорю - ошибка в 17-й строке.
PS Орфография и пунктуация forever |
|||
|
||||
| altarasjuk |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
-------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
||||||||||
|
|||||||||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
dm9, это мы с тобой спорили по поводу дин. массивов? Если так, то это как раз тот случай когда имеет смысл их использовать....... (Это так, чтобы ты меня не считал противником рациональности). Я щас попробую переделать это под массив, но всё равно интересно, пчему такое твориться.....
-------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
>>Я ж говорю - ошибка в 17-й строке
>Модификатор доступа там должен быть протектыд. Этот метод никто извне не вызывает. Это прикол такой >т.е. если я правильно тебя понял, то ты хочешь сказать, что обработчик передаётся по значению ИМХО, да >ну смотри: Завтра посмотрю код, сейчас времени нет. Может, найду что интересное... Это сообщение отредактировал(а) dm9 - 19.6.2003, 22:20 |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
-------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Что в твоем понимании означает, "обработчик передаётся по значению"? Обработчик - это восьмибайтовый указатель. То есть это, можно сказать, целое число поделенная на две части - в первых четырех байтах храниться указатель на объект, к которому пренадлежит метод, адрес которого храниться во вторых четырех байтах. Как ты его не передавай, хоть по ссылке, хоть по значению, его значение останеться тем же. -------------------- Волны гасят ветер... |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Здесь fOnValueChanged используется, а где инициализируется? Хотя вообще спрашивать тут не о чем. Тут дебаггер в зубы и вперед. P.S. Есть такой класс TObjectList, удобнее для хранения объектов. -------------------- Волны гасят ветер... |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Fantasist, знаю о таком классе, но я тут использовал Tlist на случай, если надо будет перейти на интерфейсы (тогда на TInterfaceList переход будет неощутим)
-------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Fantasistб по поводу по значению: Тут получается прикол:
Вот есть переменная onEvent: TNotifyEvent. и уже cell.onEvent:= onEvent. т.е. если мы изменяем onEvent, то по идее и cell.onEvent изменится так жеж? а этого не происходит..... -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |