Программный код графического редактора.
|
Формирование
нового цвета и вывод числового значения
составляющих цветовой палитры в окно
ввода:
procedure
TForm1.ScrollBar1Change(Sender: TObject);
begin
cvet:=rgb(scrollbar1.Position,
scrollbar2.Position,scrollbar3.Position);
edit1.Text:=inttostr(scrollbar1.Position);
end;
procedure
TForm1.ScrollBar2Change(Sender: TObject);
begin
cvet:=rgb(scrollbar1.Position,
scrollbar2.Position, scrollbar3.Position);
edit2.Text:=inttostr(scrollbar2.Position);
end;
|
procedure
TForm1.ScrollBar3Change(Sender: TObject);
begin
cvet:=rgb(scrollbar1.Position,
scrollbar2.Position, scrollbar3.Position);
edit3.Text:=inttostr(scrollbar3.Position);
end;
Получившийся
цвет необходимо показать пользователю:
procedure
TForm1.Button1Click(Sender: TObject);
begin
edit4.Color:=cvet;
end;
Толщину линии
можно задать так:
procedure
TForm1.SpinEdit1Change(Sender: TObject);
begin
image1.Canvas.Pen.Width:=spinedit1.value;
end;
При движении
мыши с нажатой левой клавишей должен
оставаться след:
procedure
TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y:
Integer);
Begin
Устанавливаем
цвет карандаша и кисти таким, каким он
получится при изменении составляющих
RGB
– палитры:
image1.Canvas.Pen.Color:=cvet;
image1.Canvas.brush.Color:=cvet;
if ssleft in shift then
image1.canvas.lineto(x,y);
end;
После отпускания
мыши и перемещения курсора в новое место
след оставаться не должен.
procedure
TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y:
Integer);
b
procedure
TForm1.Button3Click(Sender: TObject);
begin
close; end;
procedure
TForm1.FormActivate(Sender: TObject);
begin
image1.Canvas.Brush.Color:=clwhite;
end;
end.
egin
with image1.canvas do
case button of
mbleft:moveto(x,y);
mbright:floodfill(x,y,cvet,fsborder);
end;
end;
Сохранение
рисунка в файле:
procedure
TForm1.Button2Click(Sender: TObject);
begin
with
savepicturedialog1 do if execute then
image1.Picture.SaveToFile(filename); end;