Как создать новый визуальный компонент?
Хочу сделать простенький графический редактор в целях изучения графических возможностей Делфи но затрудняюсь с реализацией некоторых функций и событий:
- Нарисованные линии выделять кликом мыши;
- Удалять после выделения;
- Чтобы при наведении на нарисованную линию курсора мыши та выделялась и теряла выделение при дальнейшем перемещении курсора
Думаю, может нужно создать какие-то объекты которые отвечали за нарисованные линии или как?
Создать компонент очень просто:
Меню - Components - NewComponent
Потом нужно выбрать класс-предок, и указать класс потомок. Система создаст модуль-"рыбу".
Совет создавай компонент в контексте какогонибудь проекта - будет удобно отлаживать - и не нужно регистрировать компоненту для работы.
Т.е. ты создаёшь обычный проект и подключаешь к нему модуль своей компоненты. Во время работы ты должне самостоятельно создавать свою компоненту, вызывая конструктор и указывая значения свойств Parent, Name, Left, Top и др.
С Делфи уже поставляются примеры компонент - TGauge (вкладка Samples) - посмотри его код.
по линиям.
Советую сначала механизм рисования линий реализовывыть не в компоненте - меньше проблем будет, а например на том же TPaintBox-е. Если сделаешь на его основе, то сможешь смело завернуть это в контрол пронаследованный от TPaintBox.
Попробуй использовать регионы (во всяком случае GDI+ умеет определять на каком регионе было кликнуто)
Лучше скачай http://forum.pascal.net.ru/index.php?showtopic=6361 и посмотри там статью о работе с регионами (да и вообще в этой базе есть много полезной информации)...
Попробую скачать, хотя будет проблематично с такой скоростью как у меня, 10 метров все таки..