Обработка событий сквозь объект

357
13 января 2017, 09:30

Есть у меня два класса, оба наследуются от TImage
В объекте первого класса есть указатель на объект второго класса картинка у него рл размеру меньше)
Когда я нажимаю на объект первого класса, срабатывает его обработчик OnClick и создаётся объект второго класса, который почти полностью перекрывает первый объект
Когда я снова нажимаю на объект первого класса, объект второго класса должен удалится, но из-за своего размера, мне приходится нажимать на край первого объекта
Можно как-то сделать так, чтобы при нажатии на объект первого класса объект второго класса игнорировался, так сказать, чтобы обработчик отловил событие сквозь второго объекта

Answer 1

Эндрю, на СиБилдере программил достаточно давно, посему - кодом тебя не обеспечу. Но рекомендации дам, и уверен, они тебе помогут.

Можно как-то сделать так, чтобы при нажатии на объект первого класса объект второго класса игнорировался, так сказать, чтобы обработчик отловил событие сквозь второго объекта?

Поход неверный

Имеем

  • Объект класса "A"
  • Объект класса "В", который является "потомком" объекта класса "A", и частично может его перекрывать
  • Объект класса "В" находится "выше" по Z-координате объекта класса "A"

Обеспечиваем

  • У всех объектов есть поле ссылки на "родителя"
  • У всех объектов есть поле списка (массива) на потомков

Этим обеспечивается коммуникация GUI-объектов, в иных терминах - виджетов.

Передаем

  • Один из виджетов словил клик на координате (x,y)
  • По условиям вопроса данный виджет должен вызвать у "родителя" обработчик, иными словами - "прокинуть". А соответствующий указатель у нас есть.
  • Что может сказать "родитель"? "Сделано" или "Обрабатывай сам"
  • Что может сделать "родитель"? 1) Сделать самому, 2) Отдать задачу "другим потомкам", "Отказаться"
READ ALSO
Как читать предложение в C++? [требует правки]

Как читать предложение в C++? [требует правки]

Как можно прочитать введенное в программу предложение и переместить слова в вектор строк?

387
Может ли double понимать числа с ' , ' вместо ' . '?

Может ли double понимать числа с ' , ' вместо ' . '?

Доброго времени сутокРеализую калькулятор в Qt

272
Qt. Передача данных между двумя классами

Qt. Передача данных между двумя классами

Есть два окнаВ одном окне LineEdit, в другом - PushButton

448
Какие технологии Boost уже были включены в официальную спецификацию C++ 11? [требует правки]

Какие технологии Boost уже были включены в официальную спецификацию C++ 11? [требует правки]

Какие технологии Boost были включены и реализованы в stdlib C++ 11?

262