В данной теме я расскажу Вам как сделать примитивненькую рисовалку в PHP DS
*Проект программы лежит в папке demos
На понядобятся:
1.Выпадающий список - 1шт.
2.Кнопка - 1шт.
3.Функция - 2шт.
4.Диалог цвета - 1шт.
Приступим.
Жмём мышкой на нашу Форму, добавляем 3 события: Движение мышки, Нажатие мышки, Отжатие мышки.(Ставим галочку авто скроллинг)
Для Движения вставляем код:
Код:
global $toDraw;
// если зажали кнопку мыши, то $toDraw = true
if ($toDraw)
drawLine($x, $y); // и начинаем рисовать линию, с помощью функции
Для Нажатия:
Код:
global $toDraw;
$toDraw = true; // мышка нажата
Для отжатия:
Код:
global $toDraw, $lastX, $lastY;
// мыщка отжата, к тому же обнуляем последние координаты
$toDraw = $lastX = $lastY = false;
Создаём Выпадающий список, в Свойствах берём список, нажимаем "..." и вставляем в столбик цифры от 1 до 7(он нужен нам для выбора толщины кисти).
Создаём Кнопку, добавляем событие Клик и вставляем код:
Код:
global $pixelColor; // глобальная переменная хранящая цвет кисти
// открываем диалог
$x = c('Form1->colorDlg')->execute();
// если в диалоге выбрали цвет, то задаем цвет кисти...
if ($x)
$pixelColor = c('Form1->colorDlg')->color;
Создаём 2 функции, первую называем "loadApp", вторую "drawLine". Для второй ставим параметры "$x,$y"(в столбик). Для первой ставим галочку на "Вызвать при старте". Для "loadApp" добавляем событие выполнение и вставляем код:
Код:
// инициализация необходимых переменных
global $pixelColor;
$pixelColor = clBlack;
Для "drawLine" добавляем событие выполнение и вставляем код:
Код:
// достаем глобальные переменные
global $lastX, $lastY, $pixelColor;
if ($lastX && $lastY){
// создаем объект класса TControlCanvas для рисования на
// компоненте...
$cv = new TControlCanvas(c('form1'));
// цвет нашей кисти...
$cv->pen->color = $pixelColor;
// размер нашей кисти берем из компонента список...
$cv->pen->width = c('penSize')->items->selected;
// перемещаем точку в предыдущие координаты
$cv->moveTo($lastX, $lastY);
// рисуем линию до новой точки...
$cv->lineTo($x, $y);
// избавляемся от объекта, чтобы не заполнять память
$cv->free();
}
// сохряняем новые координаты точки...
$lastX = $x;
$lastY = $y;
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.