Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.04;
Скачать: 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 вся ветка

Текущий архив: 2003.08.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
7-10476
Vasiliy
2003-05-24 16:56
2003.08.04
Господа, подскажите как отследить вращение ролика мышки?


4-10514
greenrul
2003-05-30 18:42
2003.08.04
Хуки:


14-10410
Andryk
2003-07-17 09:48
2003.08.04
После такого плаката и домой-то не захочется :о)))


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


3-10147
OlkaGTS
2003-07-11 14:07
2003.08.04
Фильтр и индекс по Lookup полю