Вниз
Скачать: CL | DM;

Графические объекты   Найти похожие ветки 

 
Marconi ©   (2003-07-22 23:53) [0]

Нужно рисовать некие геометрические фигуры из линий. С этим сложностей нет, но они должны быть не пассивные, а реагировать на некоторые действия. То есть например отрабатывать клик мышки на линию(например для последующего удаления). Соответственно просто рисование на канве не очень то и подходит. С чего бы начать? Может кто-то решал подобные задачи?


 
Suntechnic ©   (2003-07-23 01:04) [1]

Многое зависит от того, что это за геометрические фигуры. Здесь два варианта решения:
1) Геометрические фигуры это контролы которые получаются из обычных окошек путём SetWindowRgn. Регионы при этом могут быть весьма и весьма замысловатые. Положительный момент здесь тот, что раз это контролы то и сообщения они могут обрабатывать с необычайной лёгкостью. К отрицательным сторонам относиться тот факт, что не каждую геом. фигуру можно представить в виде региона + ресурсы GDI небесконечны.

2) Рисовать "вручную". Делать некое подобие VCL-кого класса TLabel. Положительные моменты на лицо, к отрицательным относится тот факт, что сообщения будет получать то окно, на котором будет осуществляться рисование и диспетчеризировать их к этим "ручным" контролам придётся опять же вручную.


 
Спрашивающий_   (2003-07-23 03:24) [2]

Могу добавить если выбран второй вариант то облегчением задачи по разграничению работы с отдельными частями общего рисунка это- каждую часть можно прорисовывать не на общем "холсте", а на отдельном коим может явиться TBitmap-почему так думаю объяснять не надо,а затем все собирать воедино, тем самым можно эмулировать выделение конкретной части, ну а далее геометрия и математика........


 
race1 ©   (2003-07-23 05:58) [3]

я решаю подобную задачу (Marconi - а не одну и туже? ;) и решил использовать наследник TGraphicControl"а. здесь что ли так много минусов, что он в список не включён? :)


 
Marconi ©   (2003-07-23 07:10) [4]

to Suntechnic
Фигуры элементарные, линии, максимум кадрат из этих линий, я уловил суть, спасибо попробоую...


 
Dick ©   (2003-07-23 08:29) [5]

Самый простой вариант - TPaintBox.
В OnMouseDown(up,move) - реализация "живого" поведения.
Лучше всего фигуры сделать объектами, завести список этих объектов и уже с ним работать.


 
Marconi ©   (2003-07-23 09:24) [6]

to Dick
PaintBox создаёт рамку и ловит нажатие, даже нажимать не на линии


 
KSergey ©   (2003-07-23 10:04) [7]

Marconi © (23.07.03 07:10)
to Suntechnic
Фигуры элементарные, линии, максимум кадрат из этих линий, я уловил суть, спасибо попробоую...


Линии только вертикальные и горизонтальные? Или произвольного наклона? Если только первое - тогда на 100% можно обойтись TShape - все нужные задачи это решит (и по квадратам в том числе).


 
Marconi ©   (2003-07-23 10:22) [8]

KSergey
в том и дело что произвольные...в общем пара идей есть, всем спасибо буду пробовать



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.017 c
1-10217
Kair
2003-07-19 09:45
2003.08.04
Кнопка на панели задач


1-10170
Smok_er
2003-07-22 23:18
2003.08.04
Вызов Close в обработчике OnActivate


1-10202
hawkins
2003-07-23 11:16
2003.08.04
Как получить дескриптор существующего файла


3-10121
PavelOKES
2003-07-15 08:58
2003.08.04
Как вызвать конструктор ConnectionString для ADOConnection?


11-10160
DNT
2002-11-30 17:44
2003.08.04
Без окна




   Наверх