Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-10269
zolotov
2003-07-21 15:57
2003.08.04
Проблема с копированием и вырезанием данных в F1Book


14-10368
Soft
2003-07-15 13:57
2003.08.04
Извиняюсь перед всем форумом


1-10217
Kair
2003-07-19 09:45
2003.08.04
Кнопка на панели задач


14-10426
__esso
2003-07-16 20:57
2003.08.04
Новый язык


14-10353
Катерина
2003-07-18 11:02
2003.08.04
До свидания!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский