|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.09.2007, 21:09 | #1 |
Регистрация: 22.09.2007
Сообщений: 4
|
Как стирать объекты?
Пишу программу. Она открывает карту (.bmp) в Image1 и потом пользователь
должен рисовать на ней граф (кружочки Ellipse соединённые между собой линиями). Как рисовать это - понятно, но как удалить нарисованное? Если Ellipse и удаляется то вместе с частью карты, оставляя на этом месть белое (или чёрное) пятно. Манипуляции с Pen.Mode не помогают. В идеале нужно чтобы пользователь мог рисовать в этой программе как в Word'е. Посоветуйте как это реализовать (хотя бы сам принцип в двух словах), или посоветуйте книгу (и желательно ссылку). P.S. не пинайте чайника,я только учусь |
23.09.2007, 02:10 | #2 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
Хмм..
Можно попробовать реализовать такой алгоритм. Загрузили картинку в Image, сделаем для нее бэкап (для восстановления). Отрисовали кружок, затем надо его стереть: при стирании попиксельно восстанавливаем картинку из бэкапа, на те места, где сейчас стирается. Примерно такой алгоритм.
Не надо ничего усложнять. Все достаточно тривиально.
|
23.09.2007, 10:40 | #3 |
Регистрация: 22.09.2007
Сообщений: 4
|
Наверное это будет слишком сложно, ведь если нужно стереть кружок и он соединён с другими кружками линиями, то должны удаляться и эти линии, тогда надо ещё и их восстанавливать.
У меня есть похожая прога РАБОЧАЯ, там тоже кружки и линии. Я её декомпилировал... Так вот там кружочки/линии рисуются/удаляются насколько я понял так: Forms.TCustomForm.Close (для удаления) Forms.TCustomForm.Show (для появления). Может это оно? |
23.09.2007, 10:47 | #4 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
Так это полная перерисовка, по-любому.Тот вариант, который я предложил, он как раз и расчитан на то, чтобы избежать полной перерисовки. Выложи лучше свою прогу, тогда можно будет давать уже конкретные советы.
Не надо ничего усложнять. Все достаточно тривиально.
|
23.09.2007, 15:17 | #5 |
Регистрация: 22.09.2007
Сообщений: 4
|
Всё, понял, когда получается дыра я заново делаю
Form1.Image1.Picture.LoadFromFile(K arta); и дыра исчезает, конечно при этом прийдётся всё перерисовать... Ну и пусть, ведь глазом этого не видно (не мигает), а массив с координатами всех эллипсов и линий мне и так прийдётся создавать для дальнейших вычислений (это мой диплом). Спасибо за подсказку. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Com Объекты и TcpServer | part13an | Работа с сетью в Delphi | 0 | 23.07.2008 16:14 |
Объекты или... | Lich | Общие вопросы Delphi | 1 | 03.06.2008 23:22 |
объекты в си | Барби | Помощь студентам | 1 | 13.05.2008 01:10 |
3D объекты в Си | g0liath | Помощь студентам | 2 | 20.04.2008 21:39 |
com-объекты | b-code | Общие вопросы Delphi | 0 | 15.03.2007 11:17 |