unit proyecto;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Menus;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
Button4: TButton;
PrintDialog1: TPrintDialog;
MainMenu1: TMainMenu;
Archivo1: TMenuItem;
Abrir1: TMenuItem;
Guardar1: TMenuItem;
imprimir1: TMenuItem;
Salir1: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Salir1Click(Sender: TObject);
procedure imprimir1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Capturing:Boolean;
MouseDownSpot:TPoint;
NumFiguras:Integer;
procedure _IMGMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseMove1(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseUp1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure _IMGMouseDown1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
public
end;
var
Form1: TForm1;
NumFiguras: integer;
elipse:TShape;
edit_elipse:tedit;
rec:TShape;
edit_rec:tedit;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
edit_elipse:=tedit.Create(self);
edit_elipse.Parent:=self;
edit_elipse.BorderStyle:=bsnone;
elipse := TShape.Create(Self);
elipse.Parent := Self;
elipse.Top := 100;
elipse.Left := 100;
edit_elipse.Top:=elipse.Top +20;
edit_elipse.Left:=elipse.Left+20;
elipse.Height := 50;
elipse.Width := 100;
edit_elipse.height:=20;
edit_elipse.Width:=70;
elipse.Shape := TShapeType(stEllipse);
elipse.OnMouseMove := _IMGMouseMove;
elipse.OnMouseDown := _IMGMouseDown;
elipse.OnMouseUp := _IMGMouseUp;
edit_elipse.OnMouseDown := _IMGMouseDown;
edit_elipse.OnMouseMove := _IMGMouseMove;
edit_elipse.OnMouseUp := _IMGMouseUp;
elipse.Cursor := crHandPoint;
elipse.Brush.Color := RGB(120,250,23);
edit_elipse.Brush.Color:=rgb(120,250,23);
edit_elipse.Cursor:=crHandPoint;
end;
procedure TForm1._IMGMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;
procedure TForm1._IMGMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
edit_elipse.left:=elipse.left+15;
edit_elipse.top:=elipse.top+15;
if Capturing then begin
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;
end;
procedure TForm1._IMGMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
ReleaseCapture;
Capturing := false;
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit_rec:=tedit.Create(self);
edit_rec.Parent:=self;
edit_rec.BorderStyle:=bsnone;
rec := TShape.Create(Self);
rec.Parent := Self;
rec.Top := 100;
rec.Left := 100;
edit_rec.Top:=rec.Top +20;
edit_rec.Left:=rec.Left+20;
rec.Height := 50;
rec.Width := 100;
edit_rec.height:=20;
edit_rec.Width:=70;
rec.Shape := TShapeType(stRoundRect);
rec.OnMouseMove := _IMGMouseMove1;
rec.OnMouseDown := _IMGMouseDown1;
rec.OnMouseUp := _IMGMouseUp1;
edit_rec.OnMouseDown := _IMGMouseDown;
edit_rec.OnMouseMove := _IMGMouseMove;
edit_rec.OnMouseUp := _IMGMouseUp;
rec.Cursor := crHandPoint;
rec.Brush.Color := RGB(120,250,23);
edit_rec.Brush.Color:=rgb(120,250,23);
edit_rec.Cursor:=crHandPoint;
end;
procedure TForm1._IMGMouseDown1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;
procedure TForm1._IMGMouseMove1(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
edit_rec.left:=rec.left+15;
edit_rec.top:=rec.top+15;
if Capturing then begin
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;
end;
procedure TForm1._IMGMouseUp1(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Capturing then begin
ReleaseCapture;
Capturing := false;
TWinControl(Sender).Left := TWinControl(Sender).Left - (MouseDownSpot.x - x);
TWinControl(Sender).Top := TWinControl(Sender).Top - (MouseDownSpot.y - y);
end;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then
self.canvas.moveto(x,y);
if ssRight in Shift then
self.canvas.lineto(x,y);
canvas.TextOut(x,y,edit1.text);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Visible:=true;
button4.Visible:=true;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
edit1.Visible:=false;
button4.Visible:=false;
end;
procedure TForm1.Salir1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.imprimir1Click(Sender: TObject);
begin
PrintDialog1.Execute;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.