Тема: Графіка в Делфі. Присвоїти виведення об'єкту кнопці.
Наявний блок з вибором інструментів для малювання (РадіоБаттони), і при виборі одного з них, при наступних кліках на 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.