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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 2
Всего онлайн: 2
Зарегистрировано юзеров: 6358
Комментариев на сайте: 645
Новый юзер: Realtyvaday



Последние комментарии
c
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
GZip псевдоархив, на мой вопрос тоже не отвечают, как распаковать отдельные файлы/папки...
Pingitrus прокомментировал "Урок 71 - Работа с сжатыми файлами":
Есть еще кто нибудь живой на этом сайте, кто сможет помочь? Так то все работает, zip и rar распаковывает, но у меня есть файл dat который сжат GZip, почему то его не удается распаковать или так не получится так как этот файл не является архивом или является?)) пишет ошибку что неверная функция



Мы в соцсетях
c
Delphi
Урок 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
Просмотров: 20339

Урок 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
Вот у меня тоже тут возникла проблема, написал комментарий, но он чего-то не получился . Спасибо за решение проблемы!