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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2008, 14:21   #1
Pro_BerSerK
 
Аватар для Pro_BerSerK
 
Регистрация: 28.01.2008
Сообщений: 5
По умолчанию Как очистить Canvas?

Проблема состоит в том что мне необходимо при нажатии на кнопку мыши нарисовать на изображении одну точку при повторном нажатии эту точку стереть и поставить новую! Единственное что у меня получиломь это либо натыкать множество точек, либо одну но со стиранием самого изображения! Пожалуйста помогите мне это реализовать.
Pro_BerSerK вне форума Ответить с цитированием
Старый 30.01.2008, 14:29   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

А зачем Вам стирать точку? Ставьте новую и всё.
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 14:32   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Вообщем не понятно что Вы хотитет ? Или канву отчистить, или на картинке какие то точки ставить и причем непонятным мне образом, почему интересно при выводе точек на канву она стераеться.... Вообщем точней скажите что вы хоитет ?!
BOBAH13 вне форума Ответить с цитированием
Старый 30.01.2008, 15:13   #4
Pro_BerSerK
 
Аватар для Pro_BerSerK
 
Регистрация: 28.01.2008
Сообщений: 5
По умолчанию

Допустим у меня загружена картинка не важно какая! С помощью этого кода я рисую на ней точку.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
image1.Canvas.MoveTo(x,y);
image1.Canvas.LineTo(x,y);
end;
При повторном нажатии на ктопку вырисовывается еще одна точка, а мне кокрас этого и не надо мне необходимо чтоб там была всего одна точка!
Pro_BerSerK вне форума Ответить с цитированием
Старый 30.01.2008, 15:25   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Вы как-то очень загадочно точку рисуете. SetPixel разве не то, что Вам надо?
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 15:39   #6
Pro_BerSerK
 
Аватар для Pro_BerSerK
 
Регистрация: 28.01.2008
Сообщений: 5
По умолчанию

С этим огромное спасибо, как то сам не догадался! От сюда следует еще вопрос. Имеет ли SetPicsel значение (Width) тоесть мне нужно увеличить размер пикселя!
Pro_BerSerK вне форума Ответить с цитированием
Старый 30.01.2008, 15:42   #7
Pro_BerSerK
 
Аватар для Pro_BerSerK
 
Регистрация: 28.01.2008
Сообщений: 5
По умолчанию

Но мой прежний вопрос остается в силе как все же мне при нажатии на мышь поставить всего один пиксель на изображение, а не великое множество!
Pro_BerSerK вне форума Ответить с цитированием
Старый 30.01.2008, 15:46   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

"SetPixel со значением Width" - это Rectangle, Ellipse, FillRect, Polygon и т.д. Я что касается первого вопроса, то пока непонятно, что Вы всё-таки делаете-то
Цитата:
при нажатии на кнопку мыши нарисовать на изображении одну точку при повторном нажатии эту точку стереть и поставить новую
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 15:47   #9
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Цитата:
Сообщение от Pro_BerSerK Посмотреть сообщение
При повторном нажатии на ктопку вырисовывается еще одна точка, а мне кокрас этого и не надо мне необходимо чтоб там была всего одна точка!
Можно наложить на Image PaintBox и обрабатывать для него нажатие мыши, рисовать соответственно тоже по PaintBox'y. Перед каждым рисование обновлять: PaintBox1.Refresh;


Цитата:
SetPixel описание:
function SetPixel(DC: HDC; X, Y: Integer; Color: TColorRef): Longint;

Рисует элемент изобpажения в указанной точке.

Паpаметpы:
DC: Идентификатоp контекста устpойства.
X, Y: кооpдинаты точки.
Color: Стpуктуpа TColorRef, опpеделяющая цвет pаскpаски точки.
P.S.:
Цитата:
Но мой прежний вопрос остается в силе как все же мне при нажатии на мышь поставить всего один пиксель на изображение, а не великое множество!
Код:
procedure TForm1.PaintBox1Click(Sender: TObject);
begin
PaintBox1.Refresh;
PaintBox1.Canvas.Rectangle(dx-1,dy-1,dx+1,dy+1);
end;
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"

Последний раз редактировалось AlDelta; 30.01.2008 в 15:57.
AlDelta вне форума Ответить с цитированием
Старый 30.01.2008, 16:03   #10
Pro_BerSerK
 
Аватар для Pro_BerSerK
 
Регистрация: 28.01.2008
Сообщений: 5
По умолчанию

AlDelta огромное спасибо я наконец то добился того чего хотел!!! Да и всем остальным тоже спасибо за помощь!!!
Pro_BerSerK вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как очистить буфер обмена? StasSv Microsoft Office Excel 2 11.08.2008 17:38
Как очистить Canvas? beegl Общие вопросы Delphi 4 30.05.2008 02:51
ОЧистить SpeedButton ZhekON Компоненты Delphi 4 19.06.2007 12:28
как очистить экран doncova1 Общие вопросы C/C++ 3 18.03.2007 09:50
Как очистить Blob поле Anticoors Общие вопросы Delphi 0 08.01.2007 01:38