Как получить контроль, который находится под другим контролем?

Я пытаюсь создать базовый редактор карт для удовольствия, который состоит из scrollbox и paintbox (для рисования сетки).

в событии OnMouseDown для paintbox я создаю изображения во время выполнения и добавляю их внутри scrollbox, сетка paintbox окрашена над изображениями ( потому что, если бы сетка была сзади, она просто не выглядела бы хорошо ).

вот пример экрана:

enter image description here

мой вопрос решил бы две мои проблемы в один.

  • мне нужно иметь возможность перетаскивать (перемещать) изображения во время выполнения.
  • мне также нужно иметь возможность получить положение X и Y изображения для отображения в качестве информации.

1 ответов


установить Enabled свойство PaintBox к False. Это позволит сообщения мыши пройти.

далее:

на OnMouseDown событие для PaintBox я создаю изображения во время выполнения и добавляю их в scrollbox

изменить на OnMouseDown событие в поле прокрутки. Отрегулируйте координаты по ScrollBox.[Horz/Vert]Scrollbar.Position.