powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В paintbox реализовать перетаскивание нарисованных фигур и изменение их размера
5 сообщений из 5, страница 1 из 1
В paintbox реализовать перетаскивание нарисованных фигур и изменение их размера
    #39961961
bigjoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Реально ли в paintbox реализовать перетаскивание нарисованных фигур и изменение их размера?

В голову пришло пока только такое решение:
1) Каждую фигуру рисовать на отдельном TBitmap(а ля слои в фотошопе)
2) Создать объект "фигура" и хранить в нем id фигуры, тип фигуры, ее координаты(или прямоугольник в который она вписана) и битмап с которым она связана, флаг-редактируется ли фигура и хранить все это в TObjectList.
3) отслеживать клик мышкой и проверять попадают ли координаты клика в прямоугольник фигуры
4) если совпало - поставить флаг, что эта фигура редактируется и рисовать вокруг фигуры прямоугольник с метками по краям для растягивания/уменьшения и где нибудь показать кнопку "применить"
5) При нажатии применить - обновить информацию в объекте и перерисовать соответствующий битмап

Так же есть идея сделать отмену действия(ctrl+z):
1) Создать объект "действие" и хранить в нем id фигуры тип действия(добавление, редактирование, удаление), начальное положение и прямоугольник и конечное положение и прямоугольник - для хранения всего этого так же использовать TObjectList
2) При клике мышкой запоминать начальное состояние фигуры, при отпускании - конечное
3) При нажатии ctrl+z смотреть последний объект, менять характеристики фигуры с "стало" на "было", перерисовывать битмап фигуры и удалять последний добавленный объект "действие".

На сколько бредовую чушь я написал выше?)
Если выше написал глупости - есть ли способ сделать правильно?(как?)

P.S.: Я использую RAD Studio 10.3 Community Edition
...
Рейтинг: 0 / 0
В paintbox реализовать перетаскивание нарисованных фигур и изменение их размера
    #39961963
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bigjoe,

посмотри "джедаев", там был готовый проект-рисовалка, вместе со статьей "как это работает".
...
Рейтинг: 0 / 0
В paintbox реализовать перетаскивание нарисованных фигур и изменение их размера
    #39961964
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bigjoe,

см. , для затравки, как вариант
https://github.com/littleearth/draw-objects
...
Рейтинг: 0 / 0
В paintbox реализовать перетаскивание нарисованных фигур и изменение их размера
    #39961998
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bigjoe

1) Каждую фигуру рисовать на отдельном TBitmap(а ля слои в фотошопе)
2) Создать объект "фигура" и хранить в нем id фигуры, тип фигуры, ее координаты(или прямоугольник в который она вписана) и битмап с которым она связана, флаг-редактируется ли фигура и хранить все это в TObjectList.
3) отслеживать клик мышкой и проверять попадают ли координаты клика в прямоугольник фигуры
4) если совпало - поставить флаг, что эта фигура редактируется и рисовать вокруг фигуры прямоугольник с метками по краям для растягивания/уменьшения и где нибудь показать кнопку "применить"
5) При нажатии применить - обновить информацию в объекте и перерисовать соответствующий битмап

1. Все фигуры продолжают рисоваться одним списком.
2. Научить Фигуру рисоваться в заданной прямоугольной области, присвоить флаг видимости.
3. Редактирование
а) При клике мышкой на PaintBox (в режиме редактирования), определить в какую фигуру попала точка клика (PtInRect по списку),
б) у найденой фигуры убрать видимость, и отрисовать её на ВТОРОМ PainBox-е, который и будем двигать и растягивать.
в) по окончанию изменения, передать новые значения в фигуру списка
...
Рейтинг: 0 / 0
В paintbox реализовать перетаскивание нарисованных фигур и изменение их размера
    #39962022
bigjoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ,
Не могли бы Вы чуть подробнее рассказать?
я ведь правильно понял, что речь про это https://github.com/project-jedi/jvcl ?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В paintbox реализовать перетаскивание нарисованных фигур и изменение их размера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]