![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Antony41 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
Вот есть стандартные значения параметров WPARAM и LPARAM
но мне нужно передать больше параметров, значит нужно создать свою структуру и передавать указатель на эту структуру в параметре LPARAM делаю так
Вот так пытаюсь обработать полученное сообщение
Вот не выходит и всё! как правильно то? |
||||||
|
|||||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Как бы для этого надо использовать wm_CopyData . Пример - http://stackoverflow.com/questions/3058411...eparate-process
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
Блин так и подумал, но что то запутался... Будет ли правильным способом передавать структуры от потока к основному потоку через wm_CopyData?
|
|||
|
||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Это один из вариантов взаимодейтсвия, слово "правильно" в данном случае неуместно и зависит от конкретного случая. В рамках одного delphi приложения обычно достаточно стандартного Synchronize. Если это межпроцессовое взаимодействие то тогда wm_CopyData вполне уместно. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
При передаче сообщений внутри одного приложения wm_CopyData не нужен. Можно передать просто указатель на структуру.
Вот только у вас в коде
MyMsgStruct: похоже является локальной переменной и после выхода из этой процедуры она теряет свою актуальность и Application.MainForm получает указатель на мусор. Выделяйте память под свою структуру в куче, например через GetMem и передавайте указатель. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
И в таком случае не забудьте про освобождение памяти ![]() -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
Antony41 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
Дак в том то и дело что не получается передать указатель на структуру
|
||||
|
|||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Ну это как бы само сабой подразумевается. Взрослому человеку не нужно постоянно напоминать что нужно мыть руки выйдя из туалета ![]() Это сообщение отредактировал(а) northener - 19.7.2013, 11:18 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Illusion Dolphin |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Да ну?
Добавлено через 3 минуты и 32 секунды
New, PostMessage таит в себе теоретические проблемы освобождения памяти т.к. может быть 1) несколько обработчиков на сообщение 2) сообщение может не дойти (RecreateHandle или оно закрылось). В этом случае память будет потеряна - я хотел на всякий случай уберечь человека от такого ![]() -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||||
|
|||||||
Antony41 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
Во блин правда)))) вот я парился думал что правда не передается, а оказывается проблема то была в другом совсем)
Добавлено через 3 минуты и 20 секунд Всё не работало из за того что у меня было так
а надо
|
||||
|
|||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
От сумы и от тюрьмы всё равно не убережешь ![]() А SendMessage для многопоточной задачи как серпом по фабержам. Почти как Synchronize(DoWork) ![]() -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
||||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Да. Правильно полагаете. Вот тут сейчас обсуждается подобное. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
Всем спасибо!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |