注册 登录
编程论坛 Delphi论坛

新手求助:如何动态实现画直线?

Evenchao 发布于 2013-03-14 21:20, 1362 次点击
如何动态实现画线功能。   如果在OnMouseDown中设置canvas.MoveTo(x, y);然后再OnMouseUp中设置Canvas.LineTo(x, y);则是在最后鼠标弹起的时候再把图片画出来,如何实现在能够把画直线的过程显示出来?
4 回复
#2
wp2319572013-03-14 22:54
啥意思呢  难道设置一个进度条
#3
有容就大2013-03-16 14:24
找windows编程看看
#4
Evenchao2013-03-16 19:59
回复 3楼 有容就大
就是画一条直线,但是要像画板那样,直线可以随意拖动。而且在画的时候动态显示,而不是当鼠标弹起的时候,才显示出刚刚画的那条直线。不知道,这样说,你清楚了么!
#5
wenhu122013-03-25 11:53
var
  Form1: TForm1;
  a:Integer;
  po:TPoint;  //定义全局变量

implementation

{$R *.dfm}

procedure TForm1.img1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
a:=1;
po.X:=x;
po.y:=y;
end;

procedure TForm1.img1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if a=1 then
begin
img1.Canvas.Pen.Color:=clRed;
img1.Canvas.MoveTo(po.X,po.y);
img1.Canvas.LineTo(x,y);
po.X:=x ;
po.y:=y;
end;
end;

procedure TForm1.img1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
a:=0;
end;
1