-
Добрый день.
Есть Image1 установленный на Panel1 на него сверху динамически создаются маленькие Image's.
Вопрос как организовать масштабирование Image1 , а также масштабирование динамически созданных image's и привязку их координат, при изменении размеров Panel1?
Есть ли какой то простой способ без перерасчета координат всех компонентов? -
Омлет © (17.11.11 14:31) [1]Запоминаешь относительные координаты, потом переводишь в абсолютные.
Например, относительные координаты левого верхнего угла Image1:dX := Image1.Left / Panel1.ClientWidth;
dY := Image1.Top / Panel1.ClientHeight;
После изменения размеров панели, вычисляем новые реальные координаты:Image1.Left := dX * Panel1.ClientWidth;
Image1.Top := dY * Panel1.ClientHeight;
P.S. TImage - зло. Несколько TImage, один на другом, - кошмар. -
> P.S. TImage - зло. Несколько TImage, один на другом, - кошмар.
>
>
>
А как будет не зло, если Image1 Подложка - план-схема. А Другие на ней условные обозначения? -
Омлет © (17.11.11 14:45) [3]> А как будет не зло
Рисовать всё в памяти на TBitmap и выводить его на TPaintBox по событию OnPaint, к примеру. -
У меня задача не просто прорисовать, а расставить мышкой мелкие изображения в нужных местах.
-
Омлет © (17.11.11 15:09) [5]> расставить мышкой мелкие изображения в нужных местах
Надо обрабатывать события OnMouseDown, OnMouseMove и OnMouseUp. Если Down на мелкой картинке, а потом Move - затираем её на старом месте в буфере (TBitmap) и рисуем на новом месте, а после этого выводим измененную область буфера, которая включает все изменившиеся области, на экран. -
Омлет © (17.11.11 15:15) [6]Есть такой пример буферизированного вывода - http://fenik.nm.ru/DrawPanel.zip
Но он несколько отличается от твоей задачи - там можно рисовать фигуры, а не перемещать. Но сути это не меняет. -
DrawObjects.
DrawObjects is a library of 16 Delphi components which simplify creating computer aided design projects such as organisational charts, flow charts, mind maps, family trees, simple clip art etc.
Copyright & License Info:
Copyright 2006 Angus Johnson
Пример набора объектов:
http://s017.radikal.ru/i429/1111/79/fef57b429dcf.png