Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2008, 12:15   #1
devi409
Пользователь
 
Регистрация: 28.12.2006
Сообщений: 75
По умолчанию Почему у компонента TImage не работает метод Perform?

Почему у компонента TImage не работает метод Perform?
К примеру беру обычную Tpanel посулаю ей сообщение WM_SYSCOMMAND с параметром $F012 то она передвигается и можно отловить событие WM_MOVE
однако отсылая через perform компоненто TImage тоже самое сообщение результат нулевой.
вычитал что Tpanel является оконым компонентом а TImage графическим.
Можно ли создать свой компонент потомок Timage но чтобы он был и оконным и графическим? и как это сделать?

ЗЫ: Я понимаю что пользуюсь системной функцией и младшие биты использовать нельзя (так сказано в документации).

Последний раз редактировалось devi409; 20.12.2008 в 13:00.
devi409 вне форума Ответить с цитированием
Старый 20.12.2008, 14:32   #2
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Как вы правильно заметили TImage не является наследником TWinControl. Вся проблема в том что у TImage нет Handle, на который посылается сообщение, те с точки зрения windows это не окно. Эту потаницу ввел borlan. Поместите например tImage на TPanel и посылайте все сообщения последнему или напишите наследника от TWinControl.
Насчет использования нижних битов - все верно все в порядке - вам не рекомендуют создавать свои сообщения в младшем слове. А посылать вы можете что угодно.
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 20.12.2008, 16:58   #3
devi409
Пользователь
 
Регистрация: 28.12.2006
Сообщений: 75
По умолчанию

спасибо
devi409 вне форума Ответить с цитированием
Старый 21.12.2008, 09:42   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,808
По умолчанию

Цитата:
Сообщение от 0nni Посмотреть сообщение
Насчет использования нижних битов - все верно все в порядке - вам не рекомендуют создавать свои сообщения в младшем слове.
поправка: в младших четырёх битах
rpy3uH вне форума Ответить с цитированием
Старый 21.12.2008, 10:07   #5
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

rpy3uH, Чтож вы мне это все на вид то ставите?
http://www.delphikingdom.com/asp/ans...IDAnswer=67399
Наверное стоит задуматься?
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 22.12.2008, 11:21   #6
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,808
По умолчанию

не понял. что я сказал не так?
здесь написано что младшие 4 бита используются системой
Цитата:
In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system. To obtain the correct
result when testing the value of wParam, an application must combine the value 0xFFF0 with the wParam value by using the bitwise AND operator.
rpy3uH вне форума Ответить с цитированием
Старый 22.12.2008, 12:27   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Всё уже изобретено

Таскаемый мышью TDragImage как потомок TCustomControl:
http://programmersforum.ru/showpost....0&postcount=12
пыщь
JTG вне форума Ответить с цитированием
Старый 22.12.2008, 17:51   #8
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
не понял. что я сказал не так?
Нет, это был камень в мой огород.
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему не работает domovoi Общие вопросы Delphi 1 15.10.2008 18:42
Почему инди-компонента TIdTCPServer тормозит после десяти минут работы? alex-v Работа с сетью в Delphi 2 15.07.2008 19:02
Почему не работает цикл????? Marsik Помощь студентам 2 22.06.2008 14:16
Почему не работает код? Kashp Общие вопросы Delphi 3 09.08.2007 17:33