【delphi开源代码栏目提醒】:网学会员delphi开源代码为您提供SharpPaint.pas参考,解决您在SharpPaint.pas学习中工作中的难题,参考学习。
unit SharpPaint;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
PaintBox: TPaintBox;
Panel1: TPanel;
Button1: TButton;
EDLong: TEdit;
EDWeight: TEdit;
EDHeight: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
X,Y,JDX,JDY:Integer;
begin
try
strtoint(EDHeight.Text);
Strtoint(EDHeight.Text);
strtoint(EDWeight.Text);
except
showmessage('请输入正确的数字!!');
Exit;
end;
With PaintBox do
begin
Y:=Height-10;
X:=Left+10;
JDX:=Trunc(StrToFloat(EDWeight.Text) * sin(45.0/180.0*pi));
JDY:=Trunc(StrToFloat(EDWeight.Text) * cos(45.0/180.0*pi));
Y:=y-StrToInt(EDHeight.Text);
Canvas.MoveTo(X,Y);
Canvas.LineTo(X,y+StrToInt(EDHeight.Text));
Y:=y+StrToInt(EDHeight.Text);
Canvas.LineTo(X+StrToInt(EDLong.text),Y);
X:=X+StrToInt(EDLong.text);
Canvas.LineTo(X,y-StrToInt(EDHeight.Text));
y:=y-StrToInt(EDHeight.Text);
Canvas.LineTo(X-StrToInt(EDLong.text),Y);
//y:=y+StrToInt(EDHeight.Text);
X:=X-StrToInt(EDLong.text);
canvas.MoveTo(x,y);
canvas.lineto( X+JDX, Y-JDY); //num1
X:= X+JDX;
Y:= Y-JDY;
Canvas.LineTo(X+StrToInt(EDLong.text),Y);
X:=X+StrToInt(EDLong.text);
Canvas.LineTo(X,y+StrToInt(EDHeight.Text));
Y:=y+StrToInt(EDHeight.Text);
canvas.MoveTo(x,y);
canvas.LineTo(X-JDX,Y+JDY); // 3 num xie
X:=X-JDX;
Y:=Y+JDX;
canvas.MoveTo(x,Y-StrToInt(EDHeight.Text));
Y:=Y-StrToInt(EDHeight.Text);
canvas.moveto(x,y);
canvas.LineTo(X+JDX,Y-JDY); // 2 num xie
X:=X+JDX;
Y:=Y-JDY;
Canvas.LineTo(X-StrToInt(EDLong.text),Y);
X:=X-StrToInt(EDLong.text);
//xu xian
canvas.Pen.Style:= psDot;
canvas.LineTo(x,y+StrToInt(EDHeight.Text));
y:=y+StrToInt(EDHeight.Text);
canvas.LineTo(X+StrToInt(EDLong.text),Y);
X:=X+StrToInt(EDLong.text);
Canvas.MoveTo(X-StrToInt(EDLong.text),Y);
X:=X-StrToInt(EDLong.text);
canvas.LineTo(X-JDX,Y+JDY); // xu num xie
canvas.Pen.Style:= psSolid;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.