![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
У меня есть такая ситуация.
Есть универсальный обработчик, в котором есть Sender:TObject В обрабочике необходимо выполнить PostMessage(FormHandle, WM_My_Message, Integer(Pointer(Sender)), 0) Я пытался передавать Handle компонента, но как бы потом используя FindControl я ничего не получу, т.к. работает это только для форм... указатель передать через выше приведенную конструкцию не получается... У меня в половине случаев указатель получается верный, во второй неверный... Как быть? -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
что передаешь, то и получаешь. Что значит "неверный" указатель? аллаху не поклоняется или свинину ест? -------------------- There are always someone smarter than you... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Указатель правильный на момент отправки сообщения.
Но на момент получения нет гарантий, что по этим адресам что-то есть. Например, если в обработчик была отдана копия объекта... |
|||
|
||||
| DarkProg |
|
||||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Ну как бы Sender точно существует.
Мнда.... и как же сие избежать... Кстати и почему может быть передана копия объекта, ведь если сделать
-------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
||||
|
|||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
DarkProg, а обратное приведение как выглядит?
Хотя... о чем это я, оно же не меняется время от времени, если "частично работает" - должно быть правильно. Snowy, тоже интересно - как это, "копия объекта"? Всё время считал, что передается только указатель, который копируй/не копируй, а всё равно будет смотреть на тот же участок памяти. Объясните, пожалуйста. Это сообщение отредактировал(а) kami - 4.4.2012, 22:25 |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
А очень просто перевожу, делаю вот так
-------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 14 Всего: 41 |
DarkProg, А можешь смоделировать простейший пример, где не работает? Интересно поковырять.
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Чисто уже из спортивного интереса чуть позже попробую сделать простой пример, но не уверен что сработает в простом примере....
P.S. спортивного, потому что уже решил проблему по другому. Я передаю ComponentIndex - работает. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
Просто проблема у тебя в некорректном коде, а не в простоте или сложности примера. Передал указатель, который по получению оказывается уже невалидным. -------------------- There are always someone smarter than you... |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Почему? -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
В половине случаев это часом не в сборке под х64? Тога дело в том что вместо интегер нужно NativeInt
-------------------- Обижено школьников: 8 |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Не только 32-х битный вариант пока делается. Пока на XE2 не перешли до сих пор... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
![]()
|
| Правила форума "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. |