Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

Допустим у меня загружена картинка не важно какая! С помощью этого кода я рисую на ней точку.
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, 16:25   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
Репутация: 590
По умолчанию

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

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

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

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

Цитата:
Сообщение от 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 в 16:57.
AlDelta вне форума   Ответить с цитированием
Старый 30.01.2008, 17:03   #10
Pro_BerSerK
 
Аватар для Pro_BerSerK
 
Регистрация: 28.01.2008
Сообщений: 5
Репутация: 10
По умолчанию

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

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как очистить буфер обмена? 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 10:50
Как очистить Blob поле Anticoors Общие вопросы Delphi 0 08.01.2007 02:38


04:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.