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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.04.2009, 21:08
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
Печаль я в растерянности

можно каким-нибудь образом стереть нарисованные линии на форме, кроме как закрасить в цвет формы?
p.s.:у меня на ворме размещена картинка(катра области) и мне необходимо прорисовать несколько дорог
Ответить с цитированием
  #2  
Старый 11.04.2009, 21:33
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Можно-можно!! =)
У объекта Pen (т.е. у карандаша, которым вы рисуете линию) есть свойство Mode, ответственное за режим рисования. Так вот, если этому свойству Mode присвоить значение pmNotXor, то карандаш при первом рисовании линии будет рисовать ее как обычно, а если нарисовать таким карандашом эту же самую линию второй раз, то прежнее изображение восстанавливается. В общем, смотрите справку по свойству Mode объекта TPen.
Ответить с цитированием
  #3  
Старый 11.04.2009, 21:40
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
По умолчанию

к сожалению оно мне не помогает
Ответить с цитированием
  #4  
Старый 11.04.2009, 21:42
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

В смысле?? Значит, вы что-то делаете не так.
Ответить с цитированием
  #5  
Старый 11.04.2009, 21:45
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
По умолчанию

возможно...
я еще пробывала использовать image1.transparent:=true, но тоже не очень работает...
я просто безнадежна
Ответить с цитированием
  #6  
Старый 11.04.2009, 21:56
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Не делайте поспешных выводов.
Давайте с простого. Пусть на форме у вас битмап. Киньте на форму кнопку и назначьте ей вот такой обработчик события OnClick:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  StartPos: TPoint;
  oldPenMode: TPenMode;
begin
  StartPos.X := 0; StartPos.Y := 0;
  with Image1.Canvas do
  begin
    oldPenMode := Pen.Mode;
    Pen.Mode := pmNotXor;
    PenPos := StartPos;
    LineTo(Image1.Width, Image1.Height);
    Pen.Mode := oldPenMode;
  end;
end;
Щелкните один раз на этой кнопке, посмотрите, нарисовалась линия по диагонали. Щелкните еще раз. Стерлась линия?
Ответить с цитированием
  #7  
Старый 11.04.2009, 22:11
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
По умолчанию

да, это получилось!!!
я наверн буду совсем наглой, если попрошу вас помочь мне именно с моей программой..
может вы дадите мне ваше isq, я скину прогу, и вы найдете неточности и подскажите, как их исправить...
если это конечно возможно :-[
Ответить с цитированием
  #8  
Старый 11.04.2009, 22:17
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Цитата:
Сообщение от morkovka
может вы дадите мне ваше isq
Простите, не пользуюсь.
Да и в ваших же интересах сделать самостоятельно. Тем более, что у вас получилось.
Закономерность ведь проста:
  1. назначили Pen.Mode := pmNotXor;
  2. нарисовали линию один раз;
  3. когда нужно стереть, нарисовали ее же повторно.
Ответить с цитированием
  #9  
Старый 11.04.2009, 22:23
morkovka morkovka вне форума
Прохожий
 
Регистрация: 11.04.2009
Сообщения: 14
Репутация: 10
По умолчанию

я с вами согласна, что самой написать- лучше!!!
просто весь день с ней мучаюсь...

огромное спасибо, что объяснили, как это делается)))
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter