![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Вопрос к знающим. Поскольку Делфи только щупал, то ответте пожайлуста сложно ли создать в делфи тип (ну или че там) чтобы графический объект типа линии или окружности и т.п. (геом. примитив) реагировал на мышь и имел стандартные данные типа длинны и начала и конца. Короче че-то на манер Автокада или Компаса? И как я понимаю это сделать можно, то покрайней мере подтолкните в каком направлении двигаться? Какой тип взять за основу или лучше для этого учить Си? В итоге данные примитивы должны браться с панели и переноситься на поле типа картинка и позволять себя изменять мышкой? Заранее спасибо!
|
#2
|
||||
|
||||
![]() Cмотрите TShape. В исходниках есть его реализация.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Есть 2 варианта.
1. Ты пишешь соответсвующие классы, имплементирующие нужное тебе поведение (например, наследники от TGraphicControl). 2. Ты делаешь все руками на TPaintBox, а по координатам клика просто вычисляешь нужный тебе объект и делаешь нужные действия. Второй вариант немного попроще, хотя классы все-равно придется писать, но в этом случае они сами по себе будут не визуальны, а будут только иметь метод отрисовки на переданной канве. Если не знаешь ни Дельфи, ни С, то, в общем, все равно в чем писать, разве интерфейс будет чуть проще рисовать в Дельфи. |
#4
|
|||
|
|||
![]() Спасибо всем кто откликнулся! Но жаль мне не сильно это помогло, т.к. необходимость создания своего класса я понимаю и что он должен быть потомком любого графического, но сам принцип? При создании мною линии, мой клас должен создать объект, например линия, в котором будет массив с указанием всех точек принадлежащих этой линии и влучае клика я буду искать кому принадлежит точка с координатами клика? Или же есть более простые способы? Извините, если напрягаю обыденными/примитивными вопросами.
|
#5
|
||||
|
||||
![]() Если вы планируете написать все с нуля, т.е. подменить уже существующий GDI на свой, то именно так и придется делать, но я думаю что вам не это нужно. Надо просто воспользоваться базовыми классами, в которых уже реализованы основные методы. Чуть раньше я вам предложил посмотреть как реализован класс TShape. Он есть в исходниках и как пример работы подходит идеально.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |