Тема: Графіка в Делфі. Присвоїти виведення об'єкту кнопці.
Наявний блок з вибором інструментів для малювання (РадіоБаттони), і при виборі одного з них, при наступних кліках на Image1 мають вставлятися значки. Але в мене працює неправильно. Я натискаю на RadioButton і вставляється один такий заданий об'єкт.
Ось код, вкажіть будь-ласка на помилку:
unit Unit1_o;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Spin;
type
  TForm1_o = class(TForm)
    Image1: TImage;
    RadioGroup1: TRadioGroup;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    Button1: TButton;
    Button2: TButton;
    ColorDialog1: TColorDialog;
    ColorDialog2: TColorDialog;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    RadioButton6: TRadioButton;
    RadioButton7: TRadioButton;
    RadioButton8: TRadioButton;
    RadioButton9: TRadioButton;
    GroupBox2: TGroupBox;
    RadioButton10: TRadioButton;
    RadioButton11: TRadioButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Edit1: TEdit;
    UpDown1: TUpDown;
    Edit2: TEdit;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure RadioButton4Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1_o: TForm1_o;
implementation
uses Unit1;
var x1,y1:integer;
{$R *.dfm}
procedure TForm1_o.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
x1:=x;
y1:=y;
end;
procedure TForm1_o.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
image1.Canvas.Polygon([point(x1,y1),point(x1+10, y1+(y-y1)div 2),point(x,y), point(x1,y1)]);
end;
procedure ris(x,y,a:integer;cv:TCanvas);
var b:integer;
begin
b:=a div 2;
with cv do
 begin
  moveto(x-a-b,y-b);lineto(x-b,y-b);
  lineto(x-b,y-a-b);lineto(x-a,y-a-b);
  lineto(x,y-2*a-b);lineto(x+a,y-a-b);
  lineto(x+b,y-a-b);lineto(x+b,y-b);
  lineto(x+a+b,y-b);lineto(x+a+b,y-a);
  lineto(x+2*a+b,y);lineto(x+a+b,y+a);
  lineto(x+a+b,y+b);lineto(x-a-b,y+b);
  lineto(x-a-b,y+a);lineto(x-2*a-b,y);
  lineto(x-a-b,y-a);lineto(x-a-b,y-b);
 end;
end;
procedure TForm1_o.RadioButton4Click(Sender: TObject);
begin
ris(200,200,30,image1.Canvas);
end;
procedure TForm1_o.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
ris(x,y,15,Image1.Canvas);
end;
end.