Цветовая палитра для рисовалки - Pascal ABC
Формулировка задачи:
Помогите сделать цветовую палитру для вот этот рисовалки
Решение задачи: «Цветовая палитра для рисовалки»
textual
Листинг программы
uses GraphABC, Events; var c:integer; procedure MouseDown(x, y, mb: integer); begin MoveTo(x, y); end; procedure MouseMove(x, y, mb: integer); begin if mb = 1 then begin setpencolor(c); setpenwidth(2); LineTo(x, y) end else if mb = 2 then begin setpenwidth(15); setpencolor(clwhite); LineTo(x, y) end else end; procedure KeyPress(key: char); begin case Upcase(key) of 'R':c:=clRed; 'G':c:=clGreen; 'B':c:=clBlue; //и так далее end; end; begin SetWindowCaption('Рисовалка '); setfontsize(10); textout(50,0,'Выбор цвета клавишами: r/R-красный g/G-зеленый b/B-синий'); OnMouseDown := MouseDown; OnMouseMove := MouseMove; OnKeyPress := KeyPress; end.
Объяснение кода листинга программы
- Подключаются необходимые библиотеки GraphABC и Events.
- Объявляется переменная c типа integer.
- Определяются два процедурных обработчика событий: MouseDown и MouseMove.
- В процедуре MouseDown перемещаем курсор мыши к координатам x, y.
- В процедуре MouseMove если модуль кнопки мыши равен 1, то устанавливаем цвет пера в c (заданный ранее цвет красный), ширина пера равна 2. Если модуль кнопки мыши равен 2, то устанавливаем цвет пера в clwhite (белый), ширина пера равна 15. Если модуль кнопки мыши не равен ни одному из этих значений, то ничего не делаем.
- Определяется процедура KeyPress, которая реагирует на нажатие клавиш.
- Задается размер шрифта и выводится текст на экран.
- Устанавливаются обработчики событий OnMouseDown и OnMouseMove.
- Задается размер окна с помощью функции SetWindowCaption и устанавливается размер шрифта с помощью функции setfontsize.
- Выводится текст на экран с помощью функции textout.
- В обработчике OnMouseDown вызывается процедура MouseDown.
- В обработчике OnMouseMove вызывается процедура MouseMove.
- В обработчике OnKeyPress вызывается процедура KeyPress.