Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 4
Всего онлайн: 4
Зарегистрировано юзеров: 6619
Комментариев на сайте: 650
Новый юзер: Dysonetn



Последние комментарии
c
dealrattKi прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Это действительно радует меня. --- Бесподобное сообщение скачать fifa, скачать фифа а также [url=http://15fifa.ru/novosti-fifa-15]fifa 15 последние новости[/url] скачать фифа
intatryadebra прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Revival RO is best free ro populair ragnarok online private server founded in 2017 2018. Revival pvp big free Ragnarok server is an online exciting free MMORPG called ragnarok online, it a fun server for MMORPG gamers in ASIA. This is a top 10 ragnarok online private server thats high on the list and top ranking with massive players online. We have many players from Asia like Malaysia, Indonesia, Philippines, Thailand, Singapore, China, Hong Kong All these players are here to play free private ragnarok online server and battle players all around the world. They want to collect the best items and gear to be strongest in War of Emperium, War of Emperium are guild wars in this free RO Server. You can play this game on android phone or tablet or pc client. Enjoy And have fun. ragnarok online server http://bit.ly/2tKyawS

Урок 24 - Изучаем компонент PaintBox

  В этом уроке изучим компонент под PaintBox на вкладке System.

   У этого компонента есть один недостаток проявляющий себя только на Windows XP: работающую программу перекрасть окном другой программы то все содержимое компонента стирается.

   Вытащим компонент на форму и попытаемся нарисовать, для этого сделаем обработчик события OnMouseMove и напишем следующий код:

procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  PaintBox1.Canvas.Pixels[x,y]:= clBlack; //задаем черный цвет пиксела в координатах курсора (X, Y); 
end;


Результат


   Рисуется! Но линия прерывается, дело в том что это событие срабатывает не сразу а через определённый промежуток времени (16 - 47 мс зависит от параметров компьютера), что бы не было этого модифицируем код:
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  PaintBox1.Canvas.LineTo(X,Y); //задаем черный цвет пиксела в координатах курсора (X, Y); 
end;


Результат


   Так-то лучше. Теперь нарисуем прямые линии, что бы не мешать уберём прошлый код и создадим новый обработчик события OnMouseDown:
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  PaintBox1.Canvas.Pen.Width:= 4; //Задаем размер карандаша
  PaintBox1.Canvas.Pen.Color:= clGreen; //Цвет
  
  if button = mbLeft then
  PaintBox1.Canvas.MoveTo(X,Y);	// если нажата левая кнопка то перевидаем 1 точку в ее координаты
  if button = mbRight then
  PaintBox1.Canvas.LineTo(X,Y);	// если нажата правая кнопка то перевидаем 2 точку в ее координаты и чертим линию
end;


Результат


   При нажатии на левую кнопку программа запомнит точку начала линии, а при нажатии на правую нарисует линию от 1 точки и до текущих координат курсора.

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 13 Апреля 2013
Просмотров: 21728

Урок 23 - Функции для работы с мышью Урок 25 - Подробное изучение RichEdit'a

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): Raven_182 [Новичок] Дата: 2013-08-09
Рисуется! Но линия прерывается, дело в том что это событие срабатывает не сразу а через определённый промежуток времени (16 - 47 мс зависит от параметров компьютера), что бы не было этого модифицируем код: procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin PaintBox1.Canvas; //задаем черный цвет пиксела в координатах курсора (X, Y); end; По моему тут что-то пропущено.




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2013-08-11
Готово




аватар Добавил: ДимаДК [Новичок] Дата: 2013-08-11
Вот у меня тоже тут возникла проблема, написал комментарий, но он чего-то не получился . Спасибо за решение проблемы!