Конференция "Media" » Масштабирование Image и привязку координат
 
  • mishapk © (17.11.11 14:22) [0]
    Добрый день.
    Есть 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, один на другом, - кошмар.
  • mishapk © (17.11.11 14:38) [2]

    > P.S. TImage - зло. Несколько TImage, один на другом, - кошмар.
    >
    >
    >


    А как будет не зло, если Image1 Подложка - план-схема. А Другие на ней условные обозначения?
  • Омлет © (17.11.11 14:45) [3]
    > А как будет не зло

    Рисовать всё в памяти на TBitmap и выводить его на TPaintBox по событию OnPaint, к примеру.
  • mishapk © (17.11.11 15:01) [4]
    У меня задача не просто прорисовать, а расставить мышкой мелкие изображения в нужных местах.
  • Омлет © (17.11.11 15:09) [5]
    > расставить мышкой мелкие изображения в нужных местах

    Надо обрабатывать события OnMouseDown, OnMouseMove и OnMouseUp. Если Down на мелкой картинке, а потом Move - затираем её на старом месте в буфере (TBitmap) и рисуем на новом месте, а после этого выводим измененную область буфера, которая включает все изменившиеся области, на экран.
  • Омлет © (17.11.11 15:15) [6]
    Есть такой пример буферизированного вывода - http://fenik.nm.ru/DrawPanel.zip
    Но он несколько отличается от твоей задачи - там можно рисовать фигуры, а не перемещать. Но сути это не меняет.
  • Jeer © (17.11.11 16:31) [7]
    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
 
Конференция "Media" » Масштабирование Image и привязку координат
Есть новые Нет новых   [134430   +2][b:0][p:0.001]