Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2007, 17:40   #1
SergeySK
 
Регистрация: 31.10.2007
Сообщений: 3
По умолчанию Передача сообщения из программы в свою Dll

Ребята, ткните носом. Что не так?

Необходимо чтобы программа передала сообщение всем своим ДЛЛ-кам.
Пишу
WM_CHANGE_SKIN:=RegisterWindowMessa ge('WM_CHANGE_SKIN');
......
BroadcastSystemMessage(BSF_POSTMESS AGE,PDWORD(BSM_ALLCOMPONENTS),WM_CH ANGE_SKIN,1,0);

SendMessage вроде как тут не работает

Теперь в ДЛЛ где я должен ловить это сообщение?
ловлю в

procedure TFormMain.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_CHANGE_SKIN then
begin
действие
end;
end

его там нет?
Вопрос к знатокам? Что не так?
SergeySK вне форума Ответить с цитированием
Старый 31.10.2007, 17:53   #2
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию

Цитата:
BroadcastSystemMessage(BSF_POSTMESS AGE,PDWORD(BSM_ ALLCOMPONENTS),WM_CHANGE_SKIN,1,0);
Так нельзя. Вы обманываете компилятор, но второй параметр тем не менее передаетет не верно. Нужно передавать именно указатель, а не значение приведенное к указателю. Т.е. так:
var
dw: DWORD;
begin
...
dw:=BSM_ ALLCOMPONENTS;
BroadcastSystemMessage(BSF_POSTMESS AGE,@dw,WM_CHANGE_SKIN,1,0);

хотя в вашем случае вторым параметром можно просто передавать nil, будет то же самое. Для начала исправьте это, а дальше - посмотрим.
Slovinsky вне форума Ответить с цитированием
Старый 31.10.2007, 18:06   #3
SergeySK
 
Регистрация: 31.10.2007
Сообщений: 3
По умолчанию

исправил. Изменений никаких.
Кстати, забыл сказать что в ДЛЛ я также прописал строчку
WM_CHANGE_SKIN:=RegisterWindowMessa ge('WM_CHANGE_SKIN');

может я не там ловлю. Или отсылать надо не тем?
SergeySK вне форума Ответить с цитированием
Старый 01.11.2007, 14:42   #4
SergeySK
 
Регистрация: 31.10.2007
Сообщений: 3
По умолчанию

Ребята!!!! Ну помогите же кто-нибудь!!!! Неужели никто не знает?
Чувствую, что вопрос буквально одной строчки....
SergeySK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Измерь свою скорость zetrix Свободное общение 64 28.08.2008 22:03
вывод сообщения при закрытии программы tiger Помощь студентам 4 27.08.2008 23:31