Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2007, 21:09   #1
tolyan_baraban
 
Регистрация: 22.09.2007
Сообщений: 4
По умолчанию Как стирать объекты?

Пишу программу. Она открывает карту (.bmp) в Image1 и потом пользователь
должен рисовать на ней граф (кружочки Ellipse соединённые между собой линиями).
Как рисовать это - понятно, но как удалить нарисованное? Если Ellipse и
удаляется то вместе с частью карты, оставляя на этом месть белое (или чёрное) пятно.
Манипуляции с Pen.Mode не помогают.
В идеале нужно чтобы пользователь мог рисовать в этой программе как в Word'е.
Посоветуйте как это реализовать (хотя бы сам принцип в двух словах), или
посоветуйте книгу (и желательно ссылку).

P.S. не пинайте чайника,я только учусь
tolyan_baraban вне форума Ответить с цитированием
Старый 23.09.2007, 02:10   #2
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Хмм..
Можно попробовать реализовать такой алгоритм.
Загрузили картинку в Image, сделаем для нее бэкап (для восстановления).
Отрисовали кружок, затем надо его стереть: при стирании попиксельно восстанавливаем картинку из бэкапа, на те места, где сейчас стирается.
Примерно такой алгоритм.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 23.09.2007, 10:40   #3
tolyan_baraban
 
Регистрация: 22.09.2007
Сообщений: 4
По умолчанию

Наверное это будет слишком сложно, ведь если нужно стереть кружок и он соединён с другими кружками линиями, то должны удаляться и эти линии, тогда надо ещё и их восстанавливать.
У меня есть похожая прога РАБОЧАЯ, там тоже кружки и линии. Я её декомпилировал... Так вот там кружочки/линии рисуются/удаляются насколько я понял так:
Forms.TCustomForm.Close (для удаления)
Forms.TCustomForm.Show (для появления).
Может это оно?
tolyan_baraban вне форума Ответить с цитированием
Старый 23.09.2007, 10:47   #4
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Так это полная перерисовка, по-любому.Тот вариант, который я предложил, он как раз и расчитан на то, чтобы избежать полной перерисовки. Выложи лучше свою прогу, тогда можно будет давать уже конкретные советы.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 23.09.2007, 15:17   #5
tolyan_baraban
 
Регистрация: 22.09.2007
Сообщений: 4
По умолчанию

Всё, понял, когда получается дыра я заново делаю
Form1.Image1.Picture.LoadFromFile(K arta);
и дыра исчезает, конечно при этом прийдётся всё перерисовать...
Ну и пусть, ведь глазом этого не видно (не мигает), а массив с
координатами всех эллипсов и линий мне и так прийдётся создавать
для дальнейших вычислений (это мой диплом).
Спасибо за подсказку.
tolyan_baraban вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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