Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.09.2009, 17:31
delphinenok delphinenok вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 8
Репутация: 10
По умолчанию Удалить линию с PaintBox

Здравствуйте!
Есть Image с загруженной пёстрой картинкой, поверх – PaintBox. На PaintBox рисую линии.
Вопрос:
Как стереть (удалить) линии на прозрачном PaintBox. Если бы был однородный фон, то можно было бы рисовать цветом фона для удаления линии, но здесь прозрачный фон. Pen.Style:=psClear не помогает. Неужели придётся рисовать через BitMap. Подозреваю, что есть какое-то простое решение, но мозги замылились и сообразить уже не могу.
Помогите пожалуйста. Заранее благодарю.
Ответить с цитированием
  #2  
Старый 14.09.2009, 17:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,034
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

В общем случае, удалить линию с PaintBox нельзя. Можно перерисовать его без этой линии. А более конкретно - зависит от конкретной задачи.

Вообще, класть Image, а поверх него PaintBox - не самое лучшее решение.
Я делал немного подругому. В приложении к твоей задаче - как я ее понимаю - это будет так:
- сама задача. На экране есть изображение некотороой загруженной картинки и пользователь рисует на ней какие-то фигуры.
- решение. На фрме есть _только_ PaintBox. Картинка загружена в буферном битмапе. При рисовании пользамком запоминаем (в массиве, например) что он делает. Далее на еще одном буферном битмапе сначала отрисовываем картинку, а потом все действия пользователя. Дялее результат выводится на PaintBox. Можно отрисовывать сразу на PaintBox'е, но тогда возможно мерцание. Теперь с удалением - просто выбрасываем из списка действий соответсвующий элемент и отрисовываем все заного. Если размер битмапа разумный (ну примерно по размерам экрана), то никаких тормозов не будет. Более того, у меня в одном проекте в памяти хранится картинка с 8 мегапиксельной камеры. Так вот, отрисовка проходит мгновенно, никаких тормозов нет. И это не на самом быстром компьютере. Основные тормоза идут при загрузке следующей картинки.
Ответить с цитированием
  #3  
Старый 14.09.2009, 17:59
delphinenok delphinenok вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 8
Репутация: 10
По умолчанию

Спасибо, я подозревал, что без буфера не обойтись, но подумал, что туплю и есть решение проще.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter